-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackaging.cmake
More file actions
45 lines (37 loc) · 2.15 KB
/
Copy pathpackaging.cmake
File metadata and controls
45 lines (37 loc) · 2.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
set(DEEP_ROBOTICS_MSG_ROS_DISTRO "$ENV{ROS_DISTRO}")
if(NOT DEEP_ROBOTICS_MSG_ROS_DISTRO)
message(FATAL_ERROR "ROS_DISTRO is not set. Source /opt/ros/<distro>/setup.bash before packaging.")
endif()
if(NOT DEEP_ROBOTICS_MSG_ROS_DISTRO STREQUAL "foxy" AND
NOT DEEP_ROBOTICS_MSG_ROS_DISTRO STREQUAL "humble" AND
NOT DEEP_ROBOTICS_MSG_ROS_DISTRO STREQUAL "jazzy")
message(FATAL_ERROR "Unsupported ROS distro '${DEEP_ROBOTICS_MSG_ROS_DISTRO}'. Expected foxy, humble, or jazzy.")
endif()
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/package.xml" PACKAGE_XML)
string(REGEX MATCH "<version>([0-9]+\\.[0-9]+\\.[0-9]+)</version>" _VERSION_MATCH "${PACKAGE_XML}")
set(DEEP_ROBOTICS_MSG_VERSION "${CMAKE_MATCH_1}")
if(NOT DEEP_ROBOTICS_MSG_VERSION)
message(FATAL_ERROR "Unable to read package version from package.xml")
endif()
if(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64|ARM64")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "arm64")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
else()
message(FATAL_ERROR "Unsupported CMAKE_SYSTEM_PROCESSOR='${CMAKE_SYSTEM_PROCESSOR}'. Expected x86_64/amd64/aarch64/arm64.")
endif()
set(DEEP_ROBOTICS_MSG_DEBIAN_NAME "deep-robotics-msgs")
set(CPACK_PACKAGING_INSTALL_PREFIX "/opt/ros/${DEEP_ROBOTICS_MSG_ROS_DISTRO}")
set(CPACK_GENERATOR "DEB")
set(CPACK_PACKAGE_NAME "${DEEP_ROBOTICS_MSG_DEBIAN_NAME}")
set(CPACK_DEBIAN_PACKAGE_NAME "${DEEP_ROBOTICS_MSG_DEBIAN_NAME}")
set(CPACK_PACKAGE_VERSION "${DEEP_ROBOTICS_MSG_VERSION}")
set(CPACK_DEBIAN_PACKAGE_VERSION "${DEEP_ROBOTICS_MSG_VERSION}+${DEEP_ROBOTICS_MSG_ROS_DISTRO}")
set(CPACK_PACKAGE_FILE_NAME "${DEEP_ROBOTICS_MSG_DEBIAN_NAME}_${CPACK_DEBIAN_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "DEEPRobotics ROS 2 message and service interfaces.")
set(CPACK_PACKAGE_CONTACT "DEEPRobotics")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "DEEPRobotics")
set(CPACK_DEBIAN_PACKAGE_SECTION "devel")
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "ros-${DEEP_ROBOTICS_MSG_ROS_DISTRO}-rosidl-default-runtime, ros-${DEEP_ROBOTICS_MSG_ROS_DISTRO}-builtin-interfaces")
include(CPack)