1
0
Fork 0
inkscape/CMakeScripts/Dist.cmake
Daniel Baumann 02d935e272
Adding upstream version 1.4.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 23:40:13 +02:00

82 lines
3.7 KiB
CMake

# dist targets for various platforms
# get INKSCAPE_REVISION of the source
set(INKSCAPE_SOURCE_DIR ${CMAKE_SOURCE_DIR})
include(CMakeScripts/inkscape-version.cmake)
# set distribution prefix (used as filename for distributable packages)
set(INKSCAPE_DIST_PREFIX "${PROJECT_NAME}-${INKSCAPE_VERSION}")
if(INKSCAPE_REVISION_DATE AND INKSCAPE_REVISION_HASH)
set(INKSCAPE_DIST_PREFIX ${INKSCAPE_DIST_PREFIX}_${INKSCAPE_REVISION_DATE}_${INKSCAPE_REVISION_HASH})
endif()
# -----------------------------------------------------------------------------
# 'dist' - generate source release tarball
# -----------------------------------------------------------------------------
message("INKSCAPE_DIST_PREFIX: ${INKSCAPE_DIST_PREFIX}")
add_custom_target(dist
COMMAND sed -i "s/unknown/${INKSCAPE_REVISION}/" ${CMAKE_SOURCE_DIR}/CMakeScripts/inkscape-version.cmake
COMMAND cmake --build ${CMAKE_BINARY_DIR} --target package_source
COMMAND git checkout ${CMAKE_SOURCE_DIR}/CMakeScripts/inkscape-version.cmake
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
VERBATIM)
# -----------------------------------------------------------------------------
# 'dist-win' - Windows Targets
# -----------------------------------------------------------------------------
if(WIN32)
if(HAVE_MINGW64)
set(bitness "x64")
else()
set(bitness "x86")
endif()
set(INKSCAPE_DIST_PREFIX ${INKSCAPE_DIST_PREFIX}-${bitness})
# -----------------------------------------------------------------------------
# 'dist-win-7z' - generate binary 7z archive for Windows
# -----------------------------------------------------------------------------
find_program(7z 7z PATHS "C:/Program Files/7-Zip"
"C:/Program Files (x86)/7-Zip")
if(NOT 7z)
set(7z echo "Could not find '7z'. Please add it to your search path." && exit 1 &&)
endif()
# default target with very good but slow compression (needs approx. 10 GB RAM)
add_custom_target(dist-win-7z
COMMAND ${CMAKE_COMMAND} -E remove "${CMAKE_BINARY_DIR}/${INKSCAPE_DIST_PREFIX}.7z"
COMMAND ${7z} a -mx9 -md512m -mfb256
"${CMAKE_BINARY_DIR}/${INKSCAPE_DIST_PREFIX}.7z"
"${CMAKE_INSTALL_PREFIX}")
# fast target with moderate compression
add_custom_target(dist-win-7z-fast
COMMAND ${CMAKE_COMMAND} -E remove "${CMAKE_BINARY_DIR}/${INKSCAPE_DIST_PREFIX}.7z"
COMMAND ${7z} a
"${CMAKE_BINARY_DIR}/${INKSCAPE_DIST_PREFIX}.7z"
"${CMAKE_INSTALL_PREFIX}")
add_dependencies(dist-win-7z install/strip)
add_dependencies(dist-win-7z-fast install/strip)
# -----------------------------------------------------------------------------
# 'dist-win-exe' - generate .exe installer (NSIS) for Windows
# -----------------------------------------------------------------------------
add_custom_target(dist-win-exe COMMAND ${CMAKE_CPACK_COMMAND} -G NSIS)
add_dependencies(dist-win-exe install/strip) # TODO: we'd only need to depend on the "all" target
# -----------------------------------------------------------------------------
# 'dist-win-msi' - generate .exe installer (NSIS) for Windows
# -----------------------------------------------------------------------------
add_custom_target(dist-win-msi COMMAND ${CMAKE_CPACK_COMMAND} -G WIX)
add_dependencies(dist-win-msi install/strip) # TODO: we'd only need to depend on the "all" target
# -----------------------------------------------------------------------------
# 'dist-win-all' - generate all 'dist' targets for Windows
# -----------------------------------------------------------------------------
add_custom_target(dist-win-all DEPENDS dist-win-7z dist-win-exe dist-win-msi)
endif()