Skip to content

Commit 1d9581a

Browse files
author
homann
committedFeb 26, 2007
Added generation of gqssvnversion.h
git-svn-id: http://svn.osgeo.org/qgis/trunk@6711 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 6316212 commit 1d9581a

File tree

3 files changed

+36
-21
lines changed

3 files changed

+36
-21
lines changed
 

‎CMakeLists.txt

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -186,27 +186,24 @@ INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR})
186186
#############################################################
187187
# create qgssvnversion.h
188188

189-
IF (WIN32)
190-
191-
# TODO: create qgssvnversion.h properly
192-
#ADD_CUSTOM_TARGET(svnversion ALL echo \\"#define QGSSVNVERSION \\\"svn_rev_unavailable\\\" \\" > qgssvnversion.h
193-
# WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
194-
195-
# this should work with both msys and mingw generators
196-
SET (SVNVER_H ${CMAKE_BINARY_DIR}/qgssvnversion.h)
197-
IF (NOT EXISTS ${SVNVER_H})
198-
WRITE_FILE(${SVNVER_H} "#define QGSSVNVERSION \"svn_rev_unavailable\"")
199-
ENDIF (NOT EXISTS ${SVNVER_H})
200-
201-
ELSE (WIN32)
202-
203-
ADD_CUSTOM_TARGET(svnversion ALL
204-
QGSSVNDEF='\#define QGSSVNVERSION \"'`svnversion ${QGIS_SOURCE_DIR}`'\"' &&
205-
if [ \"`grep QGSSVNVERSION qgssvnversion.h 2>/dev/null`\" != \"$$QGSSVNDEF\" ]; then
206-
echo $$QGSSVNDEF > qgssvnversion.h \; fi
207-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
208-
209-
ENDIF (WIN32)
189+
FIND_FILE(SVN_MARKER entries PATHS ${CMAKE_SOURCE_DIR}/.svn)
190+
191+
IF (NOT SVN_MARKER)
192+
SET (SVN_MARKER ${CMAKE_SOURCE_DIR}/CMakeLists.txt) # Dummy file
193+
ENDIF (NOT SVN_MARKER)
194+
# Add a custom command to drive the svn script whenever the svn entries
195+
# file changes.
196+
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/svnscript.cmake.in_cmake
197+
${CMAKE_CURRENT_BINARY_DIR}/svnscript.cmake
198+
@ONLY)
199+
200+
ADD_CUSTOM_COMMAND (
201+
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h
202+
DEPENDS ${SVN_MARKER}
203+
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/svnscript.cmake
204+
)
205+
206+
ADD_CUSTOM_TARGET(svnversion ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h)
210207

211208
#############################################################
212209
# process subdirs

‎qgssvnversion.h.in_cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#define QGSSVNVERSION "@MYVERSION@"

‎svnscript.cmake.in_cmake

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Magnus Homann svn hack
2+
# Required?
3+
SET(CMAKE_BACKWARDS_COMPATIBILITY "2.4")
4+
5+
# See if we have svn installed
6+
FIND_PROGRAM(SVNVERSION svnversion)
7+
8+
# Read the version if installed, else set to "unknown"
9+
IF (SVNVERSION)
10+
EXEC_PROGRAM(${SVNVERSION} ARGS @CMAKE_CURRENT_SOURCE_DIR@ OUTPUT_VARIABLE MYVERSION)
11+
ELSE (SVNVERSION)
12+
SET(MYVERSION unknown)
13+
ENDIF (SVNVERSION)
14+
15+
# Configure the qgssvnversion.h
16+
CONFIGURE_FILE(@CMAKE_CURRENT_SOURCE_DIR@/qgssvnversion.h.in_cmake
17+
@CMAKE_CURRENT_BINARY_DIR@/qgssvnversion.h)

0 commit comments

Comments
 (0)
Please sign in to comment.