kopia lustrzana https://github.com/stlink-org/stlink
112 wiersze
4.4 KiB
CMake
112 wiersze
4.4 KiB
CMake
# cpack_config.cmake
|
|
# Configure and generate packages for distribution
|
|
|
|
###
|
|
# Configure package
|
|
###
|
|
|
|
set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
|
|
set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
|
|
set(CPACK_PACKAGE_DESCRIPTION "Open source STM32 MCU programming toolset")
|
|
set(CPACK_PACKAGE_VENDOR "stlink-org")
|
|
set(CMAKE_PROJECT_HOMEPAGE_URL "https://github.com/stlink-org/stlink")
|
|
|
|
set(CPACK_SET_DESTDIR "ON")
|
|
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/dist)
|
|
set(CPACK_OUTPUT_FILE_PREFIX "${CMAKE_BINARY_DIR}/dist")
|
|
|
|
if (WIN32 AND (NOT EXISTS "/etc/debian_version")) # Windows
|
|
set(CPACK_GENERATOR "ZIP")
|
|
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}-win32")
|
|
set(CPACK_INSTALL_PREFIX "")
|
|
|
|
elseif (WIN32) # Windows cross-build on Debian/Ubuntu
|
|
set(CPACK_GENERATOR "ZIP")
|
|
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}-${TOOLCHAIN_PREFIX}")
|
|
set(CPACK_INSTALL_PREFIX "")
|
|
|
|
elseif (EXISTS "/etc/debian_version" AND (NOT EXISTS WIN32)) # Package-build on Debian/Ubuntu
|
|
message(STATUS "Debian-based Linux OS detected")
|
|
|
|
set(CPACK_GENERATOR "DEB;RPM") # RPM requires package `rpm`
|
|
|
|
###
|
|
# Debian (DEB)
|
|
###
|
|
|
|
# CPACK_DEB_PACKAGE_NAME --> Default: CPACK_PACKAGE_NAME
|
|
|
|
## DEB package file name
|
|
# CPack DEB generator generates package file name in deb format:
|
|
# <PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
|
|
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
|
|
|
|
# CPACK_DEBIAN_PACKAGE_VERSION --> Default: CPACK_PACKAGE_VERSION
|
|
|
|
## Set debian_revision number
|
|
# Convention: Restart the debian_revision at 1 each time the upstream_version is increased.
|
|
set(CPACK_DEBIAN_PACKAGE_RELEASE "1")
|
|
|
|
# CPACK_DEBIAN_PACKAGE_ARCHITECTURE --> Default: Output of dpkg --print-architecture
|
|
set(CPACK_DEBIAN_PACKAGE_DEPENDS "pkg-config, build-essential, debhelper (>=9), cmake (>= 3.13.0), libusb-1.0-0-dev (>= 1.0.22)")
|
|
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Nightwalker-87 <stlink-org>")
|
|
# CPACK_DEBIAN_PACKAGE_DESCRIPTION --> Default: CPACK_DEBIAN_PACKAGE_DESCRIPTION (as it is set)
|
|
# CPACK_DEBIAN_PACKAGE_SECTION --> Default: “devel”
|
|
# CPACK_DEBIAN_ARCHIVE_TYPE --> Default: “gnutar”
|
|
# CPACK_DEBIAN_COMPRESSION_TYPE --> Default: “gzip”
|
|
# CPACK_DEBIAN_PACKAGE_PRIORITY --> Default: “optional”
|
|
# CPACK_DEBIAN_PACKAGE_HOMEPAGE --> Default: CMAKE_PROJECT_HOMEPAGE_URL
|
|
set(CPACK_DEBIAN_PACKAGE_SUGGESTS "libgtk-3-dev, pandoc")
|
|
|
|
## Additional package files in Debian-specific format:
|
|
# * changelog (package changelog)
|
|
# * copyright (license file)
|
|
# * rules
|
|
# * postinst-script
|
|
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
|
"${CMAKE_SOURCE_DIR}/cmake/packaging/deb/changelog"
|
|
"${CMAKE_SOURCE_DIR}/cmake/packaging/deb/copyright"
|
|
"${CMAKE_SOURCE_DIR}/cmake/packaging/deb/rules"
|
|
"${CMAKE_SOURCE_DIR}/cmake/packaging/deb/postinst"
|
|
)
|
|
|
|
###
|
|
# Slackware & Redhat (RPM)
|
|
###
|
|
|
|
set(CPACK_SET_DESTDIR "OFF") # Required for relocatable package
|
|
|
|
# CPACK_RPM_PACKAGE_SUMMARY --> Default: CPACK_PACKAGE_DESCRIPTION_SUMMARY
|
|
# CPACK_RPM_PACKAGE_NAME --> Default: CPACK_PACKAGE_NAME
|
|
|
|
## RPM package file name
|
|
# Allow rpmbuild to generate package file name
|
|
set(CPACK_RPM_FILE_NAME RPM-DEFAULT)
|
|
|
|
# CPACK_RPM_PACKAGE_VERSION --> Default: CPACK_PACKAGE_VERSION
|
|
# CPACK_RPM_PACKAGE_ARCHITECTURE --> Default: Native architecture output by uname -m
|
|
|
|
## Set rpm revision number
|
|
# Convention: Restart the debian_revision at 1 each time the upstream_version is increased.
|
|
set(CPACK_RPM_PACKAGE_RELEASE "1")
|
|
|
|
set(CPACK_RPM_PACKAGE_LICENSE "BSD-3")
|
|
# CPACK_RPM_PACKAGE_GROUP --> Default: “unknown” (RPM Groups are deprecated on Fedora)
|
|
# CPACK_RPM_PACKAGE_VENDOR --> Default: CPACK_PACKAGE_VENDOR (as it is set)
|
|
# CPACK_RPM_PACKAGE_URL --> Default: CMAKE_PROJECT_HOMEPAGE_URL
|
|
set(CPACK_RPM_PACKAGE_DESCRIPTION CPACK_DEBIAN_PACKAGE_DESCRIPTION)
|
|
|
|
## Add package changelog in rpm-specific format
|
|
set(CPACK_RPM_CHANGELOG_FILE "${CMAKE_SOURCE_DIR}/cmake/packaging/rpm/changelog")
|
|
|
|
else ()
|
|
# No package configuration on other platforms ...
|
|
endif()
|
|
|
|
|
|
###
|
|
# Build packages
|
|
###
|
|
|
|
include(CPack)
|