CMake all_object_files目标

时间:2018-07-17 11:52:41

标签: cmake

我想创建一个CMake目标来构建所有目标文件。 为此,我首先修改了所有目标以构建目标文件lib并对其进行链接:

add_library(exe_object_files OBJECT ${sources})
add_executable(exe $<TARGET_OBJECTS:exe_object_files>)

由于我具有多个可执行文件,因此我为所有目标文件添加了一个目标,并为每个可执行文件添加了目标作为依赖项:

add_custom_target(all_exe_object_files)
add_dependencies(all_exe_object_files exe_object_files)

这会添加一个我可以创建的all_exe_object_files目标,但使目标无效。

然后我尝试将目标文件添加为源:

get_target_property(all_exe_object_files_sources all_exe_object_files SOURCES)
if(NOT all_exe_object_files_sources)
    set(all_exe_object_files_sources)
endif()
list(APPEND all_exe_object_files_sources $<TARGET_OBJECTS:exe_object_files>)
set_target_properties(all_exe_object_files PROPERTIES SOURCES "${all_exe_object_files_sources}")

这没有帮助。

我想原因是add_library(... OBJECT ...)的行为与add_custom_command类似,并且只有在目标使用文件时才会构建文件(而我的自定义目标可能不算作使用生成的文件)。 / p>

我在做什么错了,如何创建用于构建所有目标文件的目标?

0 个答案:

没有答案