Cmake:如何通过命令行将字符串附加到变量?

时间:2014-05-22 11:56:10

标签: c++ cmake

在我的CMakeList.txt中,我可以做以下事情:

set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -new -flags -here")

是否可以通过命令行进行相同的操作?喜欢:

cmake.exe -DCMAKE_CXXFLAGS+= -new -flags

3 个答案:

答案 0 :(得分:17)

我不确定您是否可以直接从命令行添加选项,但您可以使用其他变量来存储它们并在最后合并它。如下所示:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MY_FLAGS}")

然后按如下方式调用cmake:

cmake -DMY_FLAGS="-new -flags"

答案 1 :(得分:1)

首先,请不要靠近,!使用target_compile_options

"{:,}".format(value).replace(',', ' ')

要展开其他列表,请使用list

CMAKE_CXX_FLAGS

答案 2 :(得分:0)

如果您不喜欢@Svalorzen指定的命令行语法,您可以编写一个脚本,以您喜欢的方式解释其命令行参数,并将它们转换为可以放在cmake.exe上的内容。命令行。如果需要考虑可移植性,可以使用Perl等语言编写脚本(通常可在类Unix平台上使用,并可安装在Windows上)。

如果所有这些都可以买到,那么你就可以解决你所描述的问题,但我建议你只使用@Svalorzen的答案。

相关问题