diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index d007f93..f925e9e 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -18,21 +18,27 @@ jobs: chmod +x appimagetool-904-x86_64.AppImage mv appimagetool-904-x86_64.AppImage /usr/bin/appimagetool - name: libeismultiplexer version - id: version + id: libeisversion run: | cd ${{ gitea.workspace }}/libeismultiplexer git fetch -a; echo "tag=$(git describe --tags `git rev-list --tags --max-count=1`)" >> $GITHUB_OUTPUT + - name: Version + id: version + run: | + cd ${{ gitea.workspace }} + git fetch -a; + echo "tag=$(git describe --tags `git rev-list --tags --max-count=1`)" >> $GITHUB_OUTPUT - name: Build and install libeismultiplexer run: | mkdir ${{ gitea.workspace }}/libeismultiplexer/build; cd ${{ gitea.workspace }}/libeismultiplexer/build - cmake -DCMAKE_BUILD_TYPE=Release -DGIT_TAG=${{ steps.version.outputs.tag }} .. + cmake -DCMAKE_BUILD_TYPE=Release -DGIT_TAG=${{ steps.libeisversion.outputs.tag }} .. make make install - name: Build run: | mkdir ${{ gitea.workspace }}/build; cd ${{ gitea.workspace }}/build - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./install/usr .. + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./install/usr -DGIT_TAG=${{ steps.version.outputs.tag }} .. make make install - name: Create Appimage diff --git a/cmake/GitVersion.cmake b/cmake/GitVersion.cmake index 7913c7e..b147005 100644 --- a/cmake/GitVersion.cmake +++ b/cmake/GitVersion.cmake @@ -1,25 +1,19 @@ function(get_version_from_git) find_package(Git REQUIRED) - execute_process( - COMMAND ${GIT_EXECUTABLE} describe --tags --always - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE GIT_TAG - OUTPUT_STRIP_TRAILING_WHITESPACE - RESULT_VARIABLE GIT_RESULT - ) - - if(NOT GIT_RESULT EQUAL 0) - message(FATAL_ERROR "Failed to get git tag") + if(NOT GIT_TAG) + execute_process( + COMMAND ${GIT_EXECUTABLE} describe --tags --always + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_TAG + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE GIT_RESULT + ) + if(NOT GIT_RESULT EQUAL 0) + message(FATAL_ERROR "Failed to get git tag") + endif() endif() - execute_process( - COMMAND ${GIT_EXECUTABLE} rev-parse --short=7 HEAD - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE GIT_COMMIT_SHORT_HASH - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - string(REGEX REPLACE "^v" "" CLEAN_TAG "${GIT_TAG}") if(CLEAN_TAG MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(-.*)?$") @@ -33,6 +27,12 @@ function(get_version_from_git) set(PROJECT_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}") set(PROJECT_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}" PARENT_SCOPE) else() - message(FATAL_ERROR "Tag '${CLEAN_TAG}' does not match semver format") + message(WARNING "Tag '${CLEAN_TAG}' does not match semver format") + set(CMAKE_PROJECT_VERSION_MAJOR 0) + set(CMAKE_PROJECT_VERSION_MAJOR 0 PARENT_SCOPE) + set(CMAKE_PROJECT_VERSION_MINOR 0) + set(CMAKE_PROJECT_VERSION_MINOR 0 PARENT_SCOPE) + set(CMAKE_PROJECT_VERSION_PATCH 0) + set(CMAKE_PROJECT_VERSION_PATCH 0 PARENT_SCOPE) endif() endfunction()