# topdir: ament_cmake-2.9.2 (from --transform; no upstream release tag for 2.9.2, # source is rolling branch HEAD commit 3148e68c3a0fe34cec40c6563c9020261f010fab) %define ros_distro humble # ros_distro is not in session.json; derived from COPR project name ROS-humble-2. Name: ament_cmake Version: 2.9.2 Release: 1%{?dist} Summary: The entry point package for the ament buildsystem in CMake License: Apache-2.0 URL: https://github.com/ament/ament_cmake Source0: https://github.com/ament/ament_cmake/archive/3148e68c3a0fe34cec40c6563c9020261f010fab.tar.gz#/%{name}-%{version}.tar.gz # ament_cmake is the ROS 2 ament CMake buildsystem. It is a monorepo of ~22 # sub-packages, each with its own package.xml + CMakeLists.txt (no top-level # CMakeLists.txt). This SRPM builds them all in topological order into one RPM. BuildRequires: cmake BuildRequires: make BuildRequires: gcc-c++ BuildRequires: python3-devel BuildRequires: python3-catkin_pkg # package_xml_2_cmake.py (ament_cmake_core) imports catkin_pkg.package at configure time BuildRequires: python3-ament-package # templates_2_cmake.py (ament_cmake_core) imports ament_package.templates at configure time BuildRequires: python3-setuptools BuildRequires: python3-pip BuildRequires: python3-wheel BuildRequires: gcc # pre_check completeness gate: default Python build toolchain (available in official repos) # ROS layout: install to /opt/ros/; no debug subpackage; strip brp bytecompile %global debug_package %{nil} %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') %global __provides_exclude_from ^/opt/ros/%{ros_distro}/.*$ %global __requires_exclude_from ^/opt/ros/%{ros_distro}/.*$ # Single package, no real subpackages; provide the conventional aliases. Provides: %{name}-devel = %{version}-%{release} Provides: %{name}-doc = %{version}-%{release} Provides: %{name}-runtime = %{version}-%{release} %description The entry point package for the ament buildsystem in CMake. This package aggregates the ament_cmake CMake buildsystem components (ament_cmake_core and the export/test/python/gmock/gtest sub-packages), installed under /opt/ros/%{ros_distro}. %prep %autosetup -n %{name}-%{version} %build # ament_cmake IS the ROS buildsystem bootstrap: the buildroot has no # pre-existing /opt/ros//setup.sh, so guard any sourcing. [ -f /opt/ros/%{ros_distro}/setup.sh ] && . /opt/ros/%{ros_distro}/setup.sh || true export CMAKE_PREFIX_PATH="%{buildroot}/opt/ros/%{ros_distro}${CMAKE_PREFIX_PATH:+:${CMAKE_PREFIX_PATH}}" export AMENT_PREFIX_PATH="%{buildroot}/opt/ros/%{ros_distro}" export PYTHONPATH="/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages${PYTHONPATH:+:$PYTHONPATH}" export PKG_CONFIG_PATH="/opt/ros/%{ros_distro}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" # Topological build order (derived from each package.xml buildtool/build deps). # With BUILD_TESTING=OFF the test-only find_package() calls are skipped, so # ament_cmake_gen_version_h does not need ament_cmake_gtest, etc. SUBPKGS=" \ ament_cmake_core \ ament_cmake_export_definitions \ ament_cmake_export_dependencies \ ament_cmake_export_include_directories \ ament_cmake_export_libraries \ ament_cmake_export_link_flags \ ament_cmake_export_targets \ ament_cmake_gen_version_h \ ament_cmake_gmock \ ament_cmake_gtest \ ament_cmake_include_directories \ ament_cmake_libraries \ ament_cmake_python \ ament_cmake_target_dependencies \ ament_cmake_version \ ament_cmake_vendor_package \ ament_cmake_test \ ament_cmake \ ament_cmake_google_benchmark \ ament_cmake_pytest \ ament_cmake_auto \ ament_cmake_python_test \ " for pkg in $SUBPKGS; do echo "===== building $pkg =====" cmake -S "$pkg" -B ".obj/$pkg" \ -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}" \ -DCMAKE_PREFIX_PATH="%{buildroot}/opt/ros/%{ros_distro}" \ -DAMENT_PREFIX_PATH="%{buildroot}/opt/ros/%{ros_distro}" \ -DBUILD_TESTING=OFF \ -DTESTING=OFF \ -DCMAKE_SUPPRESS_REGENERATION=ON \ -DSETUPTOOLS_DEB_LAYOUT=OFF \ -UINCLUDE_INSTALL_DIR -ULIB_INSTALL_DIR -USYSCONF_INSTALL_DIR \ -USHARE_INSTALL_PREFIX -ULIB_SUFFIX \ -DCMAKE_C_FLAGS="%{optflags}" \ -DCMAKE_CXX_FLAGS="%{optflags}" \ -G "Unix Makefiles" cmake --build ".obj/$pkg" --verbose -- -j%{?_smp_mflags} DESTDIR="%{buildroot}" cmake --install ".obj/$pkg" done %install # Everything installed into the buildroot by %build; nothing more to do. %files /opt/ros/%{ros_distro} %license LICENSE %changelog * Fri Oct 09 2026 AI Importer - 2.9.2-1 - Initial packaging of ament_cmake 2.9.2 (ROS ament CMake buildsystem) - Builds all 22 sub-packages in topological order into /opt/ros/humble