【发布时间】:2014-10-31 23:05:09
【问题描述】:
我的项目是使用 CMake 构建并使用 DistCC + GCC 编译的。
我配置编译器如下:
SET(CMAKE_C_COMPILER "distcc variation-of-gcc")
要构建项目,我只需运行“cmake”,然后运行“make -jXX”。
虽然 distcc 确实加快了速度,但我有时想在没有分发的情况下构建 - 我希望它在机器上本地构建。
我知道我可以修改 DISTCC_HOSTS 以仅包含 localhost - 但这仍然具有 distcc 网络的开销,尽管它比其他机器的开销要快...
我也可以通过再次运行 cmake 并使用自定义标志修改 CMAKE_C_COMPILER 来做到这一点。
但我正在寻找一种方法,只需将标志直接添加到“make”即可。
I.e.
# This will use distcc:
make -jXX ...
# This will run locally:
make LOCAL_BUILD=1 -jX ...
我可以使用 CMake 技巧吗?
【问题讨论】:
-
我根本不知道 cmake,但它会将使用
CMAKE_C_COMPILER选择的编译器粘贴到 makefile 变量中并在 makefile 本身中使用它吗?或者它是否在生成的 makefile 中嵌入了实际的编译器名称? -
我相信它在 Makefile 的多个地方嵌入了固定字符串。所以重写并不简单。
-
我对 cmake 了解得越多,我就越不喜欢它。您可以编写自己的脚本并将其用作编译器,并让它响应
LOCAL_BUILD或任何变量的存在来选择要使用的编译器。 -
我认为应该有一个更优雅的解决方案。无论如何,由于我将 CMake 用于多个平台,使用不同的编译器,你能建议如何实现脚本吗?如果能用CMake生成就好了……
标签: c++ gcc makefile cmake distcc