-MARK_AS_ADVANCED(SVNVERSION_EXECUTABLE)
-FIND_PROGRAM(SVNVERSION_EXECUTABLE svnversion)
-IF(SVNVERSION_EXECUTABLE)
- EXECUTE_PROCESS(COMMAND svnversion -n ${SUPERTUX_SOURCE_DIR}
- OUTPUT_VARIABLE SUPERTUX_WC_REVISION)
- SET(REVISION " r${SUPERTUX_WC_REVISION}")
-ENDIF(SVNVERSION_EXECUTABLE)
-
+MARK_AS_ADVANCED(GIT_EXECUTABLE)
+FIND_PROGRAM(GIT_EXECUTABLE git)
+
+# The .git directory inside the base directory
+SET(GIT_CFG_DIR "${CMAKE_BINARY_DIR}/.git/")
+
+IF(GIT_EXECUTABLE AND EXISTS ${GIT_CFG_DIR})
+ ADD_CUSTOM_TARGET(gitversion ALL
+ ${CMAKE_COMMAND} -E echo "#ifndef VERSION_H" > "${CMAKE_BINARY_DIR}/version.h.tmp"
+ COMMAND ${CMAKE_COMMAND} -E echo "#define VERSION_H" >> "${CMAKE_BINARY_DIR}/version.h.tmp"
+ COMMAND ${CMAKE_COMMAND} >> "${CMAKE_BINARY_DIR}/version.h.tmp" -E echo_append "#define PACKAGE_VERSION \"${SUPERTUX_VERSION} commit "
+ COMMAND ${GIT_EXECUTABLE} rev-parse --sq HEAD >> "${CMAKE_BINARY_DIR}/version.h.tmp"
+ COMMAND ${CMAKE_COMMAND} >> "${CMAKE_BINARY_DIR}/version.h.tmp" -E echo "\""
+ COMMAND ${CMAKE_COMMAND} -E echo "#endif" >> "${CMAKE_BINARY_DIR}/version.h.tmp"
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_BINARY_DIR}/version.h.tmp" "${CMAKE_BINARY_DIR}/version.h"
+ COMMAND ${CMAKE_COMMAND} -E remove "${CMAKE_BINARY_DIR}/version.h.tmp"
+ WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
+ COMMENT "Updating ${CMAKE_BINARY_DIR}/version.h..."
+ VERBATIM)
+ELSE(GIT_EXECUTABLE AND EXISTS ${GIT_CFG_DIR})
+ ADD_CUSTOM_TARGET(gitversion ALL
+ ${CMAKE_COMMAND} -E echo "#ifndef VERSION_H" > "${CMAKE_BINARY_DIR}/version.h.tmp"
+ COMMAND ${CMAKE_COMMAND} -E echo "#define VERSION_H" >> "${CMAKE_BINARY_DIR}/version.h.tmp"
+ COMMAND ${CMAKE_COMMAND} >> "${CMAKE_BINARY_DIR}/version.h.tmp" -E echo "#define PACKAGE_VERSION \"${SUPERTUX_VERSION}\""
+ COMMAND ${CMAKE_COMMAND} -E echo "#endif" >> "${CMAKE_BINARY_DIR}/version.h.tmp"
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_BINARY_DIR}/version.h.tmp" "${CMAKE_BINARY_DIR}/version.h"
+ COMMAND ${CMAKE_COMMAND} -E remove "${CMAKE_BINARY_DIR}/version.h.tmp"
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+ COMMENT "Updating ${CMAKE_BINARY_DIR}/version.h..."
+ VERBATIM)
+ENDIF(GIT_EXECUTABLE AND EXISTS ${GIT_CFG_DIR})
+
+SET_SOURCE_FILES_PROPERTIES(${CMAKE_BINARY_DIR}/version.h
+ PROPERTIES GENERATED true)
+SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/src/supertux/main.cpp
+ PROPERTIES OBJECT_DEPENDS "${CMAKE_BINARY_DIR}/version.h")
+SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/src/supertux/title_screen.cpp
+ PROPERTIES OBJECT_DEPENDS "${CMAKE_BINARY_DIR}/version.h")
+SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/src/addon/addon_manager.cpp
+ PROPERTIES OBJECT_DEPENDS "${CMAKE_BINARY_DIR}/version.h")