5

我想ninja同时启动多个构建。每个构建都在自己的目录中,并且有自己的build.ninja文件。

我可以做到以下几点:

cd <build-dir-1>
ninja &
cd <build-dir-2>
ninja &
...
cd <build-dir-last>
ninja

....但这有几个问题:

  • Ninja 使用的默认线程数在同时启动多个独立构建时可能不是最佳的。
  • 我预计输出将以不明智的方式交错。

编辑我也可以将ninja调用保留在前台(这是我目前正在做的),但是没有简单的方法来估计(整个)构建的当前进度是什么。

所以,我想做以下事情之一:

  1. build.ninja文件合并到一个大文件中,该文件可以在一次ninja调用中执行两个构建。
  2. 以某种方式启动ninja多个目标build.ninja脚本。

看起来不支持第二个选项ninja,但第一个选项似乎可以使用subninja <build-dir-n>/build.ninja. 有没有人做过这样的事情?有没有什么隐藏的陷阱?或者,我可以按顺序执行构建(即上述顺序但没有&s),但这感觉不是正确的解决方案。

用例

我正在使用,它为每个构建配置(发布和调试)CMake生成一个单独的文件。build.ninja我还针对多个平台,所以我有多个编译器,并且 CMake 必须为每个平台单独运行。所以如果我想为所有平台构建发布调试代码,我需要运行多次。ninja

4

0 回答 0