65 lines
2.1 KiB
CMake
65 lines
2.1 KiB
CMake
################################################################
|
|
# Name: SVNVersion.cmake
|
|
# Purpose: Determine subversion revision id for Scyther
|
|
# and write it into a macro in version.h
|
|
# Author: Cas Cremers
|
|
################################################################
|
|
|
|
# Technically, this only needs to be redone each time a file
|
|
# changes, so this is a target with dependencies on all files.
|
|
|
|
# Checkout version info
|
|
find_program (SVNVERSION_EXECUTABLE NAMES svnversion)
|
|
mark_as_advanced (SVNVERSION_EXECUTABLE)
|
|
mark_as_advanced (SVNVERSION_DYNAMIC)
|
|
set (SVNVERSION_DYNAMIC false)
|
|
if (SVNVERSION_EXECUTABLE)
|
|
# test whether svnversion gives useful info
|
|
execute_process (
|
|
COMMAND ${SVNVERSION_EXECUTABLE} --no-newline
|
|
OUTPUT_VARIABLE SVN_Result
|
|
)
|
|
mark_as_advanced (SVN_Result)
|
|
if (NOT ${SVN_Result} STREQUAL "exported")
|
|
# svnversion gives useful stuff
|
|
# write to file
|
|
file (WRITE version.h "#define SVNVERSION \"${SVN_Result}\"\n")
|
|
if (UNIX)
|
|
# Unix system
|
|
# mark for dynamic generation in
|
|
# Makefile
|
|
set (SVNVERSION_DYNAMIC true)
|
|
endif (UNIX)
|
|
endif (NOT ${SVN_Result} STREQUAL "exported")
|
|
mark_as_advanced (SVNDIR)
|
|
endif (SVNVERSION_EXECUTABLE)
|
|
|
|
# If dynamic generation is required, this means another target in the
|
|
# makefile
|
|
if (SVNVERSION_DYNAMIC)
|
|
# add a command to generate version.h
|
|
message (STATUS "Generating version.h dynamically using svnversion command")
|
|
add_custom_command (
|
|
OUTPUT version.h
|
|
# The version number depends on all the files; if they
|
|
# don't change, neither should the version number
|
|
# (although this might be incorrect when updating the
|
|
# current directory)
|
|
DEPENDS ${Scyther_sources}
|
|
DEPENDS .svn
|
|
COMMAND echo
|
|
ARGS "\\#define SVNVERSION \\\"`${SVNVERSION_EXECUTABLE}`\\\"" >version.h
|
|
COMMENT "Generating subversion version information in version.h using svnversion command"
|
|
)
|
|
else (SVNVERSION_DYNAMIC)
|
|
# Don't dynamically generate, simply empty every time
|
|
file (WRITE version.h "#define SVNVERSION \"Unknown\"\n")
|
|
endif (SVNVERSION_DYNAMIC)
|
|
|
|
# add the version number to the sources
|
|
set_source_files_properties(version.h
|
|
PROPERTIES
|
|
GENERATED true)
|
|
set (Scyther_sources ${Scyther_sources} version.h)
|
|
|