CMake add_custom_command 宏内部
CMake add_custom_command inside of a macro
我的 CMake 代码如下所示:
macro(macro_name target_name)
add_custom_command(TARGET ${target_name}
POST_BUILD
COMMAND MyCommand)
endmacro()
运行 我收到以下消息:
CMake Warning (dev) at ... (add_custom_command):
Policy CMP0040 is not set: The target in the TARGET signature of
add_custom_command() must exist. Run "cmake --help-policy CMP0040" for
policy details. Use the cmake_policy command to set the policy and
suppress this warning.
The target name "target_name" is unknown in this context.
函数内的相同代码效果很好,但我需要宏来处理其他事情。
CMake 策略 (http://www.cmake.org/cmake/help/v3.0/policy/CMP0040.html) 建议忽略此警告(并完全忽略添加构建后步骤)或根据设置将其视为错误。
这:http://www.cmake.org/cmake/help/v3.0/command/macro.html 说明宏中的参数行为与函数中的行为不同。
如何正确引用宏参数来完成这项工作?
我已经设法找出原因:在我的例子中,错误的目录被用作宏内部的 ${CMAKE_CURRENT_BINARY_DIR} 。修复路径以获得理想的结果
我的 CMake 代码如下所示:
macro(macro_name target_name)
add_custom_command(TARGET ${target_name}
POST_BUILD
COMMAND MyCommand)
endmacro()
运行 我收到以下消息:
CMake Warning (dev) at ... (add_custom_command):
Policy CMP0040 is not set: The target in the TARGET signature of
add_custom_command() must exist. Run "cmake --help-policy CMP0040" for
policy details. Use the cmake_policy command to set the policy and
suppress this warning.
The target name "target_name" is unknown in this context.
函数内的相同代码效果很好,但我需要宏来处理其他事情。
CMake 策略 (http://www.cmake.org/cmake/help/v3.0/policy/CMP0040.html) 建议忽略此警告(并完全忽略添加构建后步骤)或根据设置将其视为错误。
这:http://www.cmake.org/cmake/help/v3.0/command/macro.html 说明宏中的参数行为与函数中的行为不同。
如何正确引用宏参数来完成这项工作?
我已经设法找出原因:在我的例子中,错误的目录被用作宏内部的 ${CMAKE_CURRENT_BINARY_DIR} 。修复路径以获得理想的结果