Hi,

My previous cmake patch was relying on ssrf-version.h to be generated correctly by qmake, in the source directory. This one fixes the generation of this file in the build directory.

I've tested by starting from a fresh GIT clone, creating a build directory outside of the clone, running "cmake" and "make" in it. It doesn't create any file in the source directory ("git clean -f -x" outputs nothing).

CU
>From b5230059772d3f8845678618efb208a9f7da3498 Mon Sep 17 00:00:00 2001
From: Patrick Valsecchi <[email protected]>
Date: Tue, 3 Feb 2015 08:56:55 +0100
Subject: [PATCH] Fix ssrf-version.h generation by cmake.

Signed-off-by: Patrick Valsecchi <[email protected]>
---
 CMakeLists.txt | 39 ++++++++++++++++++++++++++++++++-------
 1 file changed, 32 insertions(+), 7 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index c9e32a3..8c8cad1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,13 +55,38 @@ FIND_PACKAGE(Marble REQUIRED)
 INCLUDE_DIRECTORIES(${MARBLE_INCLUDE_DIR})
 
 # Generate the ssrf-config.h every 'make'
-FILE(WRITE ${CMAKE_BINARY_DIR}/version.h.in "\#define VERSION_STRING \"4.1.\"@VERSION@\n")
-FILE(WRITE ${CMAKE_BINARY_DIR}/version.cmake "EXECUTE_PROCESS(
-	COMMAND date +\"%s\"
-	OUTPUT_VARIABLE VERSION
-	OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- CONFIGURE_FILE(\${SRC} \${DST} @ONLY)
+FILE(WRITE ${CMAKE_BINARY_DIR}/version.h.in "
+    #define VERSION_STRING \"@VERSION_STRING@\"
+    #define GIT_VERSION_STRING \"@GIT_VERSION_STRING@\"
+    #define CANONICAL_VERSION_STRING \"@CANONICAL_VERSION_STRING@\"
+")
+FILE(WRITE ${CMAKE_BINARY_DIR}/version.cmake "
+    IF (\${APPLE})
+        SET(VER_OS darwin)
+    ELSEIF (\${WIN32})
+        SET(VER_OS win)
+    ELSE ()
+        SET(VER_OS linux)
+    ENDIF ()
+    EXECUTE_PROCESS(
+        COMMAND sh scripts/get-version \${VER_OS}
+        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+        OUTPUT_VARIABLE VERSION_STRING
+        OUTPUT_STRIP_TRAILING_WHITESPACE
+    )
+    EXECUTE_PROCESS(
+        COMMAND sh scripts/get-version linux
+        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+        OUTPUT_VARIABLE GIT_VERSION_STRING
+        OUTPUT_STRIP_TRAILING_WHITESPACE
+    )
+    EXECUTE_PROCESS(
+        COMMAND sh scripts/get-version full
+        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+        OUTPUT_VARIABLE CANONICAL_VERSION_STRING
+        OUTPUT_STRIP_TRAILING_WHITESPACE
+    )
+    CONFIGURE_FILE(\${SRC} \${DST} @ONLY)
 ")
 ADD_CUSTOM_TARGET(version ALL COMMAND
     ${CMAKE_COMMAND} -D SRC=${CMAKE_BINARY_DIR}/version.h.in
-- 
2.1.0

_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to