【发布时间】:2020-05-28 14:34:31
【问题描述】:
我正在使用生成 C++ 和 CMakeLists.txt 文件的代码生成器,遗憾的是我无法在我的主 CMakeLists.txt 文件中使用它来进行测试。
例如,您有以下 CMakeLists.txt 文件:
project(SomeProject CXX C)
add_custom_command(OUTPUT ${SRCS}
COMMAND ${CODEGEN_CLI_PATH} -i "${INPUT}" -o "${OUT}"
COMMENT "Generating sources"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
VERBATIM
)
add_custom_target(CODEGEN
DEPENDS
${SRCS}
)
# Needs to be executed after the custom command
add_subdirectory(${GENERATED_CMAKE_LISTS_LOCATION})
只有在为特定目标(例如CODEGEN)执行自定义命令后,是否可以使用add_subdirectory 等函数?
我已经尝试通过在现有自定义命令中添加额外的行来执行它:
COMMAND ${CMAKE_COMMAND} -D DIR=${GENERATED_CMAKE_LISTS_LOCATION} -P add_subdirectories.cmake
不幸的是,这不起作用,因为它不允许在脚本模式下执行像 add_subdirectory 这样的函数。
我无法从位于同一文件中的add_custom_command 调用自定义函数(正在执行add_subdirectory)。
【问题讨论】:
标签: cmake dependencies