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
44include (GNUInstallDirs)
55
@@ -16,31 +16,32 @@ option(USE_BOOST_REGEX "Replace std::regex with Boost.Regex" OFF)
1616# C++ standard
1717set (CMAKE_CXX_STANDARD_REQUIRED ON )
1818set (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 )
2121endif ()
2222
2323#============================================================================
2424# Sources & headers
2525#============================================================================
2626set (docopt_SOURCES docopt.cpp)
2727set (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#============================================================================
3737add_library (docopt ${docopt_SOURCES} ${docopt_HEADERS} )
38+ add_library (docopt::docopt ALIAS docopt)
3839set_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
4546if (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} )
6263endif ()
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} )
8687endif ()
@@ -103,7 +104,7 @@ install(FILES ${docopt_HEADERS} DESTINATION include/docopt)
103104include (CMakePackageConfigHelpers)
104105write_basic_package_version_file("${PROJECT_BINARY_DIR} /docopt-config-version.cmake" COMPATIBILITY SameMajorVersion)
105106install (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
108109configure_file (${CMAKE_CURRENT_SOURCE_DIR} /docopt.pc.in ${CMAKE_CURRENT_BINARY_DIR} /docopt.pc @ONLY)
109110install (FILES ${CMAKE_CURRENT_BINARY_DIR} /docopt.pc DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig)
0 commit comments