`ninja`有多个`build.ninja`文件?

时间:2015-08-03 19:51:27

标签: c++ build cmake ninja

我想同时启动多个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
  3. 看起来ninja不支持第二个选项,但第一个选项似乎可以使用subninja <build-dir-n>/build.ninja轻松完成。以前有人做过这样的事吗?有任何隐藏的陷阱吗?或者,我可以按顺序执行构建(即上面的序列,但没有& s),但这不是正确的解决方案。

    用例

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

0 个答案:

没有答案