Skip to content

Commit

Permalink
Reconfigure CPack settings
Browse files Browse the repository at this point in the history
  • Loading branch information
dr8co committed Apr 22, 2024
1 parent d5a63eb commit ca068e0
Showing 1 changed file with 63 additions and 41 deletions.
104 changes: 63 additions & 41 deletions cmake/Packing.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,19 @@ set(CPACK_PACKAGE_NAME "${PROJECT_NAME}")
set(CPACK_PACKAGE_VENDOR "Ian Duncan")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_DESCRIPTION}")
set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")
set(CPACK_PACKAGE_CONTACT "dr8co@duck.com")
set(CPACK_PACKAGE_CONTACT "Ian Duncan <dr8co@duck.com>")
set(CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/dr8co/LiteString")

set(CPACK_OUTPUT_FILE_PREFIX "${CMAKE_BINARY_DIR}/Packages")

# Set the package icon
if (WIN32)
# Windows graphical installers take BMP files (Inno Setup and NSIS)
set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\assets\\logo\\logo1.bmp")
else ()
set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/assets/logo/logo-symbol.ico")
endif ()

# Source package Generator variables
set(CPACK_SOURCE_GENERATOR "TGZ;ZIP")
set(CPACK_SOURCE_STRIP_FILES YES)
Expand All @@ -34,6 +42,22 @@ set(CPACK_SOURCE_IGNORE_FILES
/CPackSourceConfig.cmake
/CPack
)
# Component settings
set(CPACK_COMPONENTS_ALL libraries headers CMakeConfig pkgconfig)

set(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries")
set(CPACK_COMPONENT_LIBRARIES_DESCRIPTION "The LiteString libraries.")
set(CPACK_COMPONENT_LIBRARIES_REQUIRED ON)

set(CPACK_COMPONENT_CMAKECONFIG_DISPLAY_NAME "CMake Config")
set(CPACK_COMPONENT_CMAKECONFIG_DESCRIPTION "CMake configuration files.")

set(CPACK_COMPONENT_PKGCONFIG_DISPLAY_NAME "PkgConfig")
set(CPACK_COMPONENT_PKGCONFIG_DESCRIPTION "The LiteString library pkgconfig file.")

set(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "Headers")
set(CPACK_COMPONENT_HEADERS_DESCRIPTION "Header files for LiteString.")
set(CPACK_COMPONENT_HEADERS_REQUIRED ON)

# Resource files
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
Expand All @@ -48,8 +72,10 @@ if (WIN32)
set(CPACK_GENERATOR "ZIP;INNOSETUP")
elseif (APPLE)
set(CPACK_GENERATOR "DragNDrop")
else ()
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
set(CPACK_GENERATOR "TGZ;DEB;RPM")
else ()
set(CPACK_GENERATOR "TGZ")
endif ()

# Set the package dependencies
Expand All @@ -74,55 +100,51 @@ set(CPACK_DEBIAN_PACKAGE_SECTION "libs")
# Use the resource file for the license
set(CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE ON)

set(CPACK_PACKAGE_CHECKSUM "SHA256")

if (win32)
# NSIS specific settings
set(CPACK_NSIS_PACKAGE_NAME "${CPACK_PACKAGE_NAME}")
set(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_NAME}")
set(CPACK_NSIS_MODIFY_PATH ON)
set(CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_CURRENT_SOURCE_DIR}/assets/background/background-mid.png")

set(CPACK_NSIS_INSTALL_ROOT "C:\\Program Files\\${CPACK_PACKAGE_NAME}")
set(CPACK_NSIS_CONTACT "${CPACK_PACKAGE_CONTACT}")

set(CPACK_NSIS_URL_INFO_ABOUT "${CPACK_PACKAGE_HOMEPAGE}")
set(CPACK_NSIS_MODIFY_PATH ON)
# Set the package checksum
set(CPACK_PACKAGE_CHECKSUM "SHA256")

set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
set(CPACK_NSIS_HELP_LINK "${CPACK_PACKAGE_HOMEPAGE}")
set(CPACK_NSIS_MENU_LINKS "${CPACK_PACKAGE_HOMEPAGE}" "Home Page")
# NSIS specific settings
set(CPACK_NSIS_PACKAGE_NAME "${CPACK_PACKAGE_NAME}")
set(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_NAME}")
set(CPACK_NSIS_MODIFY_PATH ON)

# Inno setup specific settings
set(CPACK_INNOSETUP_USE_CMAKE_BOOL_FORMAT ON)
set(CPACK_INNOSETUP_INSTALL_ROOT "${CPACK_NSIS_INSTALL_ROOT}")
set(CPACK_NSIS_INSTALL_ROOT "C:\\Program Files\\${CPACK_PACKAGE_NAME}")
set(CPACK_NSIS_CONTACT "${CPACK_PACKAGE_CONTACT}")

set(CPACK_INNOSETUP_ALLOW_CUSTOM_DIRECTORY ON)
set(CPACK_INNOSETUP_PROGRAM_MENU_FOLDER "${CPACK_PACKAGE_NAME}")
set(CPACK_NSIS_URL_INFO_ABOUT "${CPACK_PACKAGE_HOMEPAGE}")
set(CPACK_NSIS_MODIFY_PATH ON)

set(CPACK_INNOSETUP_LANGUAGES "english;spanish;french;german;italian")
set(CPACK_INNOSETUP_IGNORE_LICENSE_PAGE OFF)
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
set(CPACK_NSIS_HELP_LINK "${CPACK_PACKAGE_HOMEPAGE}")
set(CPACK_NSIS_MENU_LINKS "Help" "${CPACK_PACKAGE_HOMEPAGE}" "Home Page")

set(CPACK_INNOSETUP_IGNORE_README_PAGE OFF)
set(CPACK_INNOSETUP_USE_MODERN_WIZARD ON)
# Inno setup specific settings
set(CPACK_INNOSETUP_USE_CMAKE_BOOL_FORMAT ON)
set(CPACK_INNOSETUP_INSTALL_ROOT "${CPACK_NSIS_INSTALL_ROOT}")

set(CPACK_INNOSETUP_MENU_LINKS "${CPACK_NSIS_MENU_LINKS}")
set(CPACK_INNOSETUP_ALLOW_CUSTOM_DIRECTORY ON)
set(CPACK_INNOSETUP_PROGRAM_MENU_FOLDER "${CPACK_PACKAGE_NAME}")

endif ()
set(CPACK_INNOSETUP_LANGUAGES "english;spanish;french;german;italian")
set(CPACK_INNOSETUP_IGNORE_LICENSE_PAGE OFF)

set(CPACK_COMPONENTS_ALL libraries headers CMakeConfig pkgconfig)
set(CPACK_INNOSETUP_IGNORE_README_PAGE ON)
set(CPACK_INNOSETUP_USE_MODERN_WIZARD ON)

set(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries")
set(CPACK_COMPONENT_LIBRARIES_DESCRIPTION "The LiteString libraries.")
set(CPACK_COMPONENT_LIBRARIES_REQUIRED ON)
set(CPACK_INNOSETUP_MENU_LINKS "Help" "${CPACK_PACKAGE_HOMEPAGE}" "Home Page")

set(CPACK_COMPONENT_CMAKECONFIG_DISPLAY_NAME "CMake Config")
set(CPACK_COMPONENT_CMAKECONFIG_DESCRIPTION "CMake configuration files.")

set(CPACK_COMPONENT_PKGCONFIG_DISPLAY_NAME "PkgConfig")
set(CPACK_COMPONENT_PKGCONFIG_DESCRIPTION "The LiteString library pkgconfig file.")

set(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "Headers")
set(CPACK_COMPONENT_HEADERS_DESCRIPTION "Header files for LiteString.")
set(CPACK_COMPONENT_HEADERS_REQUIRED ON)
# Extend the setup section
set(CPACK_INNOSETUP_SETUP_SetupIconFile "${CMAKE_CURRENT_SOURCE_DIR}\\assets\\logo\\logo1.ico")
set(CPACK_INNOSETUP_SETUP_UninstallDisplayIcon "${CMAKE_CURRENT_SOURCE_DIR}\\assets\\logo\\logo1.ico")
set(CPACK_INNOSETUP_SETUP_ShowLanguageDialog ON)
set(CPACK_INNOSETUP_SETUP_WizardImageFile "${CMAKE_CURRENT_SOURCE_DIR}\\assets\\wizardImage\\wzImg3@0.75x.bmp")
set(CPACK_INNOSETUP_SETUP_WizardSmallImageFile "${CMAKE_CURRENT_SOURCE_DIR}\\assets\\wizardSmallImage\\wzSmall1@0.25x.bmp")
set(CPACK_INNOSETUP_SETUP_WizardStyle "modern")
set(CPACK_INNOSETUP_SETUP_DisableWelcomePage OFF)
set(CPACK_INNOSETUP_SETUP_AppCopyright "Copyright (C) 2024 Ian Duncan")
set(CPACK_INNOSETUP_SETUP_AppComments "For more information, visit https://github.com/dr8co/LiteString")
set(CPACK_INNOSETUP_SETUP_VersionInfoVersion "${CPACK_PACKAGE_VERSION}")

include(CPack)

0 comments on commit ca068e0

Please sign in to comment.