我是第一次写 cmake 的例子。
这是 CMakeFiles.txt 的一部分:
add_custom_command(
OUTPUT ${CODEGEN_SRC}
PRE_BUILD
COMMAND ${CODEGEN_CMD} ${SERVICE_XML} --generate-cpp- code=/home/hello/include/gen/testGenCode
COMMENT "Generate gdbus code"
)
add_custom_target(${CODEGEN_TARGET}
DEPENDS ${CODEGEN_SRC}
)
gdbus-codegen-glibmm
使用命令语法生成代码,使用add_custom_command
.
然而,与我的预期相反,当我实际执行 cmake 和 make 时,它看起来像这样:
cmake ..
CMake Error at Server/CMakeLists.txt:1 (ADD_EXECUTABLE):
Cannot find source file:
#### generate File ####
CMake Error at Client/CMakeLists.txt:36 (ADD_EXECUTABLE):
Cannot find source file:
#### generate File ####
然后,如果继续make,就会输出add_custom_command中COMMANT的内容,并实际生成代码。
检查生成的代码后,继续执行 cmake .. 并再次 make 以正常构建。
Server/CMakeLists.txt, Client/CMakeLists.txt 我设置了${CODEGEN_TARGET}
使用 ADD_DEPENDENCIES in 的依赖关系,但它的工作方式与我预期的不同。
如何让 gdbus-codegen-glibmm 命令先运行?