|
1 | 1 | cmake_minimum_required(VERSION 3.7.0) |
| 2 | + |
| 3 | +set(UUID_MAIN_PROJECT OFF) |
| 4 | +if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) |
| 5 | + set(UUID_MAIN_PROJECT ON) |
| 6 | +endif() |
| 7 | + |
2 | 8 | project(stduuid CXX) |
3 | 9 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") |
4 | 10 |
|
5 | | -option(UUID_BUILD_TESTS "Build the unit tests" ON) |
| 11 | +option(UUID_BUILD_TESTS "Build the unit tests" ${UUID_MAIN_PROJECT}) |
6 | 12 | option(UUID_SYSTEM_GENERATOR "Enable operating system uuid generator" OFF) |
7 | 13 | option(UUID_TIME_GENERATOR "Enable experimental time-based uuid generator" OFF) |
8 | 14 | option(UUID_USING_CXX20_SPAN "Using span from std instead of gsl" OFF) |
| 15 | +option(UUID_ENABLE_INSTALL "Create an install target" ${UUID_MAIN_PROJECT}) |
9 | 16 |
|
10 | 17 | # Library target |
11 | 18 | add_library(${PROJECT_NAME} INTERFACE) |
@@ -40,31 +47,35 @@ if (NOT UUID_USING_CXX20_SPAN) |
40 | 47 | target_include_directories(${PROJECT_NAME} INTERFACE |
41 | 48 | $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/gsl> |
42 | 49 | $<INSTALL_INTERFACE:include/gsl>) |
43 | | - install(DIRECTORY gsl DESTINATION include) |
| 50 | + if(UUID_ENABLE_INSTALL) |
| 51 | + install(DIRECTORY gsl DESTINATION include) |
| 52 | + endif() |
44 | 53 | endif () |
45 | 54 |
|
46 | | -# Install step and imported target |
47 | | -install(FILES include/uuid.h DESTINATION include) |
48 | | -install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}-targets) |
49 | | -install(EXPORT ${PROJECT_NAME}-targets |
50 | | - DESTINATION lib/cmake/${PROJECT_NAME}) |
| 55 | +if(UUID_ENABLE_INSTALL) |
| 56 | + # Install step and imported target |
| 57 | + install(FILES include/uuid.h DESTINATION include) |
| 58 | + install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}-targets) |
| 59 | + install(EXPORT ${PROJECT_NAME}-targets |
| 60 | + DESTINATION lib/cmake/${PROJECT_NAME}) |
51 | 61 |
|
52 | | -# Config files for find_package() |
53 | | -include(CMakePackageConfigHelpers) |
54 | | -configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Config.cmake.in |
55 | | - "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" |
56 | | - INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}) |
57 | | -write_basic_package_version_file( |
58 | | - "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-version.cmake" |
59 | | - VERSION "1.0" |
60 | | - COMPATIBILITY AnyNewerVersion) |
61 | | -install(FILES |
62 | | - "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" |
63 | | - "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-version.cmake" |
64 | | - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindLibuuid.cmake" |
65 | | - DESTINATION lib/cmake/${PROJECT_NAME}) |
66 | | -export(EXPORT ${PROJECT_NAME}-targets |
67 | | - FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}-targets.cmake") |
| 62 | + # Config files for find_package() |
| 63 | + include(CMakePackageConfigHelpers) |
| 64 | + configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Config.cmake.in |
| 65 | + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" |
| 66 | + INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}) |
| 67 | + write_basic_package_version_file( |
| 68 | + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-version.cmake" |
| 69 | + VERSION "1.0" |
| 70 | + COMPATIBILITY AnyNewerVersion) |
| 71 | + install(FILES |
| 72 | + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" |
| 73 | + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-version.cmake" |
| 74 | + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindLibuuid.cmake" |
| 75 | + DESTINATION lib/cmake/${PROJECT_NAME}) |
| 76 | + export(EXPORT ${PROJECT_NAME}-targets |
| 77 | + FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}-targets.cmake") |
| 78 | +endif() |
68 | 79 |
|
69 | 80 | # Tests |
70 | 81 | if (UUID_BUILD_TESTS) |
|
0 commit comments