build ros rolling image
This commit is contained in:
@@ -24,7 +24,7 @@ services:
|
|||||||
dockerfile: vendor_packages/Dockerfile.vendor_packages
|
dockerfile: vendor_packages/Dockerfile.vendor_packages
|
||||||
args:
|
args:
|
||||||
CC_PLATFORM_IMAGE: cc-${PLATFORM}:latest
|
CC_PLATFORM_IMAGE: cc-${PLATFORM}:latest
|
||||||
image: vendor-packages:${PLATFORM}
|
image: cc-vendor-packages:${PLATFORM}
|
||||||
depends_on:
|
depends_on:
|
||||||
- cc-platform
|
- cc-platform
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ services:
|
|||||||
ROS_DISTRO: rolling
|
ROS_DISTRO: rolling
|
||||||
PLATFORM: ${PLATFORM}
|
PLATFORM: ${PLATFORM}
|
||||||
CC_PLATFORM_IMAGE: cc-${PLATFORM}:latest
|
CC_PLATFORM_IMAGE: cc-${PLATFORM}:latest
|
||||||
VENDOR_PACKAGES_IMAGE: vendor-packages:${PLATFORM}
|
VENDOR_PACKAGES_IMAGE: cc-vendor-packages:${PLATFORM}
|
||||||
image: cc-ros-${ROS_DISTRO}:${PLATFORM}
|
image: cc-ros-${ROS_DISTRO}:${PLATFORM}
|
||||||
depends_on:
|
depends_on:
|
||||||
- vendor-packages
|
- vendor-packages
|
||||||
|
|||||||
@@ -15,11 +15,14 @@ FROM ${VENDOR_PACKAGES_IMAGE} AS vendor_images
|
|||||||
|
|
||||||
FROM ${CC_PLATFORM_IMAGE} AS ros_builder
|
FROM ${CC_PLATFORM_IMAGE} AS ros_builder
|
||||||
|
|
||||||
|
WORKDIR /workspace
|
||||||
COPY --from=ros_src /workspace /workspace
|
COPY --from=ros_src /workspace /workspace
|
||||||
COPY --from=vendor_images ${TARGET_SYSROOT} ${TARGET_SYSROOT}
|
COPY --from=vendor_images ${TARGET_SYSROOT} ${TARGET_SYSROOT}
|
||||||
|
COPY ros2/ros_cpp /workspace/src/ros_cpp
|
||||||
|
|
||||||
RUN touch src/ros2/geometry2/tf2_bullet/COLCON_IGNORE \
|
RUN touch src/ros2/geometry2/tf2_bullet/COLCON_IGNORE \
|
||||||
&& touch src/ros2/rosbag2/rosbag2_storage_sqlite3/COLCON_IGNORE
|
&& touch src/ros2/rosbag2/rosbag2_storage_sqlite3/COLCON_IGNORE \
|
||||||
|
&& touch src/ros-perception/image_transport_plugins/theora_image_transport/COLCON_IGNORE
|
||||||
|
|
||||||
RUN MAKEFLAGS="-j6" colcon build \
|
RUN MAKEFLAGS="-j6" colcon build \
|
||||||
--executor parallel \
|
--executor parallel \
|
||||||
@@ -36,3 +39,56 @@ RUN MAKEFLAGS="-j6" colcon build \
|
|||||||
-DBUILD_TESTING=OFF \
|
-DBUILD_TESTING=OFF \
|
||||||
-DTRACETOOLS_DISABLED=ON \
|
-DTRACETOOLS_DISABLED=ON \
|
||||||
-DCV_BRIDGE_DISABLE_PYTHON=ON
|
-DCV_BRIDGE_DISABLE_PYTHON=ON
|
||||||
|
|
||||||
|
# pybind11 python soabi issue
|
||||||
|
WORKDIR ${TARGET_SYSROOT}/lib/python3.10/site-packages/rclpy
|
||||||
|
RUN mv _rclpy_pybind11.cpython-310-x86_64-linux-gnu.so _rclpy_pybind11.cpython-310-aarch64-linux-gnu.so
|
||||||
|
WORKDIR ${TARGET_SYSROOT}/lib/python3.10/site-packages/rosbag2_py
|
||||||
|
RUN mv _transport.cpython-310-x86_64-linux-gnu.so _transport.cpython-310-aarch64-linux-gnu.so
|
||||||
|
RUN mv _info.cpython-310-x86_64-linux-gnu.so _info.cpython-310-aarch64-linux-gnu.so
|
||||||
|
RUN mv _compression_options.cpython-310-x86_64-linux-gnu.so _compression_options.cpython-310-aarch64-linux-gnu.so
|
||||||
|
RUN mv _storage.cpython-310-x86_64-linux-gnu.so _storage.cpython-310-aarch64-linux-gnu.so
|
||||||
|
RUN mv _reindexer.cpython-310-x86_64-linux-gnu.so _reindexer.cpython-310-aarch64-linux-gnu.so
|
||||||
|
RUN mv _writer.cpython-310-x86_64-linux-gnu.so _writer.cpython-310-aarch64-linux-gnu.so
|
||||||
|
RUN mv _message_definitions.cpython-310-x86_64-linux-gnu.so _message_definitions.cpython-310-aarch64-linux-gnu.so
|
||||||
|
RUN mv _reader.cpython-310-x86_64-linux-gnu.so _reader.cpython-310-aarch64-linux-gnu.so
|
||||||
|
|
||||||
|
FROM ${CC_PLATFORM_IMAGE} AS rmw_zenoh_builder
|
||||||
|
|
||||||
|
COPY --from=ros_builder ${TARGET_SYSROOT} ${TARGET_SYSROOT}
|
||||||
|
|
||||||
|
# rust install
|
||||||
|
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
|
||||||
|
RUN . "$HOME/.cargo/env" \
|
||||||
|
&& rustup install 1.75.0 \
|
||||||
|
&& rustup default 1.75.0 \
|
||||||
|
&& rustup target add aarch64-unknown-linux-gnu
|
||||||
|
|
||||||
|
RUN mkdir rmw_zenoh_ws/src -p \
|
||||||
|
&& cd rmw_zenoh_ws/src \
|
||||||
|
&& git clone -b rolling https://github.com/ros2/rmw_zenoh.git
|
||||||
|
|
||||||
|
ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-none-linux-gnu-gcc
|
||||||
|
|
||||||
|
RUN . "$HOME/.cargo/env" \
|
||||||
|
&& . ${TARGET_SYSROOT}/local_setup.sh \
|
||||||
|
&& colcon build \
|
||||||
|
--install-base ${TARGET_SYSROOT} \
|
||||||
|
--merge-install \
|
||||||
|
--packages-up-to rmw_zenoh_cpp \
|
||||||
|
--cmake-force-configure \
|
||||||
|
--cmake-args \
|
||||||
|
--no-warn-unused-cli \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_TOOLCHAIN_FILE=${CC_TOOLCHAIN_FILE} \
|
||||||
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||||
|
-DBUILD_TESTING=OFF \
|
||||||
|
-DZENOHC_CUSTOM_TARGET=aarch64-unknown-linux-gnu
|
||||||
|
|
||||||
|
RUN cp -rf ${TARGET_SYSROOT}/opt/zenoh_cpp_vendor/include ${TARGET_SYSROOT}
|
||||||
|
RUN cp -rf ${TARGET_SYSROOT}/opt/zenoh_cpp_vendor/lib ${TARGET_SYSROOT}
|
||||||
|
RUN rm -rf ${TARGET_SYSROOT}/opt
|
||||||
|
|
||||||
|
FROM ${CC_PLATFORM_IMAGE} AS final
|
||||||
|
|
||||||
|
COPY --from=rmw_zenoh_builder ${TARGET_SYSROOT} ${TARGET_SYSROOT}
|
||||||
|
|||||||
@@ -17,8 +17,6 @@
|
|||||||
<depend>opencv_vendor</depend> -->
|
<depend>opencv_vendor</depend> -->
|
||||||
<depend>console_bridge_vendor</depend>
|
<depend>console_bridge_vendor</depend>
|
||||||
|
|
||||||
<depend>rcl_lifecycle</depend>
|
|
||||||
|
|
||||||
<!-- rcl repo -->
|
<!-- rcl repo -->
|
||||||
<depend>rcl_lifecycle</depend>
|
<depend>rcl_lifecycle</depend>
|
||||||
|
|
||||||
|
|||||||
@@ -419,3 +419,15 @@ repositories:
|
|||||||
type: git
|
type: git
|
||||||
url: https://github.com/ros2/console_bridge_vendor.git
|
url: https://github.com/ros2/console_bridge_vendor.git
|
||||||
version: rolling
|
version: rolling
|
||||||
|
ros2/libyaml_vendor:
|
||||||
|
type: git
|
||||||
|
url: https://github.com/ros2/libyaml_vendor.git
|
||||||
|
version: rolling
|
||||||
|
ros2/spdlog_vendor:
|
||||||
|
type: git
|
||||||
|
url: https://github.com/ros2/spdlog_vendor.git
|
||||||
|
version: rolling
|
||||||
|
ros2/yaml_cpp_vendor:
|
||||||
|
type: git
|
||||||
|
url: https://github.com/ros2/yaml_cpp_vendor.git
|
||||||
|
version: rolling
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.8)
|
||||||
|
project(console_bridge_vendor)
|
||||||
|
|
||||||
|
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||||
|
add_compile_options(-Wall -Wextra -Wpedantic)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# uncomment the following section in order to fill in
|
||||||
|
# further dependencies manually.
|
||||||
|
# find_package(<dependency> REQUIRED)
|
||||||
|
|
||||||
|
include(ExternalProject)
|
||||||
|
ExternalProject_Add(
|
||||||
|
console_bridge_vendor
|
||||||
|
GIT_REPOSITORY https://github.com/ros/console_bridge.git
|
||||||
|
GIT_TAG 81ec67f6daf3cd19ef506e00f02efb1645597b9c
|
||||||
|
|
||||||
|
CMAKE_ARGS
|
||||||
|
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||||
|
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
|
||||||
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||||
|
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
|
||||||
|
-DBUILD_TESTING=OFF
|
||||||
|
)
|
||||||
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
|
||||||
|
<package format="3">
|
||||||
|
<name>console_bridge_vendor</name>
|
||||||
|
<version>0.0.0</version>
|
||||||
|
<description>TODO: Package description</description>
|
||||||
|
<maintainer email="ericzhao0325@163.com">ericx</maintainer>
|
||||||
|
<license>TODO: License declaration</license>
|
||||||
|
|
||||||
|
<export>
|
||||||
|
<build_type>cmake</build_type>
|
||||||
|
</export>
|
||||||
|
</package>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.8)
|
||||||
|
project(json_vendor)
|
||||||
|
|
||||||
|
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||||
|
add_compile_options(-Wall -Wextra -Wpedantic)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# uncomment the following section in order to fill in
|
||||||
|
# further dependencies manually.
|
||||||
|
# find_package(<dependency> REQUIRED)
|
||||||
|
|
||||||
|
include(FetchContent)
|
||||||
|
FetchContent_Declare(
|
||||||
|
json_vendor
|
||||||
|
URL https://github.com/nlohmann/json/archive/refs/tags/v3.12.0.tar.gz
|
||||||
|
)
|
||||||
|
|
||||||
|
set(CMAKE_BUILD_TYPE Release)
|
||||||
|
set(JSON_BuildTests OFF CACHE BOOL "JSON_BuildTests" FORCE)
|
||||||
|
set(JSON_Install ON CACHE BOOL "JSON_Install" FORCE)
|
||||||
|
|
||||||
|
FetchContent_MakeAvailable(json_vendor)
|
||||||
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
|
||||||
|
<package format="3">
|
||||||
|
<name>json_vendor</name>
|
||||||
|
<version>0.0.0</version>
|
||||||
|
<description>TODO: Package description</description>
|
||||||
|
<maintainer email="ericzhao0325@163.com">ericx</maintainer>
|
||||||
|
<license>TODO: License declaration</license>
|
||||||
|
|
||||||
|
<export>
|
||||||
|
<build_type>cmake</build_type>
|
||||||
|
</export>
|
||||||
|
</package>
|
||||||
@@ -12,13 +12,15 @@ endif()
|
|||||||
include(FetchContent)
|
include(FetchContent)
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
spdlog_vendor
|
spdlog_vendor
|
||||||
URL https://github.com/gabime/spdlog/archive/refs/tags/v1.17.0.tar.gz
|
URL https://github.com/gabime/spdlog/archive/refs/tags/v1.12.0.tar.gz
|
||||||
)
|
)
|
||||||
|
|
||||||
set(CMAKE_BUILD_TYPE Release)
|
set(CMAKE_BUILD_TYPE Release)
|
||||||
|
set(SPDLOG_BUILD_SHARED ON CACHE BOOL "SPDLOG_BUILD_SHARED" FORCE)
|
||||||
set(SPDLOG_BUILD_TESTS OFF CACHE BOOL "SPDLOG_BUILD_TESTS" FORCE)
|
set(SPDLOG_BUILD_TESTS OFF CACHE BOOL "SPDLOG_BUILD_TESTS" FORCE)
|
||||||
set(SPDLOG_BUILD_EXAMPLE OFF CACHE BOOL "SPDLOG_BUILD_EXAMPLE" FORCE)
|
set(SPDLOG_BUILD_EXAMPLE OFF CACHE BOOL "SPDLOG_BUILD_EXAMPLE" FORCE)
|
||||||
set(SPDLOG_INSTALL ON CACHE BOOL "SPDLOG_INSTALL" FORCE)
|
set(SPDLOG_INSTALL ON CACHE BOOL "SPDLOG_INSTALL" FORCE)
|
||||||
|
set(SPDLOG_BUILD_PIC ON CACHE BOOL "SPDLOG_BUILD_PIC" FORCE)
|
||||||
|
|
||||||
FetchContent_MakeAvailable(spdlog_vendor)
|
FetchContent_MakeAvailable(spdlog_vendor)
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,9 @@
|
|||||||
<depend>pybind11_vendor</depend>
|
<depend>pybind11_vendor</depend>
|
||||||
<depend>spdlog_vendor</depend>
|
<depend>spdlog_vendor</depend>
|
||||||
<depend>asio_vendor</depend>
|
<depend>asio_vendor</depend>
|
||||||
|
<depend>console_bridge_vendor</depend>
|
||||||
|
<depend>zlib_vendor</depend>
|
||||||
|
<depend>json_vendor</depend>
|
||||||
|
|
||||||
<export>
|
<export>
|
||||||
<build_type>cmake</build_type>
|
<build_type>cmake</build_type>
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.8)
|
||||||
|
project(zlib_vendor)
|
||||||
|
|
||||||
|
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||||
|
add_compile_options(-Wall -Wextra -Wpedantic)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# uncomment the following section in order to fill in
|
||||||
|
# further dependencies manually.
|
||||||
|
# find_package(<dependency> REQUIRED)
|
||||||
|
|
||||||
|
include(FetchContent)
|
||||||
|
FetchContent_Declare(
|
||||||
|
zlib_vendor
|
||||||
|
URL https://github.com/madler/zlib/archive/refs/tags/v1.3.1.tar.gz
|
||||||
|
)
|
||||||
|
|
||||||
|
set(CMAKE_BUILD_TYPE Release)
|
||||||
|
set(ZLIB_BUILD_EXAMPLES OFF CACHE BOOL "ZLIB_BUILD_EXAMPLES" FORCE)
|
||||||
|
|
||||||
|
FetchContent_MakeAvailable(zlib_vendor)
|
||||||
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
|
||||||
|
<package format="3">
|
||||||
|
<name>zlib_vendor</name>
|
||||||
|
<version>0.0.0</version>
|
||||||
|
<description>TODO: Package description</description>
|
||||||
|
<maintainer email="ericzhao0325@163.com">ericx</maintainer>
|
||||||
|
<license>TODO: License declaration</license>
|
||||||
|
|
||||||
|
<export>
|
||||||
|
<build_type>cmake</build_type>
|
||||||
|
</export>
|
||||||
|
</package>
|
||||||
Reference in New Issue
Block a user