Explorar o código

fixes to scm_rev generation to make it conistent with windows build

bunnei %!s(int64=12) %!d(string=hai) anos
pai
achega
80a040ac77

+ 1 - 0
CMakeLists.txt

@@ -34,6 +34,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modul
 include(GetGitRevisionDescription)
 get_git_head_revision(GIT_REF_SPEC GIT_REV)
 git_describe(GIT_DESC --always --long --dirty)
+git_branch_name(GIT_BRANCH)
 
 # external includes
 include_directories(${OPENGL_INCLUDE_DIR})

+ 28 - 0
externals/cmake-modules/GetGitRevisionDescription.cmake

@@ -80,6 +80,34 @@ function(get_git_head_revision _refspecvar _hashvar)
 	set(${_hashvar} "${HEAD_HASH}" PARENT_SCOPE)
 endfunction()
 
+function(git_branch_name _var)
+	if(NOT GIT_FOUND)
+		find_package(Git QUIET)
+	endif()
+
+	if(NOT GIT_FOUND)
+		set(${_var} "GIT-NOTFOUND" PARENT_SCOPE)
+		return()
+	endif()
+
+	execute_process(COMMAND
+		"${GIT_EXECUTABLE}"
+		rev-parse --abbrev-ref HEAD
+		WORKING_DIRECTORY
+		"${CMAKE_SOURCE_DIR}"
+		RESULT_VARIABLE
+		res
+		OUTPUT_VARIABLE
+		out
+		ERROR_QUIET
+		OUTPUT_STRIP_TRAILING_WHITESPACE)
+	if(NOT res EQUAL 0)
+		set(out "${out}-${res}-NOTFOUND")
+	endif()
+
+	set(${_var} "${out}" PARENT_SCOPE)
+endfunction()
+
 function(git_describe _var)
 	if(NOT GIT_FOUND)
 		find_package(Git QUIET)

+ 3 - 3
src/common/CMakeLists.txt

@@ -1,4 +1,4 @@
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scm_rev.cpp.in" "${CMAKE_CURRENT_BINARY_DIR}/scm_rev.cpp" @ONLY)
+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scm_rev.cpp.in" "${CMAKE_CURRENT_SOURCE_DIR}/scm_rev.cpp" @ONLY)
 
 set(SRCS    break_points.cpp
             console_listener.cpp
@@ -13,10 +13,10 @@ set(SRCS    break_points.cpp
             misc.cpp
             msg_handler.cpp
             string_util.cpp
+            scm_rev.cpp
             symbols.cpp
             thread.cpp
             timer.cpp
-            utf8.cpp
-            ${CMAKE_CURRENT_BINARY_DIR}/scm_rev.cpp)
+            utf8.cpp)
 
 add_library(common STATIC ${SRCS})

+ 2 - 2
src/common/scm_rev.cpp.in

@@ -5,13 +5,13 @@
 #include "common/scm_rev.h"
 
 #define GIT_REV      "@GIT_REV@"
-#define GIT_REF_SPEC "@GIT_REF_SPEC@"
+#define GIT_BRANCH   "@GIT_BRANCH@"
 #define GIT_DESC     "@GIT_DESC@"
 
 namespace Common {
 
 const char g_scm_rev[]      = GIT_REV;
-const char g_scm_ref_spec[] = GIT_REF_SPEC;
+const char g_scm_ref_spec[] = GIT_BRANCH;
 const char g_scm_desc[]     = GIT_DESC;
 
 } // namespace