Steve Hanson | 7cad78e | 2022-11-25 14:21:45 +0000 | [diff] [blame] | 1 | CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12) |
Eli Fidler | 56bb999 | 2016-05-31 10:46:52 -0400 | [diff] [blame] | 2 | if(POLICY CMP0025) |
| 3 | # detect Apple's Clang |
| 4 | cmake_policy(SET CMP0025 NEW) |
| 5 | endif() |
Milo Yip | aae2fbf | 2016-04-21 23:12:31 +0800 | [diff] [blame] | 6 | if(POLICY CMP0054) |
| 7 | cmake_policy(SET CMP0054 NEW) |
| 8 | endif() |
| 9 | |
Phyks | 89ad34c | 2015-05-12 00:23:50 +0200 | [diff] [blame] | 10 | SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules) |
Andriy Senkovych | 8ae1c97 | 2014-11-04 00:36:24 +0200 | [diff] [blame] | 11 | |
miloyip | 5ab1e93 | 2015-04-21 16:38:49 +0800 | [diff] [blame] | 12 | set(LIB_MAJOR_VERSION "1") |
Milo Yip | 17254e0 | 2016-08-25 14:35:17 +0800 | [diff] [blame] | 13 | set(LIB_MINOR_VERSION "1") |
| 14 | set(LIB_PATCH_VERSION "0") |
Andriy Senkovych | 8ae1c97 | 2014-11-04 00:36:24 +0200 | [diff] [blame] | 15 | set(LIB_VERSION_STRING "${LIB_MAJOR_VERSION}.${LIB_MINOR_VERSION}.${LIB_PATCH_VERSION}") |
| 16 | |
piratf | 46d980b | 2019-11-11 16:09:43 +0800 | [diff] [blame] | 17 | if (CMAKE_VERSION VERSION_LESS 3.0) |
| 18 | PROJECT(RapidJSON CXX) |
| 19 | else() |
| 20 | cmake_policy(SET CMP0048 NEW) |
| 21 | PROJECT(RapidJSON VERSION "${LIB_VERSION_STRING}" LANGUAGES CXX) |
| 22 | endif() |
| 23 | |
Andriy Senkovych | 8ae1c97 | 2014-11-04 00:36:24 +0200 | [diff] [blame] | 24 | # compile in release with debug info mode by default |
Milo Yip | b515627 | 2016-01-31 01:17:29 +0800 | [diff] [blame] | 25 | if(NOT CMAKE_BUILD_TYPE) |
| 26 | set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE) |
| 27 | endif() |
Andriy Senkovych | 8ae1c97 | 2014-11-04 00:36:24 +0200 | [diff] [blame] | 28 | |
Andriy Senkovych | d69991f | 2014-11-11 17:16:51 +0200 | [diff] [blame] | 29 | # Build all binaries in a separate directory |
| 30 | SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) |
| 31 | |
Andriy Senkovych | 8ae1c97 | 2014-11-04 00:36:24 +0200 | [diff] [blame] | 32 | option(RAPIDJSON_BUILD_DOC "Build rapidjson documentation." ON) |
| 33 | option(RAPIDJSON_BUILD_EXAMPLES "Build rapidjson examples." ON) |
| 34 | option(RAPIDJSON_BUILD_TESTS "Build rapidjson perftests and unittests." ON) |
Phyks | 89ad34c | 2015-05-12 00:23:50 +0200 | [diff] [blame] | 35 | option(RAPIDJSON_BUILD_THIRDPARTY_GTEST |
Andrii Senkovych | 04b6736 | 2015-04-21 13:10:08 +0300 | [diff] [blame] | 36 | "Use gtest installation in `thirdparty/gtest` by default if available" OFF) |
Andriy Senkovych | 8ae1c97 | 2014-11-04 00:36:24 +0200 | [diff] [blame] | 37 | |
ylavic | e336667 | 2021-03-29 17:42:30 +0200 | [diff] [blame] | 38 | option(RAPIDJSON_BUILD_CXX11 "Build rapidjson with C++11" ON) |
| 39 | option(RAPIDJSON_BUILD_CXX17 "Build rapidjson with C++17" OFF) |
Rolf Eike Beer | ff59b61 | 2017-11-24 17:00:53 +0100 | [diff] [blame] | 40 | if(RAPIDJSON_BUILD_CXX11) |
| 41 | set(CMAKE_CXX_STANDARD 11) |
| 42 | set(CMAKE_CXX_STANDARD_REQUIRED TRUE) |
| 43 | endif() |
Milo Yip | a6eb15d | 2016-01-23 14:37:15 +0800 | [diff] [blame] | 44 | |
Eli Fidler | 56bb999 | 2016-05-31 10:46:52 -0400 | [diff] [blame] | 45 | option(RAPIDJSON_BUILD_ASAN "Build rapidjson with address sanitizer (gcc/clang)" OFF) |
| 46 | option(RAPIDJSON_BUILD_UBSAN "Build rapidjson with undefined behavior sanitizer (gcc/clang)" OFF) |
| 47 | |
M.Tayel | 7bd9b5a | 2017-10-16 15:01:27 +0200 | [diff] [blame] | 48 | option(RAPIDJSON_ENABLE_INSTRUMENTATION_OPT "Build rapidjson with -march or -mcpu options" ON) |
| 49 | |
Andriy Senkovych | 40c0311 | 2014-11-12 01:57:25 +0200 | [diff] [blame] | 50 | option(RAPIDJSON_HAS_STDSTRING "" OFF) |
| 51 | if(RAPIDJSON_HAS_STDSTRING) |
| 52 | add_definitions(-DRAPIDJSON_HAS_STDSTRING) |
| 53 | endif() |
| 54 | |
ylavic | 71f0fa7 | 2021-04-01 18:20:09 +0200 | [diff] [blame] | 55 | option(RAPIDJSON_USE_MEMBERSMAP "" OFF) |
| 56 | if(RAPIDJSON_USE_MEMBERSMAP) |
| 57 | add_definitions(-DRAPIDJSON_USE_MEMBERSMAP=1) |
| 58 | endif() |
| 59 | |
Milo Yip | ae840f6 | 2016-01-04 09:27:53 +0800 | [diff] [blame] | 60 | find_program(CCACHE_FOUND ccache) |
| 61 | if(CCACHE_FOUND) |
| 62 | set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) |
| 63 | set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) |
| 64 | if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") |
| 65 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments -fcolor-diagnostics") |
| 66 | endif() |
| 67 | endif(CCACHE_FOUND) |
| 68 | |
Rolf Eike Beer | 4e1c736 | 2017-11-24 15:46:44 +0100 | [diff] [blame] | 69 | if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") |
Rolf Eike Beer | 4c9a28a | 2017-11-24 15:48:43 +0100 | [diff] [blame] | 70 | if(RAPIDJSON_ENABLE_INSTRUMENTATION_OPT AND NOT CMAKE_CROSSCOMPILING) |
Rolf Eike Beer | 4e1c736 | 2017-11-24 15:46:44 +0100 | [diff] [blame] | 71 | if(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le") |
M.Tayel | 7bd9b5a | 2017-10-16 15:01:27 +0200 | [diff] [blame] | 72 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=native") |
| 73 | else() |
| 74 | #FIXME: x86 is -march=native, but doesn't mean every arch is this option. To keep original project's compatibility, I leave this except POWER. |
| 75 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native") |
| 76 | endif() |
Wu Zhao | c4db88a | 2016-10-26 17:27:54 +0800 | [diff] [blame] | 77 | endif() |
| 78 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror") |
Zhihao Yuan | 3cc77d5 | 2017-01-18 16:16:07 -0600 | [diff] [blame] | 79 | set(EXTRA_CXX_FLAGS -Weffc++ -Wswitch-default -Wfloat-equal -Wconversion -Wsign-conversion) |
Rolf Eike Beer | ff59b61 | 2017-11-24 17:00:53 +0100 | [diff] [blame] | 80 | if (RAPIDJSON_BUILD_CXX11 AND CMAKE_VERSION VERSION_LESS 3.1) |
Milo Yip | 2f5a69b | 2016-01-23 14:58:19 +0800 | [diff] [blame] | 81 | if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.7.0") |
| 82 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") |
| 83 | else() |
| 84 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") |
| 85 | endif() |
ylavic | e336667 | 2021-03-29 17:42:30 +0200 | [diff] [blame] | 86 | elseif (RAPIDJSON_BUILD_CXX17 AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0") |
| 87 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") |
Milo Yip | a6eb15d | 2016-01-23 14:37:15 +0800 | [diff] [blame] | 88 | endif() |
Eli Fidler | 56bb999 | 2016-05-31 10:46:52 -0400 | [diff] [blame] | 89 | if (RAPIDJSON_BUILD_ASAN) |
| 90 | if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.8.0") |
| 91 | message(FATAL_ERROR "GCC < 4.8 doesn't support the address sanitizer") |
| 92 | else() |
| 93 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address") |
| 94 | endif() |
| 95 | endif() |
| 96 | if (RAPIDJSON_BUILD_UBSAN) |
| 97 | if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.9.0") |
| 98 | message(FATAL_ERROR "GCC < 4.9 doesn't support the undefined behavior sanitizer") |
| 99 | else() |
| 100 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined") |
| 101 | endif() |
| 102 | endif() |
Andrii Senkovych | 3ae2a29 | 2015-02-11 14:10:09 +0200 | [diff] [blame] | 103 | elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang") |
Rolf Eike Beer | 4c9a28a | 2017-11-24 15:48:43 +0100 | [diff] [blame] | 104 | if(NOT CMAKE_CROSSCOMPILING) |
| 105 | if(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le") |
| 106 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=native") |
| 107 | else() |
| 108 | #FIXME: x86 is -march=native, but doesn't mean every arch is this option. To keep original project's compatibility, I leave this except POWER. |
| 109 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native") |
| 110 | endif() |
Wu Zhao | c4db88a | 2016-10-26 17:27:54 +0800 | [diff] [blame] | 111 | endif() |
| 112 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -Wno-missing-field-initializers") |
Milo Yip | f8eb7ba | 2017-05-12 10:32:06 +0800 | [diff] [blame] | 113 | set(EXTRA_CXX_FLAGS -Weffc++ -Wswitch-default -Wfloat-equal -Wconversion -Wimplicit-fallthrough) |
Rolf Eike Beer | ff59b61 | 2017-11-24 17:00:53 +0100 | [diff] [blame] | 114 | if (RAPIDJSON_BUILD_CXX11 AND CMAKE_VERSION VERSION_LESS 3.1) |
Milo Yip | a6eb15d | 2016-01-23 14:37:15 +0800 | [diff] [blame] | 115 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") |
ylavic | e336667 | 2021-03-29 17:42:30 +0200 | [diff] [blame] | 116 | elseif (RAPIDJSON_BUILD_CXX17 AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.0") |
| 117 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") |
Milo Yip | a6eb15d | 2016-01-23 14:37:15 +0800 | [diff] [blame] | 118 | endif() |
Eli Fidler | 56bb999 | 2016-05-31 10:46:52 -0400 | [diff] [blame] | 119 | if (RAPIDJSON_BUILD_ASAN) |
| 120 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address") |
| 121 | endif() |
| 122 | if (RAPIDJSON_BUILD_UBSAN) |
| 123 | if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") |
| 124 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined-trap -fsanitize-undefined-trap-on-error") |
| 125 | else() |
| 126 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined") |
| 127 | endif() |
| 128 | endif() |
Rolf Eike Beer | 4e1c736 | 2017-11-24 15:46:44 +0100 | [diff] [blame] | 129 | elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") |
Andrii Senkovych | 122170b | 2015-02-19 22:41:31 +0200 | [diff] [blame] | 130 | add_definitions(-D_CRT_SECURE_NO_WARNINGS=1) |
Steve Hanson | 794248e | 2022-10-07 08:16:13 +0100 | [diff] [blame] | 131 | add_definitions(-DNOMINMAX) |
Milo Yip | c843a26 | 2016-04-04 15:01:34 +0800 | [diff] [blame] | 132 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc") |
ylavic | e336667 | 2021-03-29 17:42:30 +0200 | [diff] [blame] | 133 | # CMake >= 3.10 should handle the above CMAKE_CXX_STANDARD fine, otherwise use /std:c++XX with MSVC >= 19.10 |
| 134 | if (RAPIDJSON_BUILD_CXX11 AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.10") |
| 135 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++11") |
| 136 | elseif (RAPIDJSON_BUILD_CXX17 AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.14") |
| 137 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17") |
| 138 | endif() |
| 139 | # Always compile with /WX |
| 140 | if(CMAKE_CXX_FLAGS MATCHES "/WX-") |
| 141 | string(REGEX REPLACE "/WX-" "/WX" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") |
| 142 | else() |
| 143 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX") |
| 144 | endif() |
Wu Zhao | c4db88a | 2016-10-26 17:27:54 +0800 | [diff] [blame] | 145 | elseif (CMAKE_CXX_COMPILER_ID MATCHES "XL") |
| 146 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -qarch=auto") |
Andrii Senkovych | 3ae2a29 | 2015-02-11 14:10:09 +0200 | [diff] [blame] | 147 | endif() |
Andriy Senkovych | 40c0311 | 2014-11-12 01:57:25 +0200 | [diff] [blame] | 148 | |
Andriy Senkovych | 8ae1c97 | 2014-11-04 00:36:24 +0200 | [diff] [blame] | 149 | #add extra search paths for libraries and includes |
| 150 | SET(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "The directory the headers are installed in") |
| 151 | SET(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE STRING "Directory where lib will install") |
| 152 | SET(DOC_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/doc/${PROJECT_NAME}" CACHE PATH "Path to the documentation") |
| 153 | |
| 154 | IF(UNIX OR CYGWIN) |
| 155 | SET(_CMAKE_INSTALL_DIR "${LIB_INSTALL_DIR}/cmake/${PROJECT_NAME}") |
| 156 | ELSEIF(WIN32) |
| 157 | SET(_CMAKE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/cmake") |
| 158 | ENDIF() |
luz.paz | 9152188 | 2018-02-19 06:42:52 -0500 | [diff] [blame] | 159 | SET(CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" CACHE PATH "The directory cmake files are installed in") |
Andriy Senkovych | 8ae1c97 | 2014-11-04 00:36:24 +0200 | [diff] [blame] | 160 | |
Phyks | 89ad34c | 2015-05-12 00:23:50 +0200 | [diff] [blame] | 161 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) |
Andriy Senkovych | 8ae1c97 | 2014-11-04 00:36:24 +0200 | [diff] [blame] | 162 | |
| 163 | if(RAPIDJSON_BUILD_DOC) |
| 164 | add_subdirectory(doc) |
| 165 | endif() |
| 166 | |
Andriy Senkovych | 40c0311 | 2014-11-12 01:57:25 +0200 | [diff] [blame] | 167 | add_custom_target(travis_doc) |
| 168 | add_custom_command(TARGET travis_doc |
| 169 | COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/travis-doxygen.sh) |
| 170 | |
Andriy Senkovych | 8ae1c97 | 2014-11-04 00:36:24 +0200 | [diff] [blame] | 171 | if(RAPIDJSON_BUILD_EXAMPLES) |
| 172 | add_subdirectory(example) |
| 173 | endif() |
| 174 | |
| 175 | if(RAPIDJSON_BUILD_TESTS) |
unknown | 63ad11c | 2015-02-17 10:42:43 +0100 | [diff] [blame] | 176 | if(MSVC11) |
unknown | a3398a8 | 2015-02-17 13:58:31 +0100 | [diff] [blame] | 177 | # required for VS2012 due to missing support for variadic templates |
| 178 | add_definitions(-D_VARIADIC_MAX=10) |
| 179 | endif(MSVC11) |
Andriy Senkovych | 8ae1c97 | 2014-11-04 00:36:24 +0200 | [diff] [blame] | 180 | add_subdirectory(test) |
| 181 | include(CTest) |
| 182 | endif() |
| 183 | |
| 184 | # pkg-config |
| 185 | IF (UNIX OR CYGWIN) |
| 186 | CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in |
| 187 | ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc |
| 188 | @ONLY) |
| 189 | INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc |
| 190 | DESTINATION "${LIB_INSTALL_DIR}/pkgconfig" |
| 191 | COMPONENT pkgconfig) |
| 192 | ENDIF() |
| 193 | |
| 194 | install(FILES readme.md |
| 195 | DESTINATION "${DOC_INSTALL_DIR}" |
| 196 | COMPONENT doc) |
| 197 | |
| 198 | install(DIRECTORY include/rapidjson |
| 199 | DESTINATION "${INCLUDE_INSTALL_DIR}" |
| 200 | COMPONENT dev) |
| 201 | |
| 202 | install(DIRECTORY example/ |
| 203 | DESTINATION "${DOC_INSTALL_DIR}/examples" |
thebusytypist | 58cd253 | 2015-03-24 13:50:02 +0800 | [diff] [blame] | 204 | COMPONENT examples |
| 205 | # Following patterns are for excluding the intermediate/object files |
| 206 | # from an install of in-source CMake build. |
| 207 | PATTERN "CMakeFiles" EXCLUDE |
| 208 | PATTERN "Makefile" EXCLUDE |
| 209 | PATTERN "cmake_install.cmake" EXCLUDE) |
Andriy Senkovych | 8ae1c97 | 2014-11-04 00:36:24 +0200 | [diff] [blame] | 210 | |
| 211 | # Provide config and version files to be used by other applications |
| 212 | # =============================== |
| 213 | |
Clemens Arth | b91c515 | 2017-03-14 10:27:36 +0100 | [diff] [blame] | 214 | ################################################################################ |
| 215 | # Export package for use from the build tree |
| 216 | EXPORT( PACKAGE ${PROJECT_NAME} ) |
Andriy Senkovych | 8ae1c97 | 2014-11-04 00:36:24 +0200 | [diff] [blame] | 217 | |
Clemens Arth | b91c515 | 2017-03-14 10:27:36 +0100 | [diff] [blame] | 218 | # Create the RapidJSONConfig.cmake file for other cmake projects. |
| 219 | # ... for the build tree |
| 220 | SET( CONFIG_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) |
| 221 | SET( CONFIG_DIR ${CMAKE_CURRENT_BINARY_DIR}) |
Captain Crutches | 4952662 | 2017-10-08 23:43:18 -0400 | [diff] [blame] | 222 | SET( ${PROJECT_NAME}_INCLUDE_DIR "\${${PROJECT_NAME}_SOURCE_DIR}/include" ) |
Captain Crutches | 84ca485 | 2017-10-02 20:39:40 -0400 | [diff] [blame] | 223 | |
Clemens Arth | b91c515 | 2017-03-14 10:27:36 +0100 | [diff] [blame] | 224 | CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}Config.cmake.in |
| 225 | ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake @ONLY ) |
| 226 | CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}ConfigVersion.cmake.in |
| 227 | ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake @ONLY) |
| 228 | |
| 229 | # ... for the install tree |
Ruslan Bilovol | 8d272e5 | 2019-01-24 18:11:39 +0200 | [diff] [blame] | 230 | SET( CMAKECONFIG_INSTALL_DIR ${LIB_INSTALL_DIR}/cmake/${PROJECT_NAME} ) |
Clemens Arth | b91c515 | 2017-03-14 10:27:36 +0100 | [diff] [blame] | 231 | FILE( RELATIVE_PATH REL_INCLUDE_DIR |
Ruslan Bilovol | 8d272e5 | 2019-01-24 18:11:39 +0200 | [diff] [blame] | 232 | "${CMAKECONFIG_INSTALL_DIR}" |
Clemens Arth | b91c515 | 2017-03-14 10:27:36 +0100 | [diff] [blame] | 233 | "${CMAKE_INSTALL_PREFIX}/include" ) |
| 234 | |
| 235 | SET( ${PROJECT_NAME}_INCLUDE_DIR "\${${PROJECT_NAME}_CMAKE_DIR}/${REL_INCLUDE_DIR}" ) |
| 236 | SET( CONFIG_SOURCE_DIR ) |
| 237 | SET( CONFIG_DIR ) |
| 238 | CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}Config.cmake.in |
| 239 | ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}Config.cmake @ONLY ) |
| 240 | |
| 241 | INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}Config.cmake" |
| 242 | DESTINATION ${CMAKECONFIG_INSTALL_DIR} ) |
| 243 | |
| 244 | # Install files |
Ivan Le Lann | e6736d1 | 2021-10-02 15:26:17 +0200 | [diff] [blame] | 245 | IF(CMAKE_INSTALL_DIR) |
| 246 | INSTALL(FILES |
| 247 | ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake |
| 248 | ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake |
| 249 | DESTINATION "${CMAKE_INSTALL_DIR}" |
| 250 | COMPONENT dev) |
| 251 | ENDIF() |