1- include (CPack)
2-
31set (PROJECT_VENDOR "geugenm" )
42set (PROJECT_CONTACT
"[email protected] " )
53set (PROJECT_LICENSE "GPL-2.0" ) # Use SPDX identifier (required by DEB/RPM)
@@ -8,7 +6,6 @@ set(PROJECT_GROUP "System")
86# Optional: detect architecture automatically (don't hardcode)
97if (NOT DEFINED PROJECT_ARCH)
108 set (PROJECT_ARCH ${CMAKE_SYSTEM_PROCESSOR} )
11- # Normalize common names
129 if (PROJECT_ARCH STREQUAL "x86_64" )
1310 set (PROJECT_ARCH "amd64" ) # Debian uses 'amd64'
1411 elseif (PROJECT_ARCH MATCHES "aarch64|arm64" )
@@ -17,75 +14,38 @@ if(NOT DEFINED PROJECT_ARCH)
1714endif ()
1815
1916set (PROJECT_ICON_FILE "${CMAKE_CURRENT_LIST_DIR} /icon.png" )
20- set (PROJECT_LICENSE_FILE "${CMAKE_SOURCE_DIR} /license" ) # uppercase (convention)
17+ set (PROJECT_LICENSE_FILE "${CMAKE_SOURCE_DIR} /license" )
2118set (PROJECT_README_FILE "${CMAKE_SOURCE_DIR} /readme.md" )
2219
2320configure_file ("${CMAKE_CURRENT_LIST_DIR} /package.desktop.in"
2421 "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} .desktop" @ONLY)
2522
26- # Documentation
27- install (
28- FILES "${PROJECT_README_FILE} " "${PROJECT_LICENSE_FILE} "
29- DESTINATION "share/doc/${PROJECT_NAME} "
30- COMPONENT documentation
31- PERMISSIONS OWNER_READ GROUP_READ WORLD_READ)
32-
33- # Icon (standard locations)
34- install (FILES "${PROJECT_ICON_FILE} " DESTINATION "share/pixmaps"
35- RENAME "${PROJECT_NAME} .png" )
36- install (FILES "${PROJECT_ICON_FILE} "
37- DESTINATION "share/icons/hicolor/256x256/apps"
38- RENAME "${PROJECT_NAME} .png" )
39-
40- # Desktop entry (Linux GUI menu)
41- install (FILES "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} .desktop"
42- DESTINATION "share/applications" )
43-
44- cpack_add_component(
45- documentation
46- DISPLAY_NAME "Documentation"
47- DESCRIPTION "Project README and license"
48- GROUP "Documentation" )
49-
50- # Optional: add 'runtime' component if you have executables
51- # cpack_add_component(runtime ...)
52-
5323# === CPack Core Configuration ===
5424set (CPACK_PACKAGE_NAME "${PROJECT_NAME} " )
5525set (CPACK_PACKAGE_VENDOR "${PROJECT_VENDOR} " )
5626set (CPACK_PACKAGE_CONTACT "${PROJECT_CONTACT} " )
5727set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_DESCRIPTION} " )
5828set (CPACK_PACKAGE_HOMEPAGE_URL "${PROJECT_HOMEPAGE_URL} " )
59-
60- # Use SPDX license (required for DEB/RPM)
6129set (CPACK_PACKAGE_LICENSE "${PROJECT_LICENSE} " )
62-
63- # Resources
6430set (CPACK_RESOURCE_FILE_LICENSE "${PROJECT_LICENSE_FILE} " )
6531set (CPACK_RESOURCE_FILE_README "${PROJECT_README_FILE} " )
6632
67- # Description file (optional)
6833set (CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_LIST_DIR} /description.txt" )
6934if (NOT EXISTS "${CPACK_PACKAGE_DESCRIPTION_FILE} " )
70- # Fallback to README
7135 set (CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_README_FILE} " )
7236endif ()
7337
74- # Icon (used by macOS/Windows installers)
7538set (CPACK_PACKAGE_ICON "${PROJECT_ICON_FILE} " )
7639
7740# === Generator-Specific Settings ===
7841
7942# DEB
80- set (CPACK_DEBIAN_PACKAGE_MAINTAINER "${PROJECT_CONTACT} " )
81- set (CPACK_DEBIAN_PACKAGE_HOMEPAGE "${PROJECT_HOMEPAGE_URL} " )
82- set (CPACK_DEBIAN_PACKAGE_SECTION "devel" ) # or "games", "utils", etc.
43+ set (CPACK_DEBIAN_PACKAGE_SECTION "devel" )
8344set (CPACK_DEBIAN_PACKAGE_PRIORITY "optional" )
8445
8546# RPM
86- set (CPACK_RPM_PACKAGE_LICENSE "${PROJECT_LICENSE } " ) # SPDX
47+ set (CPACK_RPM_PACKAGE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION_SUMMARY } " )
8748set (CPACK_RPM_PACKAGE_GROUP "${PROJECT_GROUP} " )
88- set (CPACK_RPM_PACKAGE_URL "${PROJECT_HOMEPAGE_URL} " )
8949set (CPACK_RPM_PACKAGE_AUTOREQPROV "yes" )
9050
9151# macOS
@@ -98,3 +58,26 @@ endif()
9858set (CPACK_NSIS_MODIFY_PATH ON )
9959set (CPACK_NSIS_MUI_ICON "${PROJECT_ICON_FILE} " )
10060set (CPACK_NSIS_MUI_UNIICON "${PROJECT_ICON_FILE} " )
61+
62+ include (CPack)
63+
64+ cpack_add_component(
65+ documentation
66+ DISPLAY_NAME "Documentation"
67+ DESCRIPTION "Project README and license"
68+ GROUP "Documentation" )
69+
70+ install (
71+ FILES "${PROJECT_README_FILE} " "${PROJECT_LICENSE_FILE} "
72+ DESTINATION "share/doc/${PROJECT_NAME} "
73+ COMPONENT documentation
74+ PERMISSIONS OWNER_READ GROUP_READ WORLD_READ)
75+
76+ install (FILES "${PROJECT_ICON_FILE} " DESTINATION "share/pixmaps"
77+ RENAME "${PROJECT_NAME} .png" )
78+ install (FILES "${PROJECT_ICON_FILE} "
79+ DESTINATION "share/icons/hicolor/256x256/apps"
80+ RENAME "${PROJECT_NAME} .png" )
81+
82+ install (FILES "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} .desktop"
83+ DESTINATION "share/applications" )
0 commit comments