diff --git a/src/Index.cmake b/src/Index.cmake index 2fb6384137cb2a88cb5ab4fdeeb929234e334f71..caa2cfba697669e67b34a5d385b25aa3780f7853 100644 --- a/src/Index.cmake +++ b/src/Index.cmake @@ -9,19 +9,26 @@ include (${CMAKE_CURRENT_LIST_DIR}/InitProject.cmake) set(CPM_DOWNLOAD_VERSION 0.40.5) file (GLOB CPM_MODULE_LOCATIONS ${CMAKE_BINARY_DIR}/cmake/CPM*.cmake) -# get the version from the last element in the list -list (GET CPM_MODULE_LOCATIONS -1 CPM_MODULE_LOCATION) -string (REGEX REPLACE ".*CPM_([0-9]+\\.[0-9]+\\.[0-9]+)\\.cmake" "\\1" CPM_MODULE_VERSION ${CPM_MODULE_LOCATION}) +set(CPM_NEEDS_DOWNLOAD FALSE) -if (NOT CPM_MODULE_LOCATIONS OR CPM_MODULE_VERSION VERSION_LESS CPM_DOWNLOAD_VERSION) +if (NOT CPM_MODULE_LOCATIONS) + set (CPM_NEEDS_DOWNLOAD TRUE) +else () + list (GET CPM_MODULE_LOCATIONS -1 CPM_MODULE_LOCATION) + string (REGEX REPLACE ".*CPM_([0-9]+\\.[0-9]+\\.[0-9]+)\\.cmake" "\\1" CPM_MODULE_VERSION ${CPM_MODULE_LOCATION}) + + if (CPM_MODULE_VERSION VERSION_LESS CPM_DOWNLOAD_VERSION) + set (CPM_NEEDS_DOWNLOAD TRUE) + endif () +endif () + +if (CPM_NEEDS_DOWNLOAD) set (CPM_MODULE_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake") message (STATUS "Downloading CPM.cmake") file (DOWNLOAD https://github.com/TheLartians/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake ${CPM_MODULE_LOCATION} ) -else () - list (GET CPM_MODULE_LOCATIONS -1 CPM_MODULE_LOCATION) endif () include (${CPM_MODULE_LOCATION})