mirror of
https://github.com/cpm-cmake/CPM.cmake.git
synced 2025-11-23 12:48:05 -05:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f00f5517a6 | ||
|
|
a97b32824e |
@@ -3,7 +3,8 @@
|
|||||||
# See https://github.com/TheLartians/CPM for usage and update instructions.
|
# See https://github.com/TheLartians/CPM for usage and update instructions.
|
||||||
#
|
#
|
||||||
# MIT License
|
# MIT License
|
||||||
#[[ -----------
|
# -----------
|
||||||
|
#[[
|
||||||
Copyright (c) 2019 Lars Melchior
|
Copyright (c) 2019 Lars Melchior
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
@@ -27,13 +28,21 @@
|
|||||||
|
|
||||||
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
|
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
|
||||||
|
|
||||||
|
set(CURRENT_CPM_VERSION 0.8)
|
||||||
|
|
||||||
if(CPM_DIRECTORY)
|
if(CPM_DIRECTORY)
|
||||||
if(NOT ${CPM_DIRECTORY} MATCHES ${CMAKE_CURRENT_LIST_DIR})
|
if(NOT ${CPM_DIRECTORY} MATCHES ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
if (${CPM_VERSION} VERSION_LESS ${CURRENT_CPM_VERSION})
|
||||||
|
message(AUTHOR_WARNING "${CPM_INDENT}\
|
||||||
|
A dependency is using a newer CPM version (${CPM_VERSION}) than the current project (${CURRENT_CPM_VERSION}). \
|
||||||
|
It is recommended to upgrade CPM to the most recent version. See https://github.com/TheLartians/CPM for more information.\
|
||||||
|
")
|
||||||
|
endif()
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CPM_VERSION 0.7 CACHE INTERNAL "")
|
set(CPM_VERSION ${CURRENT_CPM_VERSION} CACHE INTERNAL "")
|
||||||
|
|
||||||
set(CPM_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} CACHE INTERNAL "")
|
set(CPM_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} CACHE INTERNAL "")
|
||||||
set(CPM_PACKAGES "" CACHE INTERNAL "")
|
set(CPM_PACKAGES "" CACHE INTERNAL "")
|
||||||
@@ -49,6 +58,7 @@ if(NOT CPM_INDENT)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
function(CPMRegisterPackage PACKAGE VERSION)
|
function(CPMRegisterPackage PACKAGE VERSION)
|
||||||
|
list(APPEND CPM_PACKAGES ${PACKAGE})
|
||||||
set(CPM_PACKAGES ${CPM_PACKAGES} CACHE INTERNAL "")
|
set(CPM_PACKAGES ${CPM_PACKAGES} CACHE INTERNAL "")
|
||||||
set("CPM_PACKAGE_${PACKAGE}_VERSION" ${VERSION} CACHE INTERNAL "")
|
set("CPM_PACKAGE_${PACKAGE}_VERSION" ${VERSION} CACHE INTERNAL "")
|
||||||
endfunction()
|
endfunction()
|
||||||
@@ -71,6 +81,7 @@ function(CPMAddPackage)
|
|||||||
NAME
|
NAME
|
||||||
VERSION
|
VERSION
|
||||||
GIT_TAG
|
GIT_TAG
|
||||||
|
DOWNLOAD_ONLY
|
||||||
)
|
)
|
||||||
|
|
||||||
set(multiValueArgs
|
set(multiValueArgs
|
||||||
@@ -104,6 +115,12 @@ function(CPMAddPackage)
|
|||||||
set(CPM_ARGS_GIT_TAG v${CPM_ARGS_VERSION})
|
set(CPM_ARGS_GIT_TAG v${CPM_ARGS_VERSION})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(CPM_ARGS_DOWNLOAD_ONLY)
|
||||||
|
set(DOWNLOAD_ONLY ${CPM_ARGS_DOWNLOAD_ONLY})
|
||||||
|
else()
|
||||||
|
set(DOWNLOAD_ONLY NO)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (${CPM_ARGS_NAME} IN_LIST CPM_PACKAGES)
|
if (${CPM_ARGS_NAME} IN_LIST CPM_PACKAGES)
|
||||||
CPM_GET_PACKAGE_VERSION(${CPM_ARGS_NAME})
|
CPM_GET_PACKAGE_VERSION(${CPM_ARGS_NAME})
|
||||||
if(${CPM_PACKAGE_VERSION} VERSION_LESS ${CPM_ARGS_VERSION})
|
if(${CPM_PACKAGE_VERSION} VERSION_LESS ${CPM_ARGS_VERSION})
|
||||||
@@ -117,7 +134,7 @@ function(CPMAddPackage)
|
|||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
CPM_FETCH_PACKAGE(${CPM_ARGS_NAME})
|
CPM_FETCH_PACKAGE(${CPM_ARGS_NAME} ${DOWNLOAD_ONLY})
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -131,7 +148,7 @@ function(CPMAddPackage)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
CPM_DECLARE_PACKAGE(${CPM_ARGS_NAME} ${CPM_ARGS_VERSION} ${CPM_ARGS_GIT_TAG} "${CPM_ARGS_UNPARSED_ARGUMENTS}")
|
CPM_DECLARE_PACKAGE(${CPM_ARGS_NAME} ${CPM_ARGS_VERSION} ${CPM_ARGS_GIT_TAG} "${CPM_ARGS_UNPARSED_ARGUMENTS}")
|
||||||
CPM_FETCH_PACKAGE(${CPM_ARGS_NAME})
|
CPM_FETCH_PACKAGE(${CPM_ARGS_NAME} ${DOWNLOAD_ONLY})
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function (CPM_DECLARE_PACKAGE PACKAGE VERSION GIT_TAG)
|
function (CPM_DECLARE_PACKAGE PACKAGE VERSION GIT_TAG)
|
||||||
@@ -144,9 +161,15 @@ function (CPM_DECLARE_PACKAGE PACKAGE VERSION GIT_TAG)
|
|||||||
)
|
)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function (CPM_FETCH_PACKAGE PACKAGE)
|
function (CPM_FETCH_PACKAGE PACKAGE DOWNLOAD_ONLY)
|
||||||
set(CPM_OLD_INDENT "${CPM_INDENT}")
|
set(CPM_OLD_INDENT "${CPM_INDENT}")
|
||||||
set(CPM_INDENT "${CPM_INDENT} ${PACKAGE}:")
|
set(CPM_INDENT "${CPM_INDENT} ${PACKAGE}:")
|
||||||
|
if(${DOWNLOAD_ONLY})
|
||||||
|
if(NOT "${PACKAGE}_POPULATED")
|
||||||
|
FetchContent_Populate(${PACKAGE})
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
FetchContent_MakeAvailable(${PACKAGE})
|
FetchContent_MakeAvailable(${PACKAGE})
|
||||||
|
endif()
|
||||||
set(CPM_INDENT "${CPM_OLD_INDENT}")
|
set(CPM_INDENT "${CPM_OLD_INDENT}")
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|||||||
Reference in New Issue
Block a user