Ada_Ru форум

Обсуждение языка Ада

Сценарные переменные

Оставить новое сообщение

Сообщения

Иван Леваше
Сценарные переменные
2013-01-30 13:23:10
Как один из побочных эффектов подключения кучи проектов, в среде теперь 
слева развешаны сценарные переменные: Build RELEASE, Operating_System 
POSIX, Architecture x86_64, Ssl_Library_Type relocatable, Platform 
native, Library_Type static, Os unix.

Мешают. Если что–то менять в проекте, в исходник проекта добавляется 
локальное объявление каждой переменной и для каждого изменённого 
параметра проекта здоровенная лестница из case'ов. Пробовал перед тем, 
как что–то менять в проекте, сначала проставить все галочки, чтоб 
безальтернативно применялось. GPS не только разбабахала это в case'ы, но 
на этот раз ещё и перебрала все возможные комбинации сценарных 
переменных. Теперь исходник проекта, кроме как руками, стараюсь не править.

Library_Type выставлен по умолчанию на static, хотя вот как раз это я бы 
переключил на relocatable, но эта настройка нигде не сохраняется

А что вы делаете со сценарными переменными?

-- 
If you want to get to the top, you have to start at the bottom
kazakov1961
Re: [ada_ru] Сценарные переменные
2013-01-30 13:46:56
On Wed, 30 Jan 2013 20:23:10 +0700, you wrote:

> Мешают. Если что–то менять в проекте, в исходник проекта добавляется 
> локальное объявление каждой переменной и для каждого изменённого 
> параметра проекта здоровенная лестница из case'ов.

Для редактирования проектов есть чудесная программа Notepad (gedit, vi...).

> А что вы делаете со сценарными переменными?

ВСЕ!

Выбор цели (VxWorks, Windows, Linux), параметры, отладка или релиз, и т.п.
Единственное, чего нельзя - условный "with" проектов, управляемый
сценарием.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
Иван Леваше
Re: Сценарные переменные
2013-01-31 09:52:04
30.01.2013 20:46, Dmitry A. Kazakov пишет:
> Для редактирования проектов есть чудесная программа Notepad (gedit, vi...).

Ну я всё же имел в виду GPS

>> А что вы делаете со сценарными переменными?
>
> ВСЕ!
>
> Выбор цели (VxWorks, Windows, Linux)

И GNAT Programming Studio, не имея исходников GCC и GNAT, отрастит 
кросскомпилятор, догадается, как запустить конфигуратор, 
переконфигурирует и пересоберёт каждую зависимость под другую OS?

Или, может быть, отрастит рядом с моим CPU FPGA и, как BORPH, зашьёт в 
него кастомную архитектуру portable_64_be?

Ничего же нельзя поменять без конфигуратора.

-- 
If you want to get to the top, you have to start at the bottom
kazakov1961
Re: [ada_ru] Re: Сценарные переменные
2013-01-31 10:18:36
On Thu, 31 Jan 2013 16:52:04 +0700, you wrote:

> 30.01.2013 20:46, Dmitry A. Kazakov пишет:

>> Выбор цели (VxWorks, Windows, Linux)
> 
> И GNAT Programming Studio, не имея исходников GCC и GNAT, отрастит 
> кросскомпилятор,

Его "отрастит" AdaCore, если Вы купите соответствующий GNAT Pro...

> догадается, как запустить конфигуратор, 
> переконфигурирует и пересоберёт каждую зависимость под другую OS?

Разумеется. Это делается примерно так:

   package Ide is
      case Platform is
         when "x86 Windows" =>
            for Gnatlist use "gnatls";
            for Gnat use "gnat";
            for Compiler Command ("ada") use "gnatmake";
            for Debugger Command use "gdb";
         when "x86 VxWorks" =>
            for Gnatlist use "i586-wrs-vxworks-gnatls";
            for Gnat use "i586-wrs-vxworks-gnat";
            for Compiler Command ("ada") use "i586-wrs-vxworks-gnatmake";
            for Debugger Command use "i586-wrs-vxworks6-gdb";
...
   case Platform is
      when "x86 Windows" =>
         case Development is
            when "Debug" =>
               for Source Dirs use Dirs & "os/Windows/i586";
               for Object Dir use "lib/x86/Windows/Debug";
            when "Release" =>
               for Source Dirs use Dirs & "os/Windows/i586";
               for Object Dir use "lib/x86/Windows/Release";
         end case;
      when "x86 VxWorks" =>
         for Source Dirs use Dirs & "os/vxworks" & "os/vxworks/i586" &
"os/vxworks/i586/Native Real Time Clock";
         case Development is
            when "Debug" =>
               for Object Dir use "lib/x86/vxworks/Debug";
            when "Release" =>
               for Object Dir use "lib/x86/vxworks/Release";
         end case;

и т.п.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
Иван Леваше
Re: Сценарные переменные
2013-01-31 17:07:29
31.01.2013 17:18, Dmitry A. Kazakov пишет:
>> догадается, как запустить конфигуратор,
>> переконфигурирует и пересоберёт каждую зависимость под другую OS?
>
> Разумеется. Это делается примерно так:
>
>     package Ide is
>        case Platform is
>           when "x86_Windows" =>
>              for Gnatlist use "gnatls";
>              for Gnat use "gnat";
>              for Compiler_Command ("ada") use "gnatmake";
>              for Debugger_Command use "gdb";
>           when "x86_VxWorks" =>
>              for Gnatlist use "i586-wrs-vxworks-gnatls";
>              for Gnat use "i586-wrs-vxworks-gnat";
>              for Compiler_Command ("ada") use "i586-wrs-vxworks-gnatmake";
>              for Debugger_Command use "i586-wrs-vxworks6-gdb";
> ...

А, понятно.

И нашёл ответы на некоторые вопросы. gprbuild вводит несколько 
дополнительных типов проектов, и то, что мне нужно, называется aggregate 
project:

http://docs.adacore.com/gprbuild-docs/html/gprbuild_ug.html#Define-a-build-environment

Не знаю пока, как скормить это GPS, но посмотрим

-- 
If you want to get to the top, you have to start at the bottom
Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти