diff --git a/cmake/cable/buildinfo/buildinfo.cmake b/cmake/cable/buildinfo/buildinfo.cmake index 85fe3e6..adfab37 100644 --- a/cmake/cable/buildinfo/buildinfo.cmake +++ b/cmake/cable/buildinfo/buildinfo.cmake @@ -10,13 +10,16 @@ string(TIMESTAMP TIMESTAMP) # Read the git info from a file. The gitinfo is suppose to update the file # only if the information has changed. -file(READ ${OUTPUT_DIR}/gitinfo.txt GIT_INFO) +file(STRINGS ${OUTPUT_DIR}/gitinfo.txt gitinfo) +list(GET gitinfo 0 describe) +list(GET gitinfo 1 GIT_BRANCH) +list(GET gitinfo 2 GIT_ORIGIN_URL) # The output of `git describe --always --long --tags --match=v*`. -string(REGEX MATCH "(v(.+)-([0-9]+)-g)?([0-9a-f]+)(-dirty)?" match "${GIT_INFO}") +string(REGEX MATCH "(v(.+)-([0-9]+)-g)?([0-9a-f]+)(-dirty)?" match "${describe}") if(NOT match) - message(WARNING "Cannot parse git describe: ${GIT_INFO}") + message(WARNING "Cannot parse git describe: ${describe}") endif() set(GIT_LATEST_PROJECT_VERSION ${CMAKE_MATCH_2}) diff --git a/cmake/cable/buildinfo/gitinfo.cmake b/cmake/cable/buildinfo/gitinfo.cmake index 727e9cd..53068da 100644 --- a/cmake/cable/buildinfo/gitinfo.cmake +++ b/cmake/cable/buildinfo/gitinfo.cmake @@ -12,10 +12,37 @@ if(GIT) ERROR_VARIABLE error ERROR_STRIP_TRAILING_WHITESPACE ) -endif() + if(error) + message(WARNING "Git ${error}") + endif() -if(error) - message(WARNING "Git ${error}") + execute_process( + COMMAND ${GIT} rev-parse --abbrev-ref HEAD + WORKING_DIRECTORY ${SOURCE_DIR} + OUTPUT_VARIABLE gitbranch + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_VARIABLE error + ERROR_STRIP_TRAILING_WHITESPACE + ) + if(error) + message(WARNING "Git ${error}") + else() + set(gitinfo "${gitinfo}\n${gitbranch}") + endif() + + execute_process( + COMMAND ${GIT} config --get remote.origin.url + WORKING_DIRECTORY ${SOURCE_DIR} + OUTPUT_VARIABLE gitorigin + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_VARIABLE error + ERROR_STRIP_TRAILING_WHITESPACE + ) + if(error) + message(WARNING "Git ${error}") + else() + set(gitinfo "${gitinfo}\n${gitorigin}\n") + endif() endif() set(gitinfo_file ${OUTPUT_DIR}/gitinfo.txt)