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