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

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

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

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

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

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