diff --git a/cross_compile/compose.yaml b/cross_compile/compose.yaml index 5523ca2..15ebc06 100644 --- a/cross_compile/compose.yaml +++ b/cross_compile/compose.yaml @@ -13,19 +13,17 @@ services: build: context: . # 上下文设为根目录,这样才能同时访问 rk3588 文件夹 dockerfile: ${PLATFORM}/Dockerfile.cc_${PLATFORM} - args: - - BASE_TAG=latest image: cc-${PLATFORM}:latest depends_on: - cc-base # 第三步:编译最终的供应商包镜像 - vendor_packages: + vendor-packages: build: context: . dockerfile: vendor_packages/Dockerfile.vendor_packages args: - - BASE_IMAGE=cc-${PLATFORM}:latest + CC_PLATFORM_IMAGE: cc-${PLATFORM}:latest image: vendor-packages:${PLATFORM} depends_on: - cc-platform @@ -35,10 +33,10 @@ services: context: . dockerfile: ros2/Dockerfile.ros_${ROS_DISTRO} args: - - ROS_DISTRO=rolling - - PLATFORM=${PLATFORM} - - CC_PLATFORM_IMAGE=cc-${PLATFORM}:latest - - VENDOR_PACKAGES=vendor-packages:${PLATFORM} + ROS_DISTRO: rolling + PLATFORM: ${PLATFORM} + CC_PLATFORM_IMAGE: cc-${PLATFORM}:latest + VENDOR_PACKAGES_IMAGE: vendor-packages:${PLATFORM} image: cc-ros-${ROS_DISTRO}:${PLATFORM} depends_on: - - vendor_packages + - vendor-packages diff --git a/cross_compile/ros2/Dockerfile.ros_rolling b/cross_compile/ros2/Dockerfile.ros_rolling index d0c096b..f66195e 100644 --- a/cross_compile/ros2/Dockerfile.ros_rolling +++ b/cross_compile/ros2/Dockerfile.ros_rolling @@ -1,8 +1,7 @@ ARG CC_PLATFORM_IMAGE -ARG VENDOR_PACKAGES -ARG PLATFORM +ARG VENDOR_PACKAGES_IMAGE -FROM ${CC_PLATFORM_IMAGE} as ros_src +FROM ${CC_PLATFORM_IMAGE} AS ros_src ARG ROS_DISTRO @@ -12,9 +11,28 @@ COPY ros2/ros_rolling.repos . RUN vcs import --input ros_${ROS_DISTRO}.repos src RUN echo "Build ros ${ROS_DISTRO}" -FROM vendor-packages:${PLATFORM} AS vendor_images +FROM ${VENDOR_PACKAGES_IMAGE} AS vendor_images -FROM ${CC_PLATFORM_IMAGE} as ros_builder +FROM ${CC_PLATFORM_IMAGE} AS ros_builder COPY --from=ros_src /workspace /workspace COPY --from=vendor_images ${TARGET_SYSROOT} ${TARGET_SYSROOT} + +RUN touch src/ros2/geometry2/tf2_bullet/COLCON_IGNORE \ + && touch src/ros2/rosbag2/rosbag2_storage_sqlite3/COLCON_IGNORE + +RUN MAKEFLAGS="-j6" colcon build \ + --executor parallel \ + --parallel-workers 6 \ + --install-base ${TARGET_SYSROOT} \ + --merge-install \ + --packages-up-to ros_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 \ + -DTRACETOOLS_DISABLED=ON \ + -DCV_BRIDGE_DISABLE_PYTHON=ON diff --git a/cross_compile/ros2/ros_cpp/CMakeLists.txt b/cross_compile/ros2/ros_cpp/CMakeLists.txt new file mode 100644 index 0000000..52bafd6 --- /dev/null +++ b/cross_compile/ros2/ros_cpp/CMakeLists.txt @@ -0,0 +1,6 @@ +cmake_minimum_required(VERSION 3.8) +project(ros_cpp) + +find_package(ament_cmake REQUIRED) + +ament_package() \ No newline at end of file diff --git a/cross_compile/ros2/ros_cpp/package.xml b/cross_compile/ros2/ros_cpp/package.xml new file mode 100644 index 0000000..3dfae6c --- /dev/null +++ b/cross_compile/ros2/ros_cpp/package.xml @@ -0,0 +1,94 @@ + + + + ros_cpp + 0.0.0 + TODO: Package description + ericx + TODO: License declaration + + ament_cmake + + ament_cmake_auto + + + console_bridge_vendor + + rcl_lifecycle + + + rcl_lifecycle + + + rclcpp + rclcpp_action + rclcpp_lifecycle + + + rclpy + + + rosidl_default_generators + rosidl_default_runtime + + + ros_environment + + + common_interfaces + + + launch + launch_testing + launch_testing_ament_cmake + launch_xml + launch_yaml + + + launch_ros + launch_testing_ros + ros2launch + + + ros2cli_common_extensions + + + class_loader + + pluginlib + + + rosbag2 + + + geometry2 + + diagnostics + + + + + image_common + image_pipeline + image_transport_plugins + + + + + perception_pcl + vision_opencv + vision_msgs + ffmpeg_image_transport_msgs + eigen_stl_containers + angles + geographic_info + urdf + + + ament_cmake + + \ No newline at end of file diff --git a/cross_compile/ros2/ros_rolling.repos b/cross_compile/ros2/ros_rolling.repos index ce9a3b6..29e4f4b 100644 --- a/cross_compile/ros2/ros_rolling.repos +++ b/cross_compile/ros2/ros_rolling.repos @@ -415,3 +415,7 @@ repositories: type: git url: https://github.com/ros-perception/vision_opencv.git version: rolling + ros2/console_bridge_vendor: + type: git + url: https://github.com/ros2/console_bridge_vendor.git + version: rolling