From 20540cc61b81d3dd589e90124768c77cb556c4af Mon Sep 17 00:00:00 2001 From: VintagePC <53943260+vintagepc@users.noreply.github.com> Date: Fri, 22 Sep 2023 17:57:41 -0400 Subject: [PATCH] Set repository, if possible. --- CMakeLists.txt | 1 + cmake/GetGitRevisionDescription.cmake | 31 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 35d9a3ba6..a34bfe7f1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -83,6 +83,7 @@ MESSAGE(STATUS "Commit Nr: Configuration.h: ${PROJECT_VERSION_COMMIT} Tag: ${CMA MESSAGE(STATUS "These tag values will override Configuration.h") SET(PROJECT_VERSION ${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}.${PROJECT_VER_TAG_FLV}) SET(PROJECT_VERSION_COMMIT ${CMAKE_MATCH_6}) +git_get_repository(PROJECT_REPOSITORY) else(GIT_FOUND) if (NO_TAG_IS_FATAL) MESSAGE(FATAL_ERROR "Git was not found or an error occurred parsing the tag. This is a fatal error according to the settings.") diff --git a/cmake/GetGitRevisionDescription.cmake b/cmake/GetGitRevisionDescription.cmake index c9e861108..70314c536 100644 --- a/cmake/GetGitRevisionDescription.cmake +++ b/cmake/GetGitRevisionDescription.cmake @@ -388,3 +388,34 @@ function(git_head_commit_number _var) "${out}" PARENT_SCOPE) endfunction() + +function(git_get_repository _var) + if(NOT GIT_FOUND) + find_package(Git QUIET) + endif() + if(NOT GIT_FOUND) + set(${_var} + "Unknown" + PARENT_SCOPE) + return() + endif() + execute_process( + COMMAND "${GIT_EXECUTABLE}" ls-remote --get-url + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + RESULT_VARIABLE res + OUTPUT_VARIABLE out + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REGEX MATCH "([A-z0-9\-]+)/Prusa-Firmware.git" out "${out}") + if("${CMAKE_MATCH_COUNT}" EQUAL 1) + message("Found repository name ${CMAKE_MATCH_1}") + set(${_var} + "${CMAKE_MATCH_1}" + PARENT_SCOPE) + else() + message("Failed to get repository information") + set(${_var} + #"${out}" #outputs the github repo user name + "Unknown" #All other repos shown as unknown + PARENT_SCOPE) + endif() +endfunction()