@@ -181,21 +181,29 @@ INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR})
181
181
182
182
#############################################################
183
183
# create qgssvnversion.h
184
+ # see http://public.kitware.com/pipermail/cmake/2006-July/010299.html
184
185
185
- IF (WIN32 )
186
- SET (SVNVER_H ${CMAKE_BINARY_DIR} /qgssvnversion.h)
187
- IF (NOT EXISTS ${SVNVER_H} )
188
- WRITE_FILE (${SVNVER_H} "#define QGSSVNVERSION \" svn_rev_unavailable\" " )
189
- ENDIF (NOT EXISTS ${SVNVER_H} )
190
- ELSE (WIN32 )
186
+ # We only do this if we are in a .svn dir
191
187
192
- ADD_CUSTOM_TARGET (svnversion ALL
193
- QGSSVNDEF='\#define QGSSVNVERSION \"'`svnversion ${QGIS_SOURCE_DIR}`'\"' &&
194
- if [ \"`grep QGSSVNVERSION qgssvnversion.h 2>/dev/null`\" != \"$$QGSSVNDEF\" ]; then
195
- echo $$QGSSVNDEF > qgssvnversion.h \; fi
196
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR} )
188
+ FIND_FILE (SVN_MARKER ${CMAKE_SOURCE_DIR} /.svn/entries)
197
189
198
- ENDIF (WIN32 )
190
+ IF (NOT SVN_MARKER)
191
+ SET (SVN_MARKER ${CMAKE_SOURCE_DIR} /CMakeLists.txt) # Dummy file
192
+ ENDIF (NOT SVN_MARKER)
193
+ # Add a custom command to drive the svn script whenever the svn entries
194
+ # file changes.
195
+ CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR} /svnscript.cmake.in_cmake
196
+ ${CMAKE_CURRENT_BINARY_DIR} /svnscript.cmake
197
+ @ONLY)
198
+
199
+ ADD_CUSTOM_COMMAND (
200
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /qgssvnversion.h
201
+ DEPENDS ${SVN_MARKER}
202
+ COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR} /svnscript.cmake
203
+ )
204
+
205
+ # Add a custom target to drive the custom command.
206
+ ADD_CUSTOM_TARGET (svnversion ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR} /qgssvnversion.h)
199
207
200
208
#############################################################
201
209
# process subdirs
0 commit comments