1

私は最近、プリメイクと呼ばれるこの驚くべき新しい宝石を見つけました。

次のように機能する単純な「テスト」構成を作成しようとしています: テスト構成では、ソース/メイン.cpp を除外します。

これは、これを実行しようとする premake4.lua コードです。

ソリューション "Foo" 構成 {"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」に関係なくコンパイルおよびリンクされます。

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

4

2 に答える 2

1

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

構成ごとのファイルリストは、次のリリース(4.5)のショートリストに含まれています。

于 2012-02-06T16:06:28.290 に答える
0

代わりにこのようにすることもできます。

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 {}
于 2016-01-21T03:17:38.787 に答える