Written by
Niels Moseley
on
on
Auto-downloading CPM
The CPM package manager is a light-weight way of downloading compile dependencies. Their documentation and Wiki have some code snippets on how to use CPM, but not all snippets work flawlessly. So here is a code snippet for auto-downloading the CPM package manager in a CMAKE script.
########################################################################
# Check for CPM
########################################################################
set(CPM_DOWNLOAD_VERSION 0.38.2)
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()
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()
message("${CPMstatus}")
include(${CPM_DOWNLOAD_LOCATION})