52 lines
2.2 KiB
CMake
52 lines
2.2 KiB
CMake
# This is called by cmake as an extermal process from
|
|
# ./src/CMakeLists.txt and creates inkscape-version.cpp
|
|
#
|
|
# It's also included directly in ./CMakeScripts/Dist.cmake to
|
|
# determine INKSCAPE_REVISION, INKSCAPE_REVISION_HASH and INKSCAPE_REVISION_DATE
|
|
# for the 'dist' targets
|
|
#
|
|
# These variables are defined by the caller, matching the CMake equivilents.
|
|
# - ${INKSCAPE_SOURCE_DIR}
|
|
# - ${INKSCAPE_BINARY_DIR}
|
|
|
|
set(INKSCAPE_REVISION "e7c3feb100, 2024-10-09")
|
|
|
|
if(EXISTS ${INKSCAPE_SOURCE_DIR}/.git)
|
|
execute_process(COMMAND git rev-parse --short HEAD
|
|
WORKING_DIRECTORY ${INKSCAPE_SOURCE_DIR}
|
|
OUTPUT_VARIABLE INKSCAPE_REVISION_HASH
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
execute_process(COMMAND git log -n 1 --pretty=%cd --date=short
|
|
WORKING_DIRECTORY ${INKSCAPE_SOURCE_DIR}
|
|
OUTPUT_VARIABLE INKSCAPE_REVISION_DATE
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
set(INKSCAPE_REVISION "${INKSCAPE_REVISION_HASH}, ${INKSCAPE_REVISION_DATE}")
|
|
|
|
execute_process(COMMAND
|
|
git status -s ${INKSCAPE_SOURCE_DIR}/src
|
|
WORKING_DIRECTORY ${INKSCAPE_SOURCE_DIR}
|
|
OUTPUT_VARIABLE INKSCAPE_SOURCE_MODIFIED
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
if(NOT INKSCAPE_SOURCE_MODIFIED STREQUAL "")
|
|
set(INKSCAPE_REVISION "${INKSCAPE_REVISION}")
|
|
endif()
|
|
elseif(EXISTS ${INKSCAPE_SOURCE_DIR}/debian/git-build-recipe.manifest)
|
|
# workaround for debian packaging in ppa (where we have no repo)
|
|
# TODO: figure out how to match this to standard build environments
|
|
execute_process(COMMAND sed -n "s/.*deb-version\\s*//p" git-build-recipe.manifest
|
|
WORKING_DIRECTORY ${INKSCAPE_SOURCE_DIR}/debian
|
|
OUTPUT_VARIABLE DEB_VERSION
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
set(INKSCAPE_REVISION "${DEB_VERSION}")
|
|
endif()
|
|
|
|
if(${INKSCAPE_REVISION_DATE} MATCHES "^([0-9][0-9][0-9][0-9])-[0-9][0-9]-[0-9][0-9]$")
|
|
set(INKSCAPE_BUILD_YEAR ${CMAKE_MATCH_1})
|
|
else()
|
|
string(TIMESTAMP INKSCAPE_BUILD_YEAR %Y UTC)
|
|
endif()
|
|
|
|
if(NOT "${INKSCAPE_BINARY_DIR}" STREQUAL "")
|
|
message("revision is " ${INKSCAPE_REVISION})
|
|
configure_file(${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp.in ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp)
|
|
endif()
|