From 0e158a71491ab2cf643fa33aa2a33ce8cf6a14ed Mon Sep 17 00:00:00 2001 From: Napalys Date: Sun, 14 Jul 2024 22:15:00 +0200 Subject: [PATCH 1/3] Added automatic way to extract version from github. --- CMakeLists.txt | 6 +++- cmake-modules/VersionExtractor.cmake | 54 ++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 cmake-modules/VersionExtractor.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index a3e6e58..7970eca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,9 @@ cmake_minimum_required(VERSION 3.10) -project(injectionClicker VERSION 1.0.0 + +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules") +include(VersionExtractor) + +project(injectionClicker VERSION ${PROJECT_VERSION} DESCRIPTION "" HOMEPAGE_URL "https://github.com/Napalys/Attachable-clicker" LANGUAGES CXX C) diff --git a/cmake-modules/VersionExtractor.cmake b/cmake-modules/VersionExtractor.cmake new file mode 100644 index 0000000..a8f55d3 --- /dev/null +++ b/cmake-modules/VersionExtractor.cmake @@ -0,0 +1,54 @@ +execute_process( + COMMAND git rev-parse --is-inside-work-tree + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE IS_GIT_REPO + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET +) + +if(IS_GIT_REPO) + execute_process( + COMMAND git describe --tags --abbrev=0 + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_TAG + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + execute_process( + COMMAND git rev-parse HEAD + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_SHA + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + if(GIT_TAG) + string(REGEX MATCH "^v?([0-9]+)\\.([0-9]+)\\.([0-9]+)(-(.+))?" VERSION_MATCH ${GIT_TAG}) + if(VERSION_MATCH) + set(VERSION_MAJOR "${CMAKE_MATCH_1}") + set(VERSION_MINOR "${CMAKE_MATCH_2}") + set(VERSION_PATCH "${CMAKE_MATCH_3}") + set(VERSION_TWEAK "0") + set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") + else() + message(FATAL_ERROR "Invalid version tag format: ${GIT_TAG}") + endif() + else() + message(FATAL_ERROR "Failed to get Git tag") + endif() +else() + message(WARNING "Not inside a Git repository, defaulting version to 0.0.0") + set(VERSION_MAJOR "0") + set(VERSION_MINOR "0") + set(VERSION_PATCH "0") + set(VERSION_TWEAK "0") + set(VERSION_STRING "0.0.0") + set(GIT_SHA "unknown") +endif() + +set(PROJECT_VERSION ${VERSION_STRING}) +set(PROJECT_VERSION_MAJOR ${VERSION_MAJOR}) +set(PROJECT_VERSION_MINOR ${VERSION_MINOR}) +set(PROJECT_VERSION_PATCH ${VERSION_PATCH}) +set(PROJECT_VERSION_TWEAK ${VERSION_TWEAK}) +set(GIT_SHA ${GIT_SHA}) +message(STATUS "Project version: ${PROJECT_VERSION}") From a54e47c243e956ce550fa1e6630ec50149d5678b Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 19 Jul 2024 19:44:05 +0200 Subject: [PATCH 2/3] Fixed workflow ability to find tag. --- .github/workflows/build_win.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_win.yaml b/.github/workflows/build_win.yaml index 5a84a69..8898546 100644 --- a/.github/workflows/build_win.yaml +++ b/.github/workflows/build_win.yaml @@ -7,7 +7,10 @@ jobs: runs-on: [self-hosted, Windows, X64] steps: - - uses: actions/checkout@v3 + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 - name: Cmake and build run: | From 5f707fef562c9cad0e7327d6236f2774b3fae7d9 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 19 Jul 2024 19:51:45 +0200 Subject: [PATCH 3/3] Fixed deploy workflow not being able to get tag. --- .github/workflows/deploy_windows.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy_windows.yaml b/.github/workflows/deploy_windows.yaml index 11c576d..7c5483b 100644 --- a/.github/workflows/deploy_windows.yaml +++ b/.github/workflows/deploy_windows.yaml @@ -10,7 +10,10 @@ jobs: runs-on: [self-hosted, Windows, X64] steps: - - uses: actions/checkout@v3 + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 - name: Cmake and build run: | @@ -35,4 +38,4 @@ jobs: name: Release ${{ github.ref_name }} files: ./InjectionClicker-${{ github.run_number }}.zip env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}