Premake:Differentは各設定のコマンドを除外します

私は最近、premakeと呼ばれるこの驚くべき新しい宝石を見つけました。そして、私はすべて「遂に」でした!

私は単純な "テスト"設定をしようとしていますが、次のように動作します: テスト構成で、source/Main.cppを除外します。 テスト構成でない場合、source/Test.cpp(別のメインを含む)を除外します。

これは、この試みを行うpremake4.luaコードです

ソリューション "Foo"     設定{"デバッグ"、 "リリース"、 "テスト"}     ロケーション "ビルド"

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"とリンクしても関係ありません。

私は間違って何をしていますか?

1

2 答え

Premakeは構成ファイルまたは除外リストを現在サポートしていません。プロジェクトレベルで指定されたファイル(構成外のファイル)のみがビルドファイルの生成時に考慮されます。

設定ファイルごとのリストは、次のリリース(4.5)の短いリストにあります。

0
追加された
この機能はBitBucketのpremake-devリポジトリにあります。まだ多くの主要な建設が進んでいますが、生産用には使用できません。
追加された 著者 starkos,

あなたは代わりにこのようにすることができます。

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
追加された