【问题标题】:Premake : Different excludes command for each configurationPremake:每个配置都有不同的排除命令
【发布时间】:2016-01-21 11:17:38
【问题描述】:

我最近发现了一种叫做 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”。

我做错了什么?

【问题讨论】:

    标签: build makefile premake


    【解决方案1】:

    Premake 目前不支持按配置文件或排除列表,生成构建文件时仅考虑在项目级别(任何配置之外)指定的文件。

    每个配置文件列表都在下一个版本 (4.5) 的短列表中。

    【讨论】:

    • 此功能现在位于 BitBucket 的 premake-dev 存储库中;尽管如此,仍有许多重大建设正在进行,尚未准备好投入生产使用。
    【解决方案2】:

    你可以这样做。

    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 {}
    

    【讨论】:

      猜你喜欢
      • 2012-06-27
      • 1970-01-01
      • 2012-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-30
      相关资源
      最近更新 更多