Add OPTION_ALL_IN_ONE_PACKAGING to make one big installer for Windows(off by default)

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@8322 30fe4595-0a0c-4342-8851-515496e4dcbd
This commit is contained in:
beaglejoe 2022-07-18 23:55:34 +00:00
parent c05c126446
commit 0c78be7bb9
3 changed files with 44 additions and 24 deletions

View File

@ -235,15 +235,18 @@ IF(OPTION_CHECK_CONTENTS)
INCLUDE(cmake/prerelease.cmake)
ENDIF(OPTION_CHECK_CONTENTS)
IF(OPTION_PACKAGING)
IF(OPTION_PACKAGING OR OPTION_ALL_IN_ONE_PACKAGING)
INCLUDE(cmake/packagemaker.cmake)
ENDIF(OPTION_PACKAGING OR OPTION_ALL_IN_ONE_PACKAGING)
IF(OPTION_PACKAGING)
IF(MSVC)
INCLUDE(cmake/packagemaker-nsis.cmake)
ENDIF(MSVC)
IF(APPLE)
INCLUDE(cmake/packagemaker-dmg.cmake)
ENDIF(APPLE)
ELSE(OPTION_PACKAGING)
# Configure CPack.
INCLUDE(CPack)
ENDIF(OPTION_PACKAGING)
IF(OPTION_ALL_IN_ONE_PACKAGING)
INCLUDE(CPack)
ENDIF(OPTION_ALL_IN_ONE_PACKAGING)

View File

@ -86,6 +86,8 @@ MACRO(ADD_SD_COMPILE_OPTIONS)
SET(OPTION_PACKAGING true CACHE BOOL "Enable Packaging for distribution")
SET(OPTION_ALL_IN_ONE_PACKAGING false CACHE BOOL "Enable CPack's monolithic PACKAGE")
SET(OPTION_TRACKEDITOR true CACHE BOOL "Build the TrackEditor (Requires Java)")
IF(APPLE)

View File

@ -12,7 +12,7 @@ ENDIF()
SET(INTERNAL_NAME "speed-dreams")
SET(CPACK_PACKAGE_NAME "Speed Dreams")
SET(CPACK_PACKAGE_VENDOR "the Speed Dreams team")
SET(CPACK_PACKAGE_VENDOR "The Speed Dreams team")
SET(CPACK_PACKAGE_CONTACT "http:\\\\\\\\www.speed-dreams.org")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Speed Dreams (an Open Motorsport Sim) is a racing simulation that allows you to drive in races against opponents simulated by the computer ; it is GPL 2+ and has been forked from TORCS in late 2008")
SET(CPACK_RESOURCE_FILE_LICENSE "${SOURCE_DIR}/COPYING.txt")
@ -23,16 +23,16 @@ SET(CPACK_PACKAGE_EXECUTABLES "${EXECUTABLE_NAME};Start ${CPACK_PACKAGE_NAME}")
# Version settings.
# * the short way.
SET(CPACK_PACKAGE_VERSION "${VERSION_LONG}")
#SET(CPACK_PACKAGE_VERSION "${VERSION_LONG}")
# * another way.
#SET(CPACK_PACKAGE_VERSION_MAJOR "2")
#SET(CPACK_PACKAGE_VERSION_MINOR "0")
#SET(CPACK_PACKAGE_VERSION_PATCH "0")
#SET(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}-alpha")
#IF(NOT SVN_FIND_REV_FAILED)
# SET(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}-r${SVN_REV}")
#ENDIF(NOT SVN_FIND_REV_FAILED)
SET(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
SET(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
SET(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
SET(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}${PROJECT_VERSION_METADATA}")
IF(NOT SVN_FIND_REV_FAILED)
SET(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}-r${SVN_REV}")
ENDIF(NOT SVN_FIND_REV_FAILED)
# Binary package settings.
SET(PACKAGE_FILE_PREFIX "${INTERNAL_NAME}")
@ -87,7 +87,9 @@ IF(WIN32)
# General note: There is a bug in NSI that does not handle full unix paths properly.
# Make sure there is at least one set of four (4) backlasshes.
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "${INTERNAL_NAME}-${VERSION_LONG}")
SET(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL True)
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "${INTERNAL_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}${PROJECT_VERSION_METADATA}")
SET(EXECUTABLE_PATHNAME "$INSTDIR\\\\bin\\\\${EXECUTABLE_NAME}.exe")
@ -97,12 +99,13 @@ IF(WIN32)
MARK_AS_ADVANCED(PACKAGERS_SOURCE)
SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_FILE_PREFIX}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}-setup")
SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}")
SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_NSIS_DISPLAY_NAME}")
SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION_MAJOR}${PROJECT_VERSION_METADATA}")
SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION_MAJOR}")
#SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
# Icon for the generated installer/uninstaller files.
SET(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}\\\\data\\\\data\\\\icons\\\\icon.ico")
#SET(CPACK_NSIS_MUI_UNIICON "${CMAKE_SOURCE_DIR}\\\\data\\\\data\\\\icons\\\\icon.ico")
SET(CPACK_NSIS_MUI_UNIICON "${CMAKE_SOURCE_DIR}\\\\data\\\\data\\\\icons\\\\icon.ico")
SET(CPACK_PACKAGE_ICON ${CMAKE_SOURCE_DIR}\\\\data\\\\data\\\\img\\\\header.bmp)
# Extra shortcuts to add in the start menu (a list of pairs : URL, Menu label).
@ -110,9 +113,12 @@ IF(WIN32)
"${CPACK_PACKAGE_CONTACT}" "Project Homepage")
#"$INSTDIR\\\\share\\\\doc\\\\userman\\\\how_to_drive.html" "User manual")
# Icon in the add/remove control panel. Must be an .exe file
# Icon in the add/remove control panel. Must be an .exe file
Set(CPACK_NSIS_INSTALLED_ICON_NAME "${EXECUTABLE_PATHNAME}")
# Executable to (optionally) run after install
SET(CPACK_NSIS_MUI_FINISHPAGE_RUN "${EXECUTABLE_PATHNAME}")
SET(CPACK_NSIS_URL_INFO_ABOUT "${CPACK_PACKAGE_CONTACT}")
SET(CPACK_NSIS_HELP_LINK "${CPACK_PACKAGE_CONTACT}")
@ -127,9 +133,18 @@ IF(WIN32)
# But this works.
SET(SHORTCUT_TARGET "$DESKTOP\\\\${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}.lnk")
SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS
"CreateShortCut \\\"${SHORTCUT_TARGET}\\\" \\\"${EXECUTABLE_PATHNAME}\\\"")
SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "Delete \\\"${SHORTCUT_TARGET}\\\"")
SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
CreateShortCut \\\"${SHORTCUT_TARGET}\\\" \\\"${EXECUTABLE_PATHNAME}\\\"
WriteRegStr HKLM 'Software\\\\${CPACK_PACKAGE_VENDOR}\\\\${CPACK_PACKAGE_INSTALL_REGISTRY_KEY}' 'VersionExtra' '${PROJECT_VERSION_METADATA}'
WriteRegDWORD HKLM 'Software\\\\${CPACK_PACKAGE_VENDOR}\\\\${CPACK_PACKAGE_INSTALL_REGISTRY_KEY}' 'VersionMajor' '${CPACK_PACKAGE_VERSION_MAJOR}'
WriteRegDWORD HKLM 'Software\\\\${CPACK_PACKAGE_VENDOR}\\\\${CPACK_PACKAGE_INSTALL_REGISTRY_KEY}' 'VersionMinor' '${CPACK_PACKAGE_VERSION_MINOR}'
WriteRegDWORD HKLM 'Software\\\\${CPACK_PACKAGE_VENDOR}\\\\${CPACK_PACKAGE_INSTALL_REGISTRY_KEY}' 'VersionPatch' '${CPACK_PACKAGE_VERSION_PATCH}'
")
SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
Delete \\\"${SHORTCUT_TARGET}\\\"
")
# Source package specific settings.
LIST(APPEND CPACK_SOURCE_IGNORE_FILES
@ -140,9 +155,9 @@ IF(WIN32)
# Add the PACKAGE_SRC project in the MSVC solution
# (CMake 2.6 and 2.8 fail to do this itself).
ADD_CUSTOM_TARGET(PACKAGE_SRC)
ADD_CUSTOM_COMMAND(TARGET PACKAGE_SRC
COMMAND ${CMAKE_CPACK_COMMAND} -C $(OutDir) --config ./CPackSourceConfig.cmake)
#ADD_CUSTOM_TARGET(PACKAGE_SRC)
#ADD_CUSTOM_COMMAND(TARGET PACKAGE_SRC
# COMMAND ${CMAKE_CPACK_COMMAND} -C $(OutDir) --config ./CPackSourceConfig.cmake)
ENDIF(WIN32)