From c15cdd998b20c79c47509062b1bce41377c1132d Mon Sep 17 00:00:00 2001 From: flagarde Date: Fri, 30 Aug 2024 14:37:42 +0800 Subject: [PATCH 1/4] Add git_archival mechanism --- .git_archival.txt | 3 +++ .gitattributes | 1 + 2 files changed, 4 insertions(+) create mode 100644 .git_archival.txt create mode 100644 .gitattributes diff --git a/ .git_archival.txt b/ .git_archival.txt new file mode 100644 index 00000000..4ed73f54 --- /dev/null +++ b/ .git_archival.txt @@ -0,0 +1,3 @@ +node: $Format:%H$ +node-date: $Format:%cI$ +describe-name: $Format:%(describe:tags=true,match=?[0-9.]*)$ diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..82bf71c1 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +.git_archival.txt export-subst \ No newline at end of file From ee638393b5df0dba15c042ae558a5fe0bbca3619 Mon Sep 17 00:00:00 2001 From: flagarde Date: Fri, 30 Aug 2024 15:56:54 +0800 Subject: [PATCH 2/4] fetch_content --- .git_archival.txt | 3 --- .git_archival.txt | 3 +++ .pre-commit-config.yaml | 23 +++++++++++++++++++++++ CMakeLists.txt | 16 ++++++++++++++++ cmake/CPM.cmake | 8 +++++++- 5 files changed, 49 insertions(+), 4 deletions(-) delete mode 100644 .git_archival.txt create mode 100644 .git_archival.txt create mode 100644 .pre-commit-config.yaml create mode 100644 CMakeLists.txt diff --git a/ .git_archival.txt b/ .git_archival.txt deleted file mode 100644 index 4ed73f54..00000000 --- a/ .git_archival.txt +++ /dev/null @@ -1,3 +0,0 @@ -node: $Format:%H$ -node-date: $Format:%cI$ -describe-name: $Format:%(describe:tags=true,match=?[0-9.]*)$ diff --git a/.git_archival.txt b/.git_archival.txt new file mode 100644 index 00000000..00c7cfd7 --- /dev/null +++ b/.git_archival.txt @@ -0,0 +1,3 @@ +node: $Format:%H$ +node-date: $Format:%cI$ +describe-name: $Format:%(describe:tags=true,match=?[0-9.]*)$ \ No newline at end of file diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..e5fbc602 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,23 @@ +--- +ci: + skip: [clang-tidy] + +default_install_hook_types: +- pre-commit +- pre-merge-commit +- pre-push +- prepare-commit-msg +- commit-msg +- post-commit +- post-checkout +- post-merge +- post-rewrite + +fail_fast: false + +repos: +- repo: https://github.com/Kr4is/cmake-format-precommit + rev: v0.6.14 + hooks: + - id: cmake-format + args: [--config=.cmake-format] \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..57dcb1ff --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,16 @@ +cmake_minimum_required(VERSION 3.14 FATAL_ERROR) + +if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git/") + find_package(Git REQUIRED) + execute_process(COMMAND "${GIT_EXECUTABLE}" describe --tags --match=?[0-9.]* WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" OUTPUT_VARIABLE DESCRIBE_NAME COMMAND_ERROR_IS_FATAL ANY) + set(CPM_DEVELOPMENT "-development-version") +else() + file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/.git_archival.txt" DESCRIBE_NAME REGEX "^describe-name:.*") +endif() + +string(REGEX MATCH "([0-9\\.]+)" EXTRACTED_CPM_VERSION "${DESCRIBE_NAME}") + +project(CPM.cmake VERSION "${EXTRACTED_CPM_VERSION}" DESCRIPTION "CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management." HOMEPAGE_URL "https://github.com/cpm-cmake/CPM.cmake" LANGUAGES NONE) + +include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/CPM.cmake") + diff --git a/cmake/CPM.cmake b/cmake/CPM.cmake index 6e260791..1fd59ce6 100644 --- a/cmake/CPM.cmake +++ b/cmake/CPM.cmake @@ -42,7 +42,13 @@ if(NOT COMMAND cpm_message) endfunction() endif() -set(CURRENT_CPM_VERSION 1.0.0-development-version) +if(DEFINED EXTRACTED_CPM_VERSION) + set(CURRENT_CPM_VERSION "${EXTRACTED_CPM_VERSION}${CPM_DEVELOPMENT}") +else() + set(CURRENT_CPM_VERSION 1.0.0-development-version) +endif() + +message(STATUS "${CURRENT_CPM_VERSION}") get_filename_component(CPM_CURRENT_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}" REALPATH) if(CPM_DIRECTORY) From 3c12b729084520f540751fa4970264231c3a1152 Mon Sep 17 00:00:00 2001 From: flagarde Date: Fri, 30 Aug 2024 15:58:09 +0800 Subject: [PATCH 3/4] Delete .pre-commit-config.yaml --- .pre-commit-config.yaml | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml deleted file mode 100644 index e5fbc602..00000000 --- a/.pre-commit-config.yaml +++ /dev/null @@ -1,23 +0,0 @@ ---- -ci: - skip: [clang-tidy] - -default_install_hook_types: -- pre-commit -- pre-merge-commit -- pre-push -- prepare-commit-msg -- commit-msg -- post-commit -- post-checkout -- post-merge -- post-rewrite - -fail_fast: false - -repos: -- repo: https://github.com/Kr4is/cmake-format-precommit - rev: v0.6.14 - hooks: - - id: cmake-format - args: [--config=.cmake-format] \ No newline at end of file From 9c0adfed85d763c09d54a0b749fbe873cb10193a Mon Sep 17 00:00:00 2001 From: flagarde Date: Fri, 30 Aug 2024 16:13:46 +0800 Subject: [PATCH 4/4] Update CPM.cmake --- cmake/CPM.cmake | 2 -- 1 file changed, 2 deletions(-) diff --git a/cmake/CPM.cmake b/cmake/CPM.cmake index 1fd59ce6..69fa3bd7 100644 --- a/cmake/CPM.cmake +++ b/cmake/CPM.cmake @@ -48,8 +48,6 @@ else() set(CURRENT_CPM_VERSION 1.0.0-development-version) endif() -message(STATUS "${CURRENT_CPM_VERSION}") - get_filename_component(CPM_CURRENT_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}" REALPATH) if(CPM_DIRECTORY) if(NOT CPM_DIRECTORY STREQUAL CPM_CURRENT_DIRECTORY)