我的部分源代码是由一个工具生成的,该工具也是在我们的主项目下构建的,使用了add_subdirectory
。我们使用execute_process
命令来执行这个工具。很明显,如果在达到execute_process
语句之前没有构建好该工具,它将会失败。
我使用GLOB(file(GLOB...)
)来查找已生成的源文件。我这样做是因为无法预先知道有多少文件被生成,也不知道它们的名称。
我应该如何强制CMake在执行进程之前等待子项目编译完毕?我需要像execute_process
的DEPENDS
属性一样的东西,但这个选项不可用。
# This subproject will source generator the tool
add_subdirectory(generator)
# I need something like: wait_for(generator)
execute_process(COMMAND generator ${CMAKE_SOURCE_DIR}/src)
file(GLOB GeneratedSources ${CMAKE_SOURCE_DIR}/src/*.cpp)
add_executable(mainprject.exe ${ProcessorSourceFiles}
add_custom_command
代替execute_process
? - arrowdfile(GLOB ...)
命令之前执行该过程。add_custom_command
不允许我这样做。 - rphfile(GLOB ...)
并将其结果传递给add_custom_command
。 - arrowdfile(GLOB....)
,则目录src
将为空。我需要在搜索文件 (file(GLOB...)
) 之前运行execute_process
。 - rph