我在cmake for windows中有一个项目,其中包含一个名为database.proc的Pro * C源文件,我的目标是从.proc文件生成一个C源文件并将其添加到项目中以便链接到另一个源文件,我试图添加一个自定义命令来实现这一目标
add_custom_command(TARGET myproj OUTPUT PRE_LINK
COMMAND ${PROC} iname=${PROJECT_SOURCE_DIR}/connection.proc SQLCHECK=SYNTAX
MODE=ANSI IRECLEN=255 ORECLEN=255
ONAME=${PROJECT_SOURCE_DIR}/connection.c
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAGS}
${PROJECT_SOURCE_DIR}/connection.c )
有没有办法做到这一点?
答案 0 :(得分:2)
我不熟悉Pro * C,但看起来你正在将add_custom_command
的两个不同版本混合在一起。
第一个版本add_custom_command(OUTPUT ...)
用于生成一个文件,然后将该文件作为另一个CMake目标的依赖项添加。构建该目标时,首先执行自定义命令以生成输出文件。
第二个版本add_custom_command(TARGET ...)
用于定义预构建,预链接或构建后命令;一个不一定创建文件,但与构建关联目标一起执行的文件。
如果你只有一个目标取决于Pro * C的输出,那么第一个版本可能是你最好的选择:
add_custom_command(OUTPUT ${PROJECT_SOURCE_DIR}/connection.c
COMMAND ${PROC} iname=${PROJECT_SOURCE_DIR}/connection.proc SQLCHECK=SYNTAX
MODE=ANSI IRECLEN=255 ORECLEN=255
ONAME=${PROJECT_SOURCE_DIR}/connection.c)
add_executable(myproj ${PROJECT_SOURCE_DIR}/connection.c <other sources>)