|
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