Skip to content

Commit 5e0cdcc

Browse files
committed
Export cmake config set with namespace
1 parent 400e6dd commit 5e0cdcc

File tree

2 files changed

+19
-17
lines changed

2 files changed

+19
-17
lines changed

CMakeLists.txt

+18-17
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
cmake_minimum_required(VERSION 3.1)
2-
project(docopt.cpp VERSION 0.6.2)
1+
cmake_minimum_required(VERSION 3.21...3.27)
2+
project(docopt.cpp VERSION 0.6.3)
33

44
include(GNUInstallDirs)
55

@@ -16,31 +16,32 @@ option(USE_BOOST_REGEX "Replace std::regex with Boost.Regex" OFF)
1616
# C++ standard
1717
set(CMAKE_CXX_STANDARD_REQUIRED ON)
1818
set(CMAKE_CXX_EXTENSIONS OFF)
19-
if(NOT CMAKE_CXX_STANDARD OR CMAKE_CXX_STANDARD LESS 11)
20-
set(CMAKE_CXX_STANDARD 11)
19+
if(NOT CMAKE_CXX_STANDARD OR CMAKE_CXX_STANDARD LESS 17)
20+
set(CMAKE_CXX_STANDARD 17)
2121
endif()
2222

2323
#============================================================================
2424
# Sources & headers
2525
#============================================================================
2626
set(docopt_SOURCES docopt.cpp)
2727
set(docopt_HEADERS
28-
docopt.h
29-
docopt_private.h
30-
docopt_util.h
31-
docopt_value.h
32-
)
28+
docopt.h
29+
docopt_private.h
30+
docopt_util.h
31+
docopt_value.h
32+
)
3333

3434
#============================================================================
3535
# Compile targets
3636
#============================================================================
3737
add_library(docopt ${docopt_SOURCES} ${docopt_HEADERS})
38+
add_library(docopt::docopt ALIAS docopt)
3839
set_target_properties(docopt PROPERTIES
3940
VERSION ${PROJECT_VERSION}
4041
SOVERSION ${PROJECT_VERSION_MAJOR}
4142
)
4243

43-
target_include_directories(docopt PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}> $<INSTALL_INTERFACE:include/docopt>)
44+
target_include_directories(docopt PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include/docopt> $<INSTALL_INTERFACE:include/docopt>)
4445

4546
if(MSVC AND BUILD_SHARED_LIBS)
4647
# DOCOPT_DLL: Must be specified when building *and* when using the DLL.
@@ -56,9 +57,9 @@ if(USE_BOOST_REGEX)
5657
# This is needed on Linux, where linking a static library into docopt.so
5758
# fails because boost static libs are not compiled with -fPIC
5859
set(Boost_USE_STATIC_LIBS OFF)
59-
find_package(Boost 1.53 REQUIRED COMPONENTS regex)
60-
include_directories(${Boost_INCLUDE_DIRS})
61-
target_link_libraries(docopt ${Boost_LIBRARIES})
60+
find_package(Boost 1.71 REQUIRED COMPONENTS regex)
61+
include_directories(${Boost_INCLUDE_DIRS})
62+
target_link_libraries(docopt ${Boost_LIBRARIES})
6263
endif()
6364

6465
#============================================================================
@@ -78,9 +79,9 @@ if(WITH_TESTS)
7879
add_executable(run_testcase run_testcase.cpp)
7980
target_link_libraries(run_testcase docopt)
8081
configure_file(
81-
"${PROJECT_SOURCE_DIR}/run_tests.py"
82-
"${CMAKE_CURRENT_BINARY_DIR}/run_tests"
83-
ESCAPE_QUOTES
82+
"${PROJECT_SOURCE_DIR}/run_tests.py"
83+
"${CMAKE_CURRENT_BINARY_DIR}/run_tests"
84+
ESCAPE_QUOTES
8485
)
8586
add_test("Testcases docopt" ${TESTPROG})
8687
endif()
@@ -103,7 +104,7 @@ install(FILES ${docopt_HEADERS} DESTINATION include/docopt)
103104
include(CMakePackageConfigHelpers)
104105
write_basic_package_version_file("${PROJECT_BINARY_DIR}/docopt-config-version.cmake" COMPATIBILITY SameMajorVersion)
105106
install(FILES docopt-config.cmake ${PROJECT_BINARY_DIR}/docopt-config-version.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/docopt")
106-
install(EXPORT ${export_name} DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/docopt")
107+
install(EXPORT ${export_name} DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/docopt" NAMESPACE docopt::docopt)
107108

108109
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/docopt.pc.in ${CMAKE_CURRENT_BINARY_DIR}/docopt.pc @ONLY)
109110
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/docopt.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)

include/docopt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
..

0 commit comments

Comments
 (0)