82 lines
3.7 KiB
CMake
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()
|