mirror of
https://github.com/cpm-cmake/CPM.cmake.git
synced 2025-11-25 05:37:28 -05:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
939123d1b4 | ||
|
|
22078d5e0d | ||
|
|
96c268827b | ||
|
|
dad37fbe4e |
30
README.md
30
README.md
@@ -274,15 +274,10 @@ See the [wiki](https://github.com/cpm-cmake/CPM.cmake/wiki/More-Snippets) for mo
|
||||
CPMAddPackage("gh:catchorg/Catch2@2.5.0")
|
||||
```
|
||||
|
||||
### [Boost ](https://github.com/boostorg/boost)
|
||||
### [Range-v3](https://github.com/ericniebler/range-v3)
|
||||
|
||||
```CMake
|
||||
CPMAddPackage(
|
||||
NAME Boost
|
||||
VERSION 1.77.0
|
||||
GITHUB_REPOSITORY "boostorg/boost"
|
||||
GIT_TAG "boost-1.77.0"
|
||||
)
|
||||
```Cmake
|
||||
CPMAddPackage("gh:ericniebler/range-v3#0.11.0")
|
||||
```
|
||||
|
||||
### [Yaml-cpp](https://github.com/jbeder/yaml-cpp)
|
||||
@@ -292,12 +287,6 @@ CPMAddPackage(
|
||||
CPMAddPackage("gh:jbeder/yaml-cpp#yaml-cpp-0.6.3@0.6.3")
|
||||
```
|
||||
|
||||
### [Range-v3](https://github.com/ericniebler/range-v3)
|
||||
|
||||
```Cmake
|
||||
CPMAddPackage("gh:ericniebler/range-v3#0.11.0")
|
||||
```
|
||||
|
||||
### [nlohmann/json](https://github.com/nlohmann/json)
|
||||
|
||||
```cmake
|
||||
@@ -309,6 +298,19 @@ CPMAddPackage(
|
||||
)
|
||||
```
|
||||
|
||||
### [Boost ](https://github.com/boostorg/boost)
|
||||
|
||||
```CMake
|
||||
# boost is a huge project and will take a while to download
|
||||
# using `CPM_SOURCE_CACHE` is strongly recommended
|
||||
CPMAddPackage(
|
||||
NAME Boost
|
||||
VERSION 1.77.0
|
||||
GITHUB_REPOSITORY "boostorg/boost"
|
||||
GIT_TAG "boost-1.77.0"
|
||||
)
|
||||
```
|
||||
|
||||
### [cxxopts](https://github.com/jarro2783/cxxopts)
|
||||
|
||||
```cmake
|
||||
|
||||
@@ -548,6 +548,7 @@ function(CPMAddPackage)
|
||||
EXCLUDE_FROM_ALL "${CPM_ARGS_EXCLUDE_FROM_ALL}"
|
||||
OPTIONS "${CPM_ARGS_OPTIONS}"
|
||||
SOURCE_SUBDIR "${CPM_ARGS_SOURCE_SUBDIR}"
|
||||
DOWNLOAD_ONLY "${DOWNLOAD_ONLY}"
|
||||
FORCE True
|
||||
)
|
||||
cpm_export_variables(${CPM_ARGS_NAME})
|
||||
@@ -618,10 +619,11 @@ function(CPMAddPackage)
|
||||
get_filename_component(download_directory ${download_directory} ABSOLUTE)
|
||||
list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS SOURCE_DIR ${download_directory})
|
||||
if(EXISTS ${download_directory})
|
||||
# avoid FetchContent modules to improve performance
|
||||
set(${CPM_ARGS_NAME}_BINARY_DIR ${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-build)
|
||||
set(${CPM_ARGS_NAME}_ADDED YES)
|
||||
set(${CPM_ARGS_NAME}_SOURCE_DIR ${download_directory})
|
||||
cpm_store_fetch_properties(
|
||||
${CPM_ARGS_NAME} "${download_directory}"
|
||||
"${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-build"
|
||||
)
|
||||
cpm_get_fetch_properties("${CPM_ARGS_NAME}")
|
||||
|
||||
if(DEFINED CPM_ARGS_GIT_TAG)
|
||||
# warn if cache has been changed since checkout
|
||||
@@ -654,7 +656,7 @@ function(CPMAddPackage)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
cpm_create_module_file(${CPM_ARGS_NAME} "CPMAddPackage(${ARGN})")
|
||||
cpm_create_module_file(${CPM_ARGS_NAME} "CPMAddPackage(\"${ARGN}\")")
|
||||
|
||||
if(CPM_PACKAGE_LOCK_ENABLED)
|
||||
if((CPM_ARGS_VERSION AND NOT CPM_ARGS_SOURCE_DIR) OR CPM_INCLUDE_ALL_IN_PACKAGE_LOCK)
|
||||
@@ -792,18 +794,32 @@ function(cpm_get_fetch_properties PACKAGE)
|
||||
if(${CPM_DRY_RUN})
|
||||
return()
|
||||
endif()
|
||||
FetchContent_GetProperties(${PACKAGE})
|
||||
string(TOLOWER ${PACKAGE} lpackage)
|
||||
|
||||
set(${PACKAGE}_SOURCE_DIR
|
||||
"${${lpackage}_SOURCE_DIR}"
|
||||
"${CPM_PACKAGE_${PACKAGE}_SOURCE_DIR}"
|
||||
PARENT_SCOPE
|
||||
)
|
||||
set(${PACKAGE}_BINARY_DIR
|
||||
"${${lpackage}_BINARY_DIR}"
|
||||
"${CPM_PACKAGE_${PACKAGE}_BINARY_DIR}"
|
||||
PARENT_SCOPE
|
||||
)
|
||||
endfunction()
|
||||
|
||||
function(cpm_store_fetch_properties PACKAGE source_dir binary_dir)
|
||||
if(${CPM_DRY_RUN})
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(CPM_PACKAGE_${PACKAGE}_SOURCE_DIR
|
||||
"${source_dir}"
|
||||
CACHE INTERNAL ""
|
||||
)
|
||||
set(CPM_PACKAGE_${PACKAGE}_BINARY_DIR
|
||||
"${binary_dir}"
|
||||
CACHE INTERNAL ""
|
||||
)
|
||||
endfunction()
|
||||
|
||||
# adds a package as a subdirectory if viable, according to provided options
|
||||
function(
|
||||
cpm_add_subdirectory
|
||||
@@ -861,6 +877,10 @@ function(cpm_fetch_package PACKAGE populated)
|
||||
)
|
||||
endif()
|
||||
|
||||
cpm_store_fetch_properties(
|
||||
${CPM_ARGS_NAME} ${${lower_case_name}_SOURCE_DIR} ${${lower_case_name}_BINARY_DIR}
|
||||
)
|
||||
|
||||
set(${PACKAGE}_SOURCE_DIR
|
||||
${${lower_case_name}_SOURCE_DIR}
|
||||
PARENT_SCOPE
|
||||
|
||||
Reference in New Issue
Block a user