diff --git a/cmake/cpm/CPM.cmake b/cmake/cpm/CPM.cmake index e7bb536a..b7075fba 100644 --- a/cmake/cpm/CPM.cmake +++ b/cmake/cpm/CPM.cmake @@ -45,7 +45,7 @@ endif() if(DEFINED EXTRACTED_CPM_VERSION) set(CURRENT_CPM_VERSION "${EXTRACTED_CPM_VERSION}${CPM_DEVELOPMENT}") else() - set(CURRENT_CPM_VERSION 0.43.1) + set(CURRENT_CPM_VERSION 0.43.2) endif() get_filename_component(CPM_CURRENT_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}" REALPATH) @@ -785,13 +785,20 @@ function(CPMAddPackage) "CPM_${CPM_ARGS_NAME}_SOURCE='${PACKAGE_SOURCE}'" ) endif() + # Preserve semicolons in option values across the recursive cpmaddpackage() call. + set(_forwarded_options) + foreach(opt IN LISTS CPM_ARGS_OPTIONS) + string(REPLACE ";" "\\\\;" opt "${opt}") + list(APPEND _forwarded_options "${opt}") + endforeach() + CPMAddPackage( NAME "${CPM_ARGS_NAME}" SOURCE_DIR "${PACKAGE_SOURCE}" EXCLUDE_FROM_ALL "${CPM_ARGS_EXCLUDE_FROM_ALL}" SYSTEM "${CPM_ARGS_SYSTEM}" PATCHES "${CPM_ARGS_PATCHES}" - OPTIONS "${CPM_ARGS_OPTIONS}" + OPTIONS "${_forwarded_options}" SOURCE_SUBDIR "${CPM_ARGS_SOURCE_SUBDIR}" DOWNLOAD_ONLY "${DOWNLOAD_ONLY}" FORCE True