Premake: разные команды исключений для каждой конфигурации - PullRequest
1 голос
/ 06 февраля 2012

Я недавно нашел этот удивительный новый драгоценный камень, названный premake, и я был "НАКОНЕЦ!"

Я пытаюсь сделать простую «тестовую» конфигурацию, которая работает следующим образом: в тестовой конфигурации исключить source / Main.cpp если не в тестовой конфигурации, исключите source / Test.cpp (который содержит другой основной)

Это код premake4.lua, который пытается это сделать

решение "Фу" конфигурации {"Debug", "Release", "Test"} локация "постройка"

project "Bar"
    targetname "Bar"
    language "C++"
    kind "WindowedApp"
    files {"source/**.h","source/**.cpp","source/**.c"}
    flags {"StaticRuntime","ExtraWarnings", "FatalWarnings"}

    configuration "Test"
        excludes "source/Main.cpp"
        targetsuffix "_Test"
        defines {"DEBUG", "TEST"}
        flags {"Symbols"}

    configuration "not Test"
        excludes "source/Test.cpp"

    -- And so on ...

Но когда я компилирую с помощью команды «make -Cbuild config = test», она будет компилироваться независимо и связываться с «Main.cpp».

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 21 января 2016

Вы можете сделать это вместо этого.

project "Bar"
    targetname "Bar"
    language "C++"
    kind "WindowedApp"
    files {"source/**.h","source/**.cpp","source/**.c"}
    flags {"StaticRuntime","ExtraWarnings", "FatalWarnings"}

    configurations { "Test", "notTest" }

    filter { "configurations:Test" }
        excludes "source/Main.cpp"
        targetsuffix "_Test"
        defines {"DEBUG", "TEST"}
        flags {"Symbols"}
    filter {}

    filter { "configurations:notTest" }
        excludes "source/Test.cpp"
    filter {}
0 голосов
/ 06 февраля 2012

Premake в настоящее время не поддерживает файл конфигурации или исключает списки, при создании файлов сборки учитываются только файлы, указанные на уровне проекта (вне какой-либо конфигурации).

Списки файлов конфигурациив кратком списке для следующего выпуска (4.5).

...