|
5 | 5 | cmake_minimum_required(VERSION 3.1) |
6 | 6 | project(Crc32c VERSION 1.1.0 LANGUAGES C CXX) |
7 | 7 |
|
8 | | -# This project can use C11, but will gracefully decay down to C89. |
9 | | -set(CMAKE_C_STANDARD 11) |
10 | | -set(CMAKE_C_STANDARD_REQUIRED OFF) |
11 | | -set(CMAKE_C_EXTENSIONS OFF) |
12 | | - |
13 | | -# This project requires C++11. |
14 | | -set(CMAKE_CXX_STANDARD 11) |
15 | | -set(CMAKE_CXX_STANDARD_REQUIRED ON) |
16 | | -set(CMAKE_CXX_EXTENSIONS OFF) |
| 8 | +# C standard can be overridden when this is used as a sub-project. |
| 9 | +if(NOT CMAKE_C_STANDARD) |
| 10 | + # This project can use C11, but will gracefully decay down to C89. |
| 11 | + set(CMAKE_C_STANDARD 11) |
| 12 | + set(CMAKE_C_STANDARD_REQUIRED OFF) |
| 13 | + set(CMAKE_C_EXTENSIONS OFF) |
| 14 | +endif(NOT CMAKE_C_STANDARD) |
| 15 | + |
| 16 | +# C++ standard can be overridden when this is used as a sub-project. |
| 17 | +if(NOT CMAKE_CXX_STANDARD) |
| 18 | + # This project requires C++11. |
| 19 | + set(CMAKE_CXX_STANDARD 11) |
| 20 | + set(CMAKE_CXX_STANDARD_REQUIRED ON) |
| 21 | + set(CMAKE_CXX_EXTENSIONS OFF) |
| 22 | +endif(NOT CMAKE_CXX_STANDARD) |
17 | 23 |
|
18 | 24 | # https://github.com/izenecloud/cmake/blob/master/SetCompilerWarningAll.cmake |
19 | 25 | if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") |
@@ -269,7 +275,7 @@ target_sources(crc32c |
269 | 275 | PRIVATE |
270 | 276 | "${PROJECT_BINARY_DIR}/include/crc32c/crc32c_config.h" |
271 | 277 | "src/crc32c_arm64.h" |
272 | | - "src/crc32c_arm64_linux_check.h" |
| 278 | + "src/crc32c_arm64_check.h" |
273 | 279 | "src/crc32c_internal.h" |
274 | 280 | "src/crc32c_portable.cc" |
275 | 281 | "src/crc32c_prefetch.h" |
@@ -405,19 +411,24 @@ if(CRC32C_INSTALL) |
405 | 411 | ) |
406 | 412 |
|
407 | 413 | include(CMakePackageConfigHelpers) |
| 414 | + configure_package_config_file( |
| 415 | + "${PROJECT_NAME}Config.cmake.in" |
| 416 | + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" |
| 417 | + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" |
| 418 | + ) |
408 | 419 | write_basic_package_version_file( |
409 | | - "${PROJECT_BINARY_DIR}/Crc32cConfigVersion.cmake" |
410 | | - COMPATIBILITY SameMajorVersion |
| 420 | + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" |
| 421 | + COMPATIBILITY SameMajorVersion |
411 | 422 | ) |
412 | 423 | install( |
413 | 424 | EXPORT Crc32cTargets |
414 | 425 | NAMESPACE Crc32c:: |
415 | | - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Crc32c" |
| 426 | + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" |
416 | 427 | ) |
417 | 428 | install( |
418 | 429 | FILES |
419 | | - "Crc32cConfig.cmake" |
420 | | - "${PROJECT_BINARY_DIR}/Crc32cConfigVersion.cmake" |
421 | | - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Crc32c" |
| 430 | + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" |
| 431 | + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" |
| 432 | + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" |
422 | 433 | ) |
423 | 434 | endif(CRC32C_INSTALL) |
0 commit comments