diff --git a/.gitmodules b/.gitmodules index af1b28b46..f0bd5b68a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -54,3 +54,6 @@ path = third-party/rapidjson url = https://github.com/transmission/rapidjson.git fetchRecurseSubmodules = false +[submodule "third-party/rapavlik-cmake-modules"] + path = third-party/rapavlik-cmake-modules + url = https://github.com/transmission/rpavlik-cmake-modules.git diff --git a/CMakeLists.txt b/CMakeLists.txt index fa9f8594b..2a2f130a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -144,6 +144,8 @@ string(APPEND TR_PEER_ID_PREFIX "-") set(TR_VCS_REVISION_FILE "${CMAKE_SOURCE_DIR}/REVISION") +list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/third-party/rapavlik-cmake-modules") + if(EXISTS ${CMAKE_SOURCE_DIR}/.git) find_package(Git) endif() @@ -153,11 +155,9 @@ if(NOT "$ENV{JENKINS_URL}" STREQUAL "" AND NOT "$ENV{GIT_COMMIT}" STREQUAL "") elseif(NOT "$ENV{TEAMCITY_PROJECT_NAME}" STREQUAL "" AND NOT "$ENV{BUILD_VCS_NUMBER}" STREQUAL "") set(TR_VCS_REVISION "$ENV{BUILD_VCS_NUMBER}") elseif(GIT_FOUND) - execute_process( - COMMAND ${GIT_EXECUTABLE} rev-list --max-count=1 HEAD - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE TR_VCS_REVISION - OUTPUT_STRIP_TRAILING_WHITESPACE) + include(GetGitRevisionDescription) + get_git_head_revision(TR_REFSPEC TR_VCS_REVISION) + unset(TR_REFSPEC) endif() if("${TR_VCS_REVISION}" STREQUAL "" AND EXISTS "${TR_VCS_REVISION_FILE}") diff --git a/third-party/rapavlik-cmake-modules b/third-party/rapavlik-cmake-modules new file mode 160000 index 000000000..d66fc5dec --- /dev/null +++ b/third-party/rapavlik-cmake-modules @@ -0,0 +1 @@ +Subproject commit d66fc5dec3eaea3a4f9778ceeeb65cbec490b5b9