我在一个 cmake 中定义了一个变量列表,它是从主 CMakeLists.txt 调用的:
add_custom_target(gen_a
COMMAND ${CMAKE_COMMAND} -P "gen_sigs.cmake"
)
add_dependencies(${PROJECT_NAME} gen_a)
我的 gen_sigs.cmake:
set(SIG_LIST SIGNAL_A=0 SIGNAL_B=1 SIGNAL_C=0 )
我想使用此列表将预处理器定义添加到编译器命令行,例如(在主 CMakeLists.txt 中):
add_compile_definitions(
SIGNAL_A=0
SIGNAL_B=1
SIGNAL_C=0
)
我尝试使用以下内容,但它不起作用(在主 CMakeLists.txt 中):
add_compile_definitions(
${SIG_LIST}
)
我是 cmake 的新手,所以任何关于如何完成这项工作的建议都会有所帮助。此外 add_custom_target 在 add_compile_definitions() 之前定义,它仍然没有帮助。我的猜测是执行顺序存在一些问题,因为当我在 cmakelists.txt 中打印 ${SIG_LIST} 时它没有任何价值。有没有办法向 add_compile_definitions 添加依赖项,以便我的 add_custom_target 命令在 add_compiler_definitions() 之前强制执行?