我使用的是CMake版本3.16。
我尝试了以下几点:
set_property(TARGET ${PLUGIN_NAME} PROPERTY VS_GLOBAL_FR_VERSION
$<$<CONFIG:Debug2017>:"2017">
$<$<CONFIG:Release2017>:"2017">
$<$<CONFIG:Debug2018>:"2018">
$<$<CONFIG:Release2018>:"2018">
$<$<CONFIG:Debug2019>:"2019">
$<$<CONFIG:Release2019>:"2019">
)这有点管用..。
这个变量(FR_VERSION)应该在构建后启动的脚本中使用。这就是它的样子:
add_custom_command(TARGET ${PLUGIN_NAME} POST_BUILD
COMMAND echo $(FR_VERSION)
COMMENT "This command will copy files to dist"
VERBATIM
)然而,在Visual中,我们得到了以下内容:
echo $<$<CONFIG:Debug2017>:"2017">;$<$<CONFIG:Release2017>:"2017">;$<$<CONFIG:Debug2018>:"2018">;$<$<CONFIG:Release2018>:"2018">;$<$<CONFIG:Debug2019>:"2019">;$<$<CONFIG:Release2019>:"2019">它无法使用错误消息执行:
"The syntax of the command is incorrect."如果我不尝试为不同的构建设置一个不同的值,如下所示:
set_target_properties(${MAYA_PLUGIN_NAME} PROPERTIES VS_GLOBAL_FR_MAYA_VERSION "2018")然后按预期生成后构建脚本。(但我不能接受这一点,因为对于不同的构建配置,我需要不同的参数值)。
我希望在这一点上有任何建议。
发布于 2020-01-24 16:00:42
一些目标属性支持生成器表达式,而另一些则不支持生成器表达式。属性的文档将显式表示支持生成器表达式。以COMPILE_FEATURES属性为例:
内容的
COMPILE_FEATURES可以使用“生成器表达式”的语法$<...>。
VS_GLOBAL_的文档没有这样的语言。因此,正如建议的那样,可以将生成器表达式直接放在add_custom_command()调用中,这是支持的:
add_custom_command(TARGET ${PLUGIN_NAME} POST_BUILD
COMMAND echo $<$<CONFIG:Debug2017>:"2017">
$<$<CONFIG:Release2017>:"2017">
$<$<CONFIG:Debug2018>:"2018">
$<$<CONFIG:Release2018>:"2018">
$<$<CONFIG:Debug2019>:"2019">
$<$<CONFIG:Release2019>:"2019">
COMMENT "This command will copy files to dist"
)https://stackoverflow.com/questions/59899487
复制相似问题