@@ -186,27 +186,24 @@ INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR})
186
186
#############################################################
187
187
# create qgssvnversion.h
188
188
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 )
210
207
211
208
#############################################################
212
209
# process subdirs
0 commit comments