mirror of
https://github.com/cpm-cmake/CPM.cmake.git
synced 2025-11-19 07:37:42 -05:00
Compare commits
8 Commits
lars/prese
...
v0.38.3-rc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
699c7a0038 | ||
|
|
daf9d766c6 | ||
|
|
439bfcf134 | ||
|
|
02ecc4608a | ||
|
|
4608688d85 | ||
|
|
cda03b434e | ||
|
|
ee556fc555 | ||
|
|
1b59cb6b16 |
@@ -1,74 +1,5 @@
|
|||||||
|
include: ["cmake/.cmake-format-additional_commands-cpm"]
|
||||||
format:
|
format:
|
||||||
tab_size: 2
|
tab_size: 2
|
||||||
line_width: 100
|
line_width: 100
|
||||||
dangle_parens: true
|
dangle_parens: true
|
||||||
|
|
||||||
parse:
|
|
||||||
additional_commands:
|
|
||||||
cpmaddpackage:
|
|
||||||
pargs:
|
|
||||||
nargs: '*'
|
|
||||||
flags: []
|
|
||||||
spelling: CPMAddPackage
|
|
||||||
kwargs: &cpmaddpackagekwargs
|
|
||||||
NAME: 1
|
|
||||||
FORCE: 1
|
|
||||||
VERSION: 1
|
|
||||||
GIT_TAG: 1
|
|
||||||
DOWNLOAD_ONLY: 1
|
|
||||||
GITHUB_REPOSITORY: 1
|
|
||||||
GITLAB_REPOSITORY: 1
|
|
||||||
GIT_REPOSITORY: 1
|
|
||||||
SVN_REPOSITORY: 1
|
|
||||||
SVN_REVISION: 1
|
|
||||||
SOURCE_DIR: 1
|
|
||||||
DOWNLOAD_COMMAND: 1
|
|
||||||
FIND_PACKAGE_ARGUMENTS: 1
|
|
||||||
NO_CACHE: 1
|
|
||||||
GIT_SHALLOW: 1
|
|
||||||
URL: 1
|
|
||||||
URL_HASH: 1
|
|
||||||
URL_MD5: 1
|
|
||||||
DOWNLOAD_NAME: 1
|
|
||||||
DOWNLOAD_NO_EXTRACT: 1
|
|
||||||
HTTP_USERNAME: 1
|
|
||||||
HTTP_PASSWORD: 1
|
|
||||||
EXCLUDE_FROM_ALL: 1
|
|
||||||
SYSTEM: 1
|
|
||||||
SOURCE_SUBDIR: 1
|
|
||||||
OPTIONS: +
|
|
||||||
cpmfindpackage:
|
|
||||||
pargs:
|
|
||||||
nargs: '*'
|
|
||||||
flags: []
|
|
||||||
spelling: CPMFindPackage
|
|
||||||
kwargs: *cpmaddpackagekwargs
|
|
||||||
cpmdeclarepackage:
|
|
||||||
pargs:
|
|
||||||
nargs: '*'
|
|
||||||
flags: []
|
|
||||||
spelling: CPMDeclarePackage
|
|
||||||
kwargs: *cpmaddpackagekwargs
|
|
||||||
packageproject:
|
|
||||||
pargs:
|
|
||||||
nargs: '*'
|
|
||||||
flags: []
|
|
||||||
spelling: packageProject
|
|
||||||
kwargs:
|
|
||||||
NAME: 1
|
|
||||||
VERSION: 1
|
|
||||||
INCLUDE_DIR: 1
|
|
||||||
INCLUDE_DESTINATION: 1
|
|
||||||
BINARY_DIR: 1
|
|
||||||
COMPATIBILITY: 1
|
|
||||||
VERSION_HEADER: 1
|
|
||||||
DEPENDENCIES: +
|
|
||||||
cpmusepackagelock:
|
|
||||||
pargs: 1
|
|
||||||
spelling: CPMUsePackageLock
|
|
||||||
cpmregisterpackage:
|
|
||||||
pargs: 1
|
|
||||||
spelling: CPMRegisterPackage
|
|
||||||
cpmgetpackageversion:
|
|
||||||
pargs: 2
|
|
||||||
spelling: CPMGetPackageVersion
|
|
||||||
|
|||||||
5
.github/workflows/publish.yaml
vendored
5
.github/workflows/publish.yaml
vendored
@@ -15,8 +15,9 @@ jobs:
|
|||||||
- name: Set CPM version by tag
|
- name: Set CPM version by tag
|
||||||
run: |
|
run: |
|
||||||
mkdir dist
|
mkdir dist
|
||||||
sed "s/1.0.0-development-version/${GITHUB_REF/refs\/tags\/v}/g" cmake/CPM.cmake > dist/CPM.cmake
|
sed -e "s/1.0.0-development-version/${GITHUB_REF/refs\/tags\//v}/g" cmake/CPM.cmake > dist/CPM.cmake
|
||||||
sed "s/1.0.0-development-version/${GITHUB_REF/refs\/tags\/v}/g" cmake/get_cpm.cmake > dist/get_cpm.cmake
|
sed -e "s/1.0.0-development-version/${GITHUB_REF/refs\/tags\//v}/g" \
|
||||||
|
-e "s/EMPTY_HASH_SUM/$(sha256sum cmake/CPM.cmake | cut -d' ' -f1)/" cmake/get_cpm.cmake > dist/get_cpm.cmake
|
||||||
|
|
||||||
- name: Upload CPM.cmake to release
|
- name: Upload CPM.cmake to release
|
||||||
uses: svenstaro/upload-release-action@v1-release
|
uses: svenstaro/upload-release-action@v1-release
|
||||||
|
|||||||
20
README.md
20
README.md
@@ -12,7 +12,7 @@ It's built as a thin wrapper around CMake's [FetchContent](https://cmake.org/cma
|
|||||||
|
|
||||||
## Manage everything
|
## Manage everything
|
||||||
|
|
||||||
Any downloadable project or resource can be added as a version-controlled dependency though CPM, it is not necessary to modify or package anything.
|
Any downloadable project or resource can be added as a version-controlled dependency through CPM, it is not necessary to modify or package anything.
|
||||||
Projects using modern CMake are automatically configured and their targets can be used immediately.
|
Projects using modern CMake are automatically configured and their targets can be used immediately.
|
||||||
For everything else, the targets can be created manually after the dependency has been downloaded (see the [snippets](#snippets) below for examples).
|
For everything else, the targets can be created manually after the dependency has been downloaded (see the [snippets](#snippets) below for examples).
|
||||||
|
|
||||||
@@ -324,8 +324,22 @@ If you know others, feel free to add them here through a PR.
|
|||||||
<p align="center"><b>JNGL - easy to use cross-platform 2D game library</b></p>
|
<p align="center"><b>JNGL - easy to use cross-platform 2D game library</b></p>
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td/>
|
<td>
|
||||||
<td/>
|
<a href="https://github.com/sillydan1/aaltitoad">
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://github.com/sillydan1/aaltitoad/raw/v1.1.0/.github/resources/logo/toad_only.svg" alt="aaltitoad" width="100pt" />
|
||||||
|
</p>
|
||||||
|
<p align="center"><b>AALTITOAD - verifier and simulator for Tick Tock Automata</b></p>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href="https://github.com/ZIMO-Elektronik">
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://avatars.githubusercontent.com/u/117935012?s=400&u=9a871a46dd13437f0adcae166e9efbe518ff0b99&v=4" alt="ZIMO-Elektronik" width="100pt" />
|
||||||
|
</p>
|
||||||
|
<p align="center"><b>ZIMO-Elektronik</b></p>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|||||||
69
cmake/.cmake-format-additional_commands-cpm
Normal file
69
cmake/.cmake-format-additional_commands-cpm
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
parse:
|
||||||
|
additional_commands:
|
||||||
|
cpmaddpackage:
|
||||||
|
pargs:
|
||||||
|
nargs: '*'
|
||||||
|
flags: []
|
||||||
|
spelling: CPMAddPackage
|
||||||
|
kwargs: &cpmaddpackagekwargs
|
||||||
|
NAME: 1
|
||||||
|
FORCE: 1
|
||||||
|
VERSION: 1
|
||||||
|
GIT_TAG: 1
|
||||||
|
DOWNLOAD_ONLY: 1
|
||||||
|
GITHUB_REPOSITORY: 1
|
||||||
|
GITLAB_REPOSITORY: 1
|
||||||
|
GIT_REPOSITORY: 1
|
||||||
|
SVN_REPOSITORY: 1
|
||||||
|
SVN_REVISION: 1
|
||||||
|
SOURCE_DIR: 1
|
||||||
|
DOWNLOAD_COMMAND: 1
|
||||||
|
FIND_PACKAGE_ARGUMENTS: 1
|
||||||
|
NO_CACHE: 1
|
||||||
|
GIT_SHALLOW: 1
|
||||||
|
URL: 1
|
||||||
|
URL_HASH: 1
|
||||||
|
URL_MD5: 1
|
||||||
|
DOWNLOAD_NAME: 1
|
||||||
|
DOWNLOAD_NO_EXTRACT: 1
|
||||||
|
HTTP_USERNAME: 1
|
||||||
|
HTTP_PASSWORD: 1
|
||||||
|
EXCLUDE_FROM_ALL: 1
|
||||||
|
SYSTEM: 1
|
||||||
|
SOURCE_SUBDIR: 1
|
||||||
|
OPTIONS: +
|
||||||
|
cpmfindpackage:
|
||||||
|
pargs:
|
||||||
|
nargs: '*'
|
||||||
|
flags: []
|
||||||
|
spelling: CPMFindPackage
|
||||||
|
kwargs: *cpmaddpackagekwargs
|
||||||
|
cpmdeclarepackage:
|
||||||
|
pargs:
|
||||||
|
nargs: '*'
|
||||||
|
flags: []
|
||||||
|
spelling: CPMDeclarePackage
|
||||||
|
kwargs: *cpmaddpackagekwargs
|
||||||
|
packageproject:
|
||||||
|
pargs:
|
||||||
|
nargs: '*'
|
||||||
|
flags: []
|
||||||
|
spelling: packageProject
|
||||||
|
kwargs:
|
||||||
|
NAME: 1
|
||||||
|
VERSION: 1
|
||||||
|
INCLUDE_DIR: 1
|
||||||
|
INCLUDE_DESTINATION: 1
|
||||||
|
BINARY_DIR: 1
|
||||||
|
COMPATIBILITY: 1
|
||||||
|
VERSION_HEADER: 1
|
||||||
|
DEPENDENCIES: +
|
||||||
|
cpmusepackagelock:
|
||||||
|
pargs: 1
|
||||||
|
spelling: CPMUsePackageLock
|
||||||
|
cpmregisterpackage:
|
||||||
|
pargs: 1
|
||||||
|
spelling: CPMRegisterPackage
|
||||||
|
cpmgetpackageversion:
|
||||||
|
pargs: 2
|
||||||
|
spelling: CPMGetPackageVersion
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
# MIT License
|
# MIT License
|
||||||
# -----------
|
# -----------
|
||||||
#[[
|
#[[
|
||||||
Copyright (c) 2019-2022 Lars Melchior and contributors
|
Copyright (c) 2019-2023 Lars Melchior and contributors
|
||||||
|
|
||||||
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
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@@ -797,7 +797,7 @@ function(CPMAddPackage)
|
|||||||
"${CPM_ARGS_NAME}" "${CPM_ARGS_VERSION}" "${PACKAGE_INFO}" "${CPM_ARGS_UNPARSED_ARGUMENTS}"
|
"${CPM_ARGS_NAME}" "${CPM_ARGS_VERSION}" "${PACKAGE_INFO}" "${CPM_ARGS_UNPARSED_ARGUMENTS}"
|
||||||
)
|
)
|
||||||
cpm_fetch_package("${CPM_ARGS_NAME}" populated)
|
cpm_fetch_package("${CPM_ARGS_NAME}" populated)
|
||||||
if(CPM_CACHE_SOURCE AND download_directory)
|
if(CPM_SOURCE_CACHE AND download_directory)
|
||||||
file(LOCK ${download_directory}/../cmake.lock RELEASE)
|
file(LOCK ${download_directory}/../cmake.lock RELEASE)
|
||||||
endif()
|
endif()
|
||||||
if(${populated})
|
if(${populated})
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
# SPDX-FileCopyrightText: Copyright (c) 2019-2023 Lars Melchior and contributors
|
||||||
|
|
||||||
set(CPM_DOWNLOAD_VERSION 1.0.0-development-version)
|
set(CPM_DOWNLOAD_VERSION 1.0.0-development-version)
|
||||||
|
set(CPM_HASH_SUM "HASH_SUM_PLACEHOLDER")
|
||||||
|
|
||||||
if(CPM_SOURCE_CACHE)
|
if(CPM_SOURCE_CACHE)
|
||||||
set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
|
set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
|
||||||
@@ -11,23 +16,20 @@ endif()
|
|||||||
# Expand relative path. This is important if the provided path contains a tilde (~)
|
# Expand relative path. This is important if the provided path contains a tilde (~)
|
||||||
get_filename_component(CPM_DOWNLOAD_LOCATION ${CPM_DOWNLOAD_LOCATION} ABSOLUTE)
|
get_filename_component(CPM_DOWNLOAD_LOCATION ${CPM_DOWNLOAD_LOCATION} ABSOLUTE)
|
||||||
|
|
||||||
function(download_cpm)
|
message(STATUS "Downloading CPM.cmake to ${CPM_DOWNLOAD_LOCATION}")
|
||||||
message(STATUS "Downloading CPM.cmake to ${CPM_DOWNLOAD_LOCATION}")
|
file(
|
||||||
file(DOWNLOAD
|
DOWNLOAD
|
||||||
https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake
|
https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake
|
||||||
${CPM_DOWNLOAD_LOCATION}
|
${CPM_DOWNLOAD_LOCATION}
|
||||||
)
|
STATUS CPM_DOWNLOAD_STATUS
|
||||||
endfunction()
|
EXPECTED_HASH SHA256=${CPM_HASH_SUM}
|
||||||
|
)
|
||||||
if(NOT (EXISTS ${CPM_DOWNLOAD_LOCATION}))
|
list(GET CPM_DOWNLOAD_STATUS 0 CPM_DOWNLOAD_STATUS_CODE)
|
||||||
download_cpm()
|
list(GET CPM_DOWNLOAD_STATUS 1 CPM_DOWNLOAD_ERROR_MESSAGE)
|
||||||
|
if(${CPM_DOWNLOAD_STATUS_CODE} EQUAL 0)
|
||||||
|
message(STATUS "CPM: Download completed successfully.")
|
||||||
else()
|
else()
|
||||||
# resume download if it previously failed
|
message(FATAL_ERROR "CPM: Error occurred during download: ${CPM_DOWNLOAD_ERROR_MESSAGE}")
|
||||||
file(READ ${CPM_DOWNLOAD_LOCATION} check)
|
|
||||||
if("${check}" STREQUAL "")
|
|
||||||
download_cpm()
|
|
||||||
endif()
|
|
||||||
unset(check)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(${CPM_DOWNLOAD_LOCATION})
|
include(${CPM_DOWNLOAD_LOCATION})
|
||||||
|
|||||||
Reference in New Issue
Block a user