|
1 | 1 | cmake_minimum_required(VERSION 3.22.1) |
2 | 2 |
|
3 | | - |
4 | 3 | list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/CMake") |
5 | 4 | include(ystdlib-cpp-helpers) |
6 | 5 | include(CMakePackageConfigHelpers) |
7 | 6 | include(GNUInstallDirs) |
8 | 7 |
|
9 | 8 | set(YSTDLIB_CPP_VERSION "0.0.1" CACHE STRING "Project version.") |
10 | 9 |
|
11 | | -project(YSTDLIB_CPP |
12 | | - VERSION "${YSTDLIB_CPP_VERSION}" |
13 | | - LANGUAGES CXX |
14 | | -) |
| 10 | +project(YSTDLIB_CPP VERSION "${YSTDLIB_CPP_VERSION}" LANGUAGES CXX) |
15 | 11 |
|
16 | 12 | option(BUILD_SHARED_LIBS "Build using shared libraries." OFF) |
17 | 13 | option(YSTDLIB_CPP_BUILD_TESTING "Build the testing tree for ystdlib-cpp." ON) |
@@ -93,77 +89,69 @@ endif() |
93 | 89 | set(YSTDLIB_INSTALL_CONFIG_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/ystdlib) |
94 | 90 | set(YSTDLIB_INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR}) |
95 | 91 |
|
96 | | -file(GLOB_RECURSE SOURCE_FILES |
97 | | - CONFIGURE_DEPENDS |
98 | | - "${PROJECT_SOURCE_DIR}/src/*.cpp" |
99 | | - "${PROJECT_SOURCE_DIR}/src/*.hpp" |
100 | | - "${PROJECT_SOURCE_DIR}/src/*.h" |
| 92 | +file( |
| 93 | + GLOB_RECURSE SOURCE_FILES |
| 94 | + CONFIGURE_DEPENDS |
| 95 | + "${PROJECT_SOURCE_DIR}/src/*.cpp" |
| 96 | + "${PROJECT_SOURCE_DIR}/src/*.hpp" |
| 97 | + "${PROJECT_SOURCE_DIR}/src/*.h" |
101 | 98 | ) |
102 | 99 | list(FILTER SOURCE_FILES EXCLUDE REGEX ".*test_*\..*") |
103 | 100 |
|
104 | 101 | add_library(ystdlib ${SOURCE_FILES}) |
105 | 102 | add_library(ystdlib::ystdlib ALIAS ystdlib) |
106 | 103 |
|
107 | | -target_include_directories(ystdlib |
108 | | - PUBLIC |
| 104 | +target_include_directories( |
| 105 | + ystdlib |
| 106 | + PUBLIC |
109 | 107 | $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src> |
110 | 108 | $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> |
111 | | - ) |
112 | | - |
113 | | -target_compile_features(ystdlib |
114 | | - PRIVATE cxx_std_20 |
115 | 109 | ) |
116 | 110 |
|
117 | | -set_target_properties(ystdlib PROPERTIES LINKER_LANGUAGE CXX) |
| 111 | +target_compile_features(ystdlib PRIVATE cxx_std_20) |
118 | 112 |
|
119 | | -install( |
120 | | - TARGETS |
| 113 | +set_target_properties( |
121 | 114 | ystdlib |
122 | | - EXPORT |
123 | | - ystdlib-targets |
| 115 | + PROPERTIES |
| 116 | + LINKER_LANGUAGE |
| 117 | + CXX |
124 | 118 | ) |
125 | 119 |
|
126 | | -install( |
127 | | - EXPORT |
128 | | - ystdlib-targets |
129 | | - NAMESPACE |
130 | | - ystdlib:: |
131 | | - DESTINATION |
132 | | - ${YSTDLIB_INSTALL_CONFIG_DIR} |
133 | | -) |
| 120 | +install(TARGETS ystdlib EXPORT ystdlib-targets) |
| 121 | + |
| 122 | +install(EXPORT ystdlib-targets NAMESPACE ystdlib:: DESTINATION ${YSTDLIB_INSTALL_CONFIG_DIR}) |
134 | 123 |
|
135 | 124 | install( |
136 | 125 | DIRECTORY |
137 | | - "${PROJECT_SOURCE_DIR}/src/ystdlib" |
138 | | - DESTINATION |
139 | | - "${YSTDLIB_INSTALL_INCLUDE_DIR}" |
| 126 | + "${PROJECT_SOURCE_DIR}/src/ystdlib" |
| 127 | + DESTINATION "${YSTDLIB_INSTALL_INCLUDE_DIR}" |
140 | 128 | FILES_MATCHING |
141 | | - PATTERN "*.h" |
142 | | - PATTERN "*.hpp" |
143 | | - PATTERN "*.tpp" |
| 129 | + PATTERN |
| 130 | + "*.h" |
| 131 | + PATTERN |
| 132 | + "*.hpp" |
| 133 | + PATTERN |
| 134 | + "*.tpp" |
144 | 135 | ) |
145 | 136 |
|
146 | 137 | configure_package_config_file( |
147 | 138 | ${CMAKE_CURRENT_LIST_DIR}/CMake/ystdlib-config.cmake.in |
148 | 139 | ${CMAKE_CURRENT_BINARY_DIR}/ystdlib-config.cmake |
149 | | - INSTALL_DESTINATION |
150 | | - ${YSTDLIB_INSTALL_CONFIG_DIR} |
| 140 | + INSTALL_DESTINATION ${YSTDLIB_INSTALL_CONFIG_DIR} |
151 | 141 | PATH_VARS |
152 | | - YSTDLIB_INSTALL_INCLUDE_DIR |
153 | | - ) |
| 142 | + YSTDLIB_INSTALL_INCLUDE_DIR |
| 143 | +) |
154 | 144 |
|
155 | 145 | write_basic_package_version_file( |
156 | 146 | ${CMAKE_CURRENT_BINARY_DIR}/ystdlib-config-version.cmake |
157 | | - COMPATIBILITY |
158 | | - SameMajorVersion |
159 | | - ) |
| 147 | + COMPATIBILITY SameMajorVersion |
| 148 | +) |
160 | 149 |
|
161 | 150 | install( |
162 | 151 | FILES |
163 | | - ${CMAKE_CURRENT_BINARY_DIR}/ystdlib-config.cmake |
164 | | - ${CMAKE_CURRENT_BINARY_DIR}/ystdlib-config-version.cmake |
165 | | - DESTINATION |
166 | | - ${YSTDLIB_INSTALL_CONFIG_DIR} |
167 | | - ) |
| 152 | + ${CMAKE_CURRENT_BINARY_DIR}/ystdlib-config.cmake |
| 153 | + ${CMAKE_CURRENT_BINARY_DIR}/ystdlib-config-version.cmake |
| 154 | + DESTINATION ${YSTDLIB_INSTALL_CONFIG_DIR} |
| 155 | +) |
168 | 156 |
|
169 | 157 | add_subdirectory(src/ystdlib) |
0 commit comments