inkscape-version.cmake revision f5c7ca101be6b6abe17c6c28e971c86617f6c782
9e3307ac31aae9919152190c5cde034c70b13771bryce# This is called by cmake as an extermal process from
9e3307ac31aae9919152190c5cde034c70b13771bryce# ./src/CMakeLists.txt and creates inkscape-version.cpp
9e3307ac31aae9919152190c5cde034c70b13771bryce#
9e3307ac31aae9919152190c5cde034c70b13771bryce# These variables are defined by the caller, matching the CMake equivilents.
9e3307ac31aae9919152190c5cde034c70b13771bryce# - ${INKSCAPE_SOURCE_DIR}
9e3307ac31aae9919152190c5cde034c70b13771bryce# - ${INKSCAPE_BINARY_DIR}
9e3307ac31aae9919152190c5cde034c70b13771bryce
9e3307ac31aae9919152190c5cde034c70b13771bryce# We should extract the version from build.xml
9e3307ac31aae9919152190c5cde034c70b13771bryce# but for now just hard code
9e3307ac31aae9919152190c5cde034c70b13771bryceset(INKSCAPE_REVISION "unknown")
9e3307ac31aae9919152190c5cde034c70b13771bryce
9e3307ac31aae9919152190c5cde034c70b13771bryceif(EXISTS ${INKSCAPE_SOURCE_DIR}/.bzr/)
9e3307ac31aae9919152190c5cde034c70b13771bryce execute_process(COMMAND
9e3307ac31aae9919152190c5cde034c70b13771bryce bzr revno --tree ${INKSCAPE_SOURCE_DIR}
9e3307ac31aae9919152190c5cde034c70b13771bryce OUTPUT_VARIABLE INKSCAPE_REVISION
9e3307ac31aae9919152190c5cde034c70b13771bryce OUTPUT_STRIP_TRAILING_WHITESPACE)
9e3307ac31aae9919152190c5cde034c70b13771bryceendif()
9e3307ac31aae9919152190c5cde034c70b13771bryce
9e3307ac31aae9919152190c5cde034c70b13771brycefile(WRITE
9e3307ac31aae9919152190c5cde034c70b13771bryce ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp.txt
9e3307ac31aae9919152190c5cde034c70b13771bryce # unlike autoconf, include config.h
9e3307ac31aae9919152190c5cde034c70b13771bryce "#ifdef HAVE_CONFIG_H\n"
9e3307ac31aae9919152190c5cde034c70b13771bryce "# include <config.h>\n"
9e3307ac31aae9919152190c5cde034c70b13771bryce "#endif\n"
9e3307ac31aae9919152190c5cde034c70b13771bryce "\n"
9e3307ac31aae9919152190c5cde034c70b13771bryce "namespace Inkscape {\n"
9e3307ac31aae9919152190c5cde034c70b13771bryce " char const *version_string = VERSION \" \" \"${INKSCAPE_REVISION}\";\n"
9e3307ac31aae9919152190c5cde034c70b13771bryce "}\n")
9e3307ac31aae9919152190c5cde034c70b13771bryce
9e3307ac31aae9919152190c5cde034c70b13771bryce# Copy the file to the final header only if the version changes
9e3307ac31aae9919152190c5cde034c70b13771bryce# and avoid needless rebuilds
6cc3eeab006122853f6f1fd216d745a2391d1294bryceexecute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
9e3307ac31aae9919152190c5cde034c70b13771bryce ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp.txt
9e3307ac31aae9919152190c5cde034c70b13771bryce ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp)
9e3307ac31aae9919152190c5cde034c70b13771bryce