Skip to content

Commit 3dca9d8

Browse files
Merge pull request #64 from OlivierLDff/optional-install
Optional install
2 parents d1f0f7f + 44160cc commit 3dca9d8

File tree

1 file changed

+34
-23
lines changed

1 file changed

+34
-23
lines changed

CMakeLists.txt

Lines changed: 34 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
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+
28
project(stduuid CXX)
39
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
410

5-
option(UUID_BUILD_TESTS "Build the unit tests" ON)
11+
option(UUID_BUILD_TESTS "Build the unit tests" ${UUID_MAIN_PROJECT})
612
option(UUID_SYSTEM_GENERATOR "Enable operating system uuid generator" OFF)
713
option(UUID_TIME_GENERATOR "Enable experimental time-based uuid generator" OFF)
814
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})
916

1017
# Library target
1118
add_library(${PROJECT_NAME} INTERFACE)
@@ -40,31 +47,35 @@ if (NOT UUID_USING_CXX20_SPAN)
4047
target_include_directories(${PROJECT_NAME} INTERFACE
4148
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/gsl>
4249
$<INSTALL_INTERFACE:include/gsl>)
43-
install(DIRECTORY gsl DESTINATION include)
50+
if(UUID_ENABLE_INSTALL)
51+
install(DIRECTORY gsl DESTINATION include)
52+
endif()
4453
endif ()
4554

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})
5161

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()
6879

6980
# Tests
7081
if (UUID_BUILD_TESTS)

0 commit comments

Comments
 (0)