From 56597bda2cfff4fc9cb85039ed558c3459b1e60f Mon Sep 17 00:00:00 2001 From: JYLeeLYJ Date: Tue, 5 Dec 2023 23:10:43 +0800 Subject: [PATCH] feat: support FetchContent use in CMake --- CMakeLists.txt | 29 ++++++++++++++++------------- cmake/install.cmake | 8 +++++++- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d2e9f58a..31415cdb2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,21 +9,24 @@ project(yaLanTingLibs # load pack finder list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Find/) -# add include path -include_directories(include) -include_directories(include/ylt/thirdparty) -include_directories(src/include) - find_package(Threads REQUIRED) link_libraries(Threads::Threads) -include(cmake/utils.cmake) -include(cmake/struct_pb.cmake) -include(cmake/build.cmake) -include(cmake/develop.cmake) include(cmake/install.cmake) -# add project config, such as enable_ssl. -include(cmake/config.cmake) -# add project's source such as unit test, example & benchmark -include(cmake/subdir.cmake) + +if(CMAKE_PROJECT_NAME STREQUAL "yaLanTingLibs") # if ylt is top-level project + # add include path + include_directories(include) + include_directories(include/ylt/thirdparty) + include_directories(src/include) + + include(cmake/utils.cmake) + include(cmake/struct_pb.cmake) + include(cmake/build.cmake) + include(cmake/develop.cmake) + # add project config, such as enable_ssl. + include(cmake/config.cmake) + # add project's source such as unit test, example & benchmark + include(cmake/subdir.cmake) +endif() diff --git a/cmake/install.cmake b/cmake/install.cmake index 24c0d0e34..3967e2ee4 100644 --- a/cmake/install.cmake +++ b/cmake/install.cmake @@ -11,8 +11,14 @@ write_basic_package_version_file( ) set(ConfigPackageLocation lib/cmake/yalantinglibs) - add_library(yalantinglibs INTERFACE) +add_library(yalantinglibs::yalantinglibs ALIAS yalantinglibs) + +target_include_directories(yalantinglibs INTERFACE + $ + $ + $ +) install(TARGETS yalantinglibs EXPORT yalantinglibsTargets LIBRARY DESTINATION lib