@@ -4,12 +4,12 @@ cmake_minimum_required(VERSION 3.4)
44
55# Make sure users don't get warnings on a tested (3.4 to 3.16) version
66# of CMake. For most of the policies, the new version is better (hence the change).
7- # We don't use the 3.4...3.16 syntax because of a bug in an older MSVC's
7+ # We don't use the 3.4...3.17 syntax because of a bug in an older MSVC's
88# built-in and modified CMake 3.11
9- if (${CMAKE_VERSION} VERSION_LESS 3.16 )
9+ if (${CMAKE_VERSION} VERSION_LESS 3.17 )
1010 cmake_policy (VERSION ${CMAKE_MAJOR_VERSION} .${CMAKE_MINOR_VERSION} )
1111else ()
12- cmake_policy (VERSION 3.16 )
12+ cmake_policy (VERSION 3.17 )
1313endif ()
1414
1515set (VERSION_REGEX "#define CLI11_VERSION[ \t ]+\" (.+)\" " )
@@ -46,7 +46,20 @@ list(APPEND force-libcxx "CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME")
4646list (APPEND build -docs "CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME" )
4747list (APPEND build -docs "NOT CMAKE_VERSION VERSION_LESS 3.11" )
4848list (APPEND build -docs "Doxygen_FOUND" )
49- list (APPEND build -docs "EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /docs" )
49+
50+ # Necessary to support paths with spaces, see #457
51+ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR} /docs" )
52+ set (docs_EXIST TRUE )
53+ else ()
54+ set (docs_EXIST FALSE )
55+ endif ()
56+ list (APPEND build -docs "docs_EXIST" )
57+
58+ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR} /examples" )
59+ set (examples_EXIST TRUE )
60+ else ()
61+ set (examples_EXIST FALSE )
62+ endif ()
5063
5164option (CLI11_WARNINGS_AS_ERRORS "Turn all warnings into errors (for CI)" )
5265option (CLI11_SINGLE_FILE "Generate a single header file" )
@@ -64,7 +77,7 @@ cmake_dependent_option(CLI11_BUILD_TESTS
6477
6578cmake_dependent_option(CLI11_BUILD_EXAMPLES
6679 "Build CLI11 examples" ON
67- "CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME;EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /examples " OFF )
80+ "CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME;${examples_EXIST} " OFF )
6881
6982cmake_dependent_option(CLI11_BUILD_EXAMPLES_JSON
7083 "Build CLI11 json example" OFF
@@ -181,8 +194,8 @@ endif()
181194
182195# This folder should be installed
183196if (CLI11_INSTALL)
184- install (DIRECTORY ${PROJECT_SOURCE_DIR} /include /
185- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
197+ install (DIRECTORY " ${PROJECT_SOURCE_DIR} /include/"
198+ DESTINATION " ${CMAKE_INSTALL_INCLUDEDIR} " )
186199
187200 # Make an export target
188201 install (TARGETS CLI11 EXPORT CLI11Targets)
@@ -198,13 +211,13 @@ if(CLI11_INSTALL)
198211
199212 # Make version available in the install
200213 install (FILES "${PROJECT_BINARY_DIR} /CLI11ConfigVersion.cmake"
201- DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/CLI11)
214+ DESTINATION " ${CMAKE_INSTALL_LIBDIR} /cmake/CLI11" )
202215
203216 # Install the export target as a file
204217 install (EXPORT CLI11Targets
205218 FILE CLI11Config.cmake
206219 NAMESPACE CLI11::
207- DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/CLI11)
220+ DESTINATION " ${CMAKE_INSTALL_LIBDIR} /cmake/CLI11" )
208221
209222 # Use find_package on the installed package
210223 export (TARGETS CLI11
@@ -239,7 +252,7 @@ if(CLI11_SINGLE_FILE)
239252 add_custom_target (CLI11-generate-single-file ALL
240253 DEPENDS "${CMAKE_CURRENT_BINARY_DIR} /include/CLI11.hpp" )
241254 set_property (TARGET CLI11-generate-single-file PROPERTY FOLDER "Scripts" )
242- install (FILES ${CMAKE_CURRENT_BINARY_DIR} /include /CLI11.hpp
255+ install (FILES " ${CMAKE_CURRENT_BINARY_DIR} /include/CLI11.hpp"
243256 DESTINATION include )
244257 add_library (CLI11_SINGLE INTERFACE )
245258 target_link_libraries (CLI11_SINGLE INTERFACE CLI11)
0 commit comments