gpt4 book ai didi

CMake虚拟目标取决于其他目标

转载 作者:行者123 更新时间:2023-12-04 02:01:45 26 4
gpt4 key购买 nike

我有一个3rdparty项目,其中提供了许多库(比方说仅 header 的库)。我想为此项目编写CMake封装:

文件foo.cmake

add_library(          foo-aaa INTERFACE IMPORTED GLOBAL)
set_target_properties(foo-aaa PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/aaa/inc)

add_library( foo-bbb INTERFACE IMPORTED GLOBAL)
set_target_properties(foo-bbb PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/bbb/inc)

add_library( foo-ccc INTERFACE IMPORTED GLOBAL)
set_target_properties(foo-ccc PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/ccc/inc)

add_library( foo-ddd INTERFACE IMPORTED GLOBAL)
set_target_properties(foo-ddd PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/ddd/inc)

add_library( foo-eee INTERFACE IMPORTED GLOBAL)
set_target_properties(foo-eee PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/eee/inc)

[...] And many more

# For convenience I also want to provide
# a global/dummy target depending on all above libraries
add_library( foo ????? )

主要 CMakeLists.txt
cmake_minimum_required(VERSION 3.1)
project(bar CXX)
include(path/to/3rdparty/foo/foo.cmake)
add_executable(bar bar.cpp)
target_link_libraries(bar foo)

问题:
如何编写依赖于所有其他目标的虚拟目标foo

最佳答案

假设您不希望包含所有库的库,则可能需要这样做:

add_custom_target( foo )
add_dependencies( foo foo-aaa foo-bbb foo-ccc )

关于CMake虚拟目标取决于其他目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34886399/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com