I have one 3 rd third-party project providing a lot of libraries (albeit only libraries for headers only). I want to write CMake encapsulation for this project:
foo.cmake file
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
Home 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)
Question:
How to write a fictitious target foo that depends on everyone else?
source share