我不确定如何为此设置标题。
我基本上有一个用cmake
构建的代码库;现在我想知道在同一个缓存中调用cmake
本身是否安全超过1次。
例如在目录/path
中我使用
cmake -DVAR=VALUE < more flags >
然后在第二步中,我再次使用另一组标志cmake
在同一目录/path
中调用cmake -DANOTHER_VAR=ANOTHER_VALUE < more flags >
/path
此时有一些保证CMakeLists
内的内容是两个命令的结果?这取决于cmake
的编写方式?
我在{{1}}上使用的建筑系统可以通过这些步骤进行简化,这就是我要问的原因。
答案 0 :(得分:1)
是的,可以这样做。实际上,当您在CMakeLists.txt中更改某些内容然后在构建文件夹中运行make
时,CMake会在那里调用cmake .
来重新生成缓存。
除此之外,-DVAR=VALUE
是在生成的缓存中设置变量的预期方式,以及-UVAR
。
唯一的例外是更改CMAKE_C_COMPILER
或CMAKE_CXX_COMPILER
等变种。如果您使用cmake -DCMAKE_C_COMPILER=newcc .
更改它们,CMake会擦除您的缓存并从头开始生成它。