# Copyright © 2024 Andrew Quijano <andrewquijano92@gmail.com> # SPDX-License-Identifier: MIT # Set general CPack values set(CPACK_PACKAGE_NAME "capstone") set(CPACK_PACKAGE_VENDOR "Rot127") set(CPACK_PACKAGE_CONTACT "Rot127 <unisono@quyllur.org>") 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.") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Lightweight multi-architecture disassembly framework - devel files") set(CPACK_PACKAGE_HOMEPAGE_URL "https://www.capstone-engine.org/") set(CPACK_STRIP_FILES false) set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.TXT") # Set Debian-specific package variables set(CPACK_DEBIAN_PACKAGE_NAME "libcapstone-dev") set(CPACK_DEBIAN_PACKAGE_SOURCE "capstone") set(CPACK_DEBIAN_PACKAGE_VERSION "${PROJECT_VERSION}") set(CPACK_DEBIAN_PACKAGE_ORIGINAL_MAINTAINER "Debian Security Tools <team+pkg-security@tracker.debian.org>") set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.2.5)") set(CPACK_DEBIAN_PACKAGE_SECTION "libdevel") set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") set(CPACK_DEBIAN_PACKAGE_MULTIARCH "same") # Determine architecture for Debian package if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64") set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64") elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i386" OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i686") set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i386") elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm") if(CMAKE_SIZE_OF_VOID_P EQUAL 4) set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "armhf") else() set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "arm64") endif() else() set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) endif() # Include additional file to run 'ldconfig' after install set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/packages/deb/triggers") # RPM package settings set(CPACK_RPM_PACKAGE_NAME "capstone-devel") set(CPACK_RPM_PACKAGE_VERSION "${PROJECT_VERSION}") set(CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) set(CPACK_RPM_PACKAGE_GROUP "Development/Libraries") set(CPACK_RPM_PACKAGE_REQUIRES "glibc >= 2.2.5") set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_SOURCE_DIR}/packages/rpm/postinstall.sh") set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_SOURCE_DIR}/packages/rpm/postinstall.sh") set(CPACK_RPM_CHANGELOG_FILE "${CMAKE_SOURCE_DIR}/ChangeLog") set(CPACK_RPM_PACKAGE_LICENSE "BSD3, LLVM") set(CPACK_RPM_PACKAGE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION}") # Set package file name based on the generator set(CPACK_DEBIAN_PACKAGE_FILE_NAME "${CPACK_DEBIAN_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}") set(CPACK_RPM_PACKAGE_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.${CMAKE_SYSTEM_PROCESSOR}") set(CPACK_DMG_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") include(CPack)