2015-12-05 2 views
0

У меня главный premake4.lua сценарий:Как передать _OPTIONS для включения скриптов premake4?

solution "MySolution" 

language "c++" 

newoption = { 
    trigger = "my-option", 
    description = "This is an option" 
} 

include "../my_library" 

Я хотел бы повернуть логику включенного сценария (../my_library/premake4.lua) на основе содержимого _OPTIONS:

if _OPTIONS["my-option"] then 
    project "myStaticLibrary" 
     kind "StaticLib" 
else 
    project "mySharedLibrary" 
     kind "SharedLib" 
end 

files "foo.cpp" 

Как получить _OPTIONS в рамках прилагаемого сценария premake4?

ответ

0

Вам ничего не нужно. _OPTIONS - глобальная переменная и будет доступна для всех ваших скриптов автоматически. Вы видите иначе?

+0

Да, я видел иначе: _OPTIONS был полностью пуст. Я попытался переопределить функцию ** include **, чтобы обойти ее, но тогда некоторые из других функций premake4 не работали. Однако после работы я узнал, что я делал это неправильно. Правильный путь состоял в том, чтобы создать конфигурации ReleaseDLL и DebugDLL, а затем указать ** config = ** на шаге ** make **. –

0

Я отвечаю на свой вопрос на всякий случай, если кто-либо соблазн решить вещи одинаково. Я был Выполнение этой задачи. После борьбы с ней мое окончательное решение определено несколько конфигураций:

-- the main script 
solution "MySolution" 

    language "c++" 

    configurations { "Release", "Debug", "ReleaseDLL", "DebugDLL" } 

    configuration { "Release", "ReleaseDLL" } 
     flags { "Optimize" } 
    configuration { "Debug", "DebugDLL" } 
     flags { } 
     defines {"_DEBUG=1"} 
    configuration {} 

    include "../my_library" 

Прилагаемый скрипт указан вид согласно конфигурации:

-- the included script 
project "myStaticLibrary" 

    configuration { "*" } 
     kind "StaticLib" 
    configuration { "*DLL" } 
     kind "SharedLib" 
    configuration {} 

    files "foo.cpp" 

И строить правильные цели Конфигурация указывается в изготовителя:

premake4 gmake 
cd gmake 
make config=release 
make config=debug 
make config=releasedll 
make config=debugdll 
Смежные вопросы