如何构建过程之后编译cmake的其他源文件(How to compile additional so

2019-07-18 14:53发布

我在cmake的窗户一个项目,该项目包含一个名为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 )

是否有某种方式来做到这一点?

Answer 1:

我不熟悉与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>)


文章来源: How to compile additional source files in cmake after the build process