我有一个CMake文件,其中包含以下命令:
set_target_properties(SM_Application PROPERTIES OUTPUT_NAME "Initial_Name.lib" PREFIX "" SUFFIX "")
...
set_target_properties(SM_Application PROPERTIES OUTPUT_NAME "New_Name.lib" PREFIX "" SUFFIX "")
第二次调用set_target_properties
会改变属性OUTPUT_NAME
吗?
我想自己调试一下,用message命令记录这个属性,如下所示:
message("Initialize output names for libs: ${SM_Application } ")
我不知道如何访问目标属性OUTPUT_NAME
。
2条答案
按热度按时间shyt4zoc1#
set_target_properties
您可以使用任何需要的prop值对,并在以后使用
get_property()
或get_target_property()
命令提取它。这将回答 * 如何使用message命令记录此属性?*
通过访问属性
OUTPUT_NAME
的设置值,可以确保第二个set_target_properties
重写第一个set_target_properties
。33qvvth12#
要使用
message
打印目标属性,需要将其读入CMake变量,然后在message
的内容参数中引用该变量。此配置创建一个可执行目标,设置目标属性,将其读取到变量中,用message打印值,然后用不同的值重复。
输出:
所以是的,重复调用
set_target_properties
会覆盖以前的值。如果你想追加而不是覆盖,请使用更通用的set_property(TARGET)
,它有一个APPEND
选项(但不允许在同一个调用中设置多个属性)。