Skip to content

Commit 3a06b20

Browse files
committed
fix: add quotes (#471)
* fix: add quotes * Update CMakeLists.txt * Try 2 * fix: Support paths with spaces using @ZeeD26's suggestion
1 parent 22a465a commit 3a06b20

File tree

1 file changed

+23
-10
lines changed

1 file changed

+23
-10
lines changed

CMakeLists.txt

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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})
1111
else()
12-
cmake_policy(VERSION 3.16)
12+
cmake_policy(VERSION 3.17)
1313
endif()
1414

1515
set(VERSION_REGEX "#define CLI11_VERSION[ \t]+\"(.+)\"")
@@ -46,7 +46,20 @@ list(APPEND force-libcxx "CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME")
4646
list(APPEND build-docs "CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME")
4747
list(APPEND build-docs "NOT CMAKE_VERSION VERSION_LESS 3.11")
4848
list(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

5164
option(CLI11_WARNINGS_AS_ERRORS "Turn all warnings into errors (for CI)")
5265
option(CLI11_SINGLE_FILE "Generate a single header file")
@@ -64,7 +77,7 @@ cmake_dependent_option(CLI11_BUILD_TESTS
6477

6578
cmake_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

6982
cmake_dependent_option(CLI11_BUILD_EXAMPLES_JSON
7083
"Build CLI11 json example" OFF
@@ -181,8 +194,8 @@ endif()
181194

182195
# This folder should be installed
183196
if(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

Comments
 (0)