如何在第一次被编译为目标的cmake中添加自定义源文件依赖项

时间:2020-03-13 14:41:53

标签: cmake build-dependencies

我有以下CMakefile.txt代码段,该代码段应生成defaultIdentity.c,以便为foo.so库目标构建。实际发生的是,最初创建了defaultIdentity.c,但未将其编译为foo.so。 在随后的运行中,可能已将其编译为foo.so。 我认为这是某种生成时间,构建时间问题,但是完全困扰于如何使其真正起作用。 由于我无法找到详细说明此问题的cmake文档,因此我将其整理成各种Web片段。

set(CERTFILE /path/to/certfile)
add_custom_command(OUTPUT defaultIdentity.c
        COMMAND cat ${CERTFILE} > defaultId
        COMMAND xxd -i defaultId > defaultIdentity.c
        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
        MAIN_DEPENDENCY ${CERTFILE})

add_custom_target(defaultIdentity DEPENDS defaultIdentity.c)

file(GLOB TKNAME_SOURCES *.[hc] ${CMAKE_CURRENT_BINARY_DIR}/defaultIdentity.c)

add_library(${TKNAME} SHARED ${TKNAME_SOURCES})

add_dependencies(${TKNAME} defaultIdentity)

有人能详细说明如何实际完成这项工作吗?

1 个答案:

答案 0 :(得分:0)

好吧,我敢肯定有办法做到这一点,但是看来我和其他人都没有找到办法做到这一点。

由于源非常静态,因此我只是手动创建了文件并将其添加到源中。 结案了。

相关问题