0

我正在使用 premake5 版本 0.06 来生成一个 vs2012 项目,该项目在目录树中包含 3000 多个文件,该目录树大约有 2 层深。

该项目包含 6 个配置和 3 个平台。

烘焙配置大约需要 2 分钟,然后需要大约 10 秒来处理操作并写出解决方案和项目文件。

我想知道这是否是这个文件数量的预期时间,或者我是否可以优化我的预制脚本以改善烘焙时间?

我使用了许多覆盖,并通过使用通配符来包含我的文件。

    files {
        path.join(includeDir,"**.h"),
        path.join(includeDir,"**.inl"),

        path.join(srcDir,"**.h"),
        path.join(srcDir,"**.inl"),
        path.join(srcDir,"**.c"),
        path.join(srcDir,"**.cpp"),
    }

将所有选项放在一个过滤器下会更好吗?为了方便设置,我通过不同的功能设置了选项,因此有效地为不同的选项多次列出相同的过滤器,例如

setupOption1 = function(args)
   filters( "platforms:win" )
        --set up option1
end

setupOption2 = function(args)
   filters( "platforms:win" )
      --set up option2
end

--with the project 
project("myProject")
   --global setup
   language    "C++"
   kind        "WindowedApp"

   --individual options
   setupOption1(args)
   setupOption2(args)
4

2 回答 2

0

这听起来确实有点长,但由于这仍然是一个 alpha 构建性能,目前还没有受到密切监控。有一个开放的拉取请求来减少内存使用可能有帮助吗?

一般来说,更少的过滤器应该会有所帮助,但如果它产生了巨大的差异,我会感到惊讶(除非你真的有很多)。

于 2015-11-09T21:46:28.903 回答
0

我发现在文件过滤器中使用 ** 通配符会减慢构建速度。

filter {"files:**_win.cpp", "platforms:not win"}
    flags "ExcludeFromBuild"               

filter {"files:**_xone.cpp", "platforms:not xone"} 
    flags "ExcludeFromBuild"

filter {"files:**_ps4.cpp", "platforms:not ps4" }
    flags "ExcludeFromBuild"

如果我注释掉这些过滤器,现在构建配置大约需要 30 秒。

于 2015-11-10T17:49:16.463 回答