|
| 1 | +# Copyright © 2024 Andrew Quijano < [email protected]> |
| 2 | +# SPDX-License-Identifier: MIT |
| 3 | + |
| 4 | +# Set general CPack values |
| 5 | +set(CPACK_PACKAGE_NAME "capstone") |
| 6 | +set(CPACK_PACKAGE_VENDOR "Rot127") |
| 7 | +set(CPACK_PACKAGE_CONTACT "Rot127 < [email protected]>") |
| 8 | +set(CPACK_PACKAGE_DESCRIPTION "Capstone is a lightweight multi-platform, multi-architecture disassembly framework. These are the development headers and libraries.\n Features:\n - Support hardware architectures: AArch64, ARM, Alpha, BPF, EVM, HPPA, LongArch, M680X, M68K, MOS65XX, Mips, PowerPC, RISCV, SH, Sparc, SystemZ, TMS320C64x, TriCore, WASM, x86, XCore, Xtensa.\n - Clean/simple/lightweight/intuitive architecture-neutral API.\n - Provide details on disassembled instructions (called \\\"decomposer\\\" by some others).\n - Provide some semantics of the disassembled instruction, such as list of implicit registers read & written.\n - Thread-safe by design.\n - Special support for embedding into firmware or OS kernel.\n - Distributed under the open source BSD license.") |
| 9 | +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Lightweight multi-architecture disassembly framework - devel files") |
| 10 | +set(CPACK_PACKAGE_HOMEPAGE_URL "https://www.capstone-engine.org/") |
| 11 | +set(CPACK_STRIP_FILES false) |
| 12 | +set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.TXT") |
| 13 | + |
| 14 | +# Set Debian-specific package variables |
| 15 | +set(CPACK_DEBIAN_PACKAGE_NAME "libcapstone-dev") |
| 16 | +set(CPACK_DEBIAN_PACKAGE_SOURCE "capstone") |
| 17 | +set(CPACK_DEBIAN_PACKAGE_VERSION "${PROJECT_VERSION}") |
| 18 | +set(CPACK_DEBIAN_PACKAGE_ORIGINAL_MAINTAINER "Debian Security Tools < [email protected]>") |
| 19 | +set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.2.5)") |
| 20 | +set(CPACK_DEBIAN_PACKAGE_SECTION "libdevel") |
| 21 | +set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") |
| 22 | +set(CPACK_DEBIAN_PACKAGE_MULTIARCH "same") |
| 23 | + |
| 24 | +# Determine architecture for Debian package |
| 25 | +if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64") |
| 26 | + set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64") |
| 27 | +elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i386" OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i686") |
| 28 | + set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i386") |
| 29 | +elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm") |
| 30 | + if(CMAKE_SIZE_OF_VOID_P EQUAL 4) |
| 31 | + set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "armhf") |
| 32 | + else() |
| 33 | + set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "arm64") |
| 34 | + endif() |
| 35 | +else() |
| 36 | + set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) |
| 37 | +endif() |
| 38 | + |
| 39 | +# Include additional file to run 'ldconfig' after install |
| 40 | +set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/packages/deb/triggers") |
| 41 | + |
| 42 | +# RPM package settings |
| 43 | +set(CPACK_RPM_PACKAGE_NAME "capstone-devel") |
| 44 | +set(CPACK_RPM_PACKAGE_VERSION "${PROJECT_VERSION}") |
| 45 | +set(CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) |
| 46 | +set(CPACK_RPM_PACKAGE_GROUP "Development/Libraries") |
| 47 | +set(CPACK_RPM_PACKAGE_REQUIRES "glibc >= 2.2.5") |
| 48 | +set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_SOURCE_DIR}/packages/rpm/postinstall.sh") |
| 49 | +set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_SOURCE_DIR}/packages/rpm/postinstall.sh") |
| 50 | +set(CPACK_RPM_CHANGELOG_FILE "${CMAKE_SOURCE_DIR}/ChangeLog") |
| 51 | +set(CPACK_RPM_PACKAGE_LICENSE "BSD3, LLVM") |
| 52 | +set(CPACK_RPM_PACKAGE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION}") |
| 53 | + |
| 54 | +# Set package file name based on the generator |
| 55 | +set(CPACK_DEBIAN_PACKAGE_FILE_NAME "${CPACK_DEBIAN_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}") |
| 56 | +set(CPACK_RPM_PACKAGE_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.${CMAKE_SYSTEM_PROCESSOR}") |
| 57 | +set(CPACK_DMG_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") |
| 58 | + |
| 59 | +include(CPack) |
0 commit comments