diff --git a/.cmake-format b/.cmake-format new file mode 100644 index 0000000..ae7c741 --- /dev/null +++ b/.cmake-format @@ -0,0 +1,3 @@ +{ + "line_width": 120 +} diff --git a/cmake/CPM.cmake b/cmake/CPM.cmake index fd6f48a..8aabbed 100644 --- a/cmake/CPM.cmake +++ b/cmake/CPM.cmake @@ -1,12 +1,19 @@ -set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM.cmake") -set(CPM_VERSION 0.36.0) +set(CPM_DOWNLOAD_VERSION 0.36.0) -if(NOT EXISTS ${CPM_DOWNLOAD_LOCATION}) - message(STATUS "Downloading CPM.cmake") - file( - DOWNLOAD - https://github.com/TheLartians/CPM.cmake/releases/download/v${CPM_VERSION}/CPM.cmake - ${CPM_DOWNLOAD_LOCATION}) +if(CPM_SOURCE_CACHE) + set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake") +elseif(DEFINED ENV{CPM_SOURCE_CACHE}) + set(CPM_DOWNLOAD_LOCATION "$ENV{CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake") +else() + set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake") +endif() + +# Expand relative path. This is important if the provided path contains a tilde (~) +get_filename_component(CPM_DOWNLOAD_LOCATION ${CPM_DOWNLOAD_LOCATION} ABSOLUTE) +if(NOT (EXISTS ${CPM_DOWNLOAD_LOCATION})) + message(STATUS "Downloading CPM.cmake to ${CPM_DOWNLOAD_LOCATION}") + file(DOWNLOAD https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake + ${CPM_DOWNLOAD_LOCATION}) endif() include(${CPM_DOWNLOAD_LOCATION})