From d3ea9923cda7562c783f4016bf659b1fbd630073 Mon Sep 17 00:00:00 2001 From: daohu527 Date: Tue, 17 Feb 2026 20:51:09 +0800 Subject: [PATCH] feat: refactor docker build to buildx --- docker/build/README.md | 54 +- docker/build/base.aarch64.cuda.dockerfile | 63 +-- docker/build/base.x86_64.cuda.dockerfile | 39 +- docker/build/build_docker.sh | 475 +++++------------- docker/build/dev.aarch64.cuda.dockerfile | 12 +- docker/build/dev.x86_64.cuda.dockerfile | 14 +- docker/build/docker-bake.hcl | 140 ++++++ .../build/installers/install_gpu_support.sh | 22 +- docker/build/installers/install_libtorch.sh | 63 ++- docker/build/installers/install_opencv.sh | 52 +- .../sources.list.cn.aarch64.ubuntu.22.04 | 10 + .../sources.list.cn.x86_64.ubuntu.22.04 | 10 + .../sources.list.us.aarch64.ubuntu.22.04 | 10 + .../sources.list.us.x86_64.ubuntu.22.04 | 10 + third_party/absl/3rd-absl.BUILD | 12 - third_party/absl/BUILD | 21 - third_party/absl/absl.BUILD | 15 - third_party/absl/grpc.patch | 12 - third_party/absl/workspace.bzl | 15 - third_party/benchmark/3rd-benchmark.BUILD | 27 - third_party/benchmark/BUILD | 21 - third_party/benchmark/benchmark.BUILD | 28 -- third_party/benchmark/workspace.bzl | 26 - third_party/boost/3rd-boost.BUILD | 19 - third_party/boost/BUILD | 21 - third_party/boost/boost.BUILD | 19 - third_party/boost/workspace.bzl | 13 - third_party/civetweb/BUILD | 49 -- third_party/civetweb/civetweb.BUILD | 97 ---- third_party/civetweb/init.bzl | 6 - third_party/civetweb/workspace.bzl | 20 - third_party/cpplint/BUILD | 20 - third_party/cpplint/cpplint.BUILD | 30 -- third_party/cpplint/init.bzl | 6 - third_party/cpplint/workspace.bzl | 20 - third_party/eigen3/BUILD | 20 - third_party/eigen3/eigen.BUILD | 59 --- third_party/eigen3/init.bzl | 6 - third_party/eigen3/workspace.bzl | 25 - third_party/fastrtps/3rd-fastrtps.BUILD | 16 - third_party/fastrtps/BUILD | 21 - third_party/fastrtps/fastcdr.BUILD | 13 - third_party/fastrtps/fastrtps.BUILD | 14 - third_party/fastrtps/workspace.bzl | 19 - third_party/gflags/3rd-gflags.BUILD | 16 - third_party/gflags/BUILD | 21 - .../gflags/gflags-2.2.2-shared-library.patch | 62 --- third_party/gflags/gflags.BUILD | 15 - third_party/gflags/workspace.bzl | 13 - third_party/glog/3rd-glog.BUILD | 15 - third_party/glog/BUILD | 21 - .../glog/glog-0.7.1-gflags-coredump.patch | 11 - third_party/glog/glog.BUILD | 15 - third_party/glog/workspace.bzl | 13 - third_party/gtest/BUILD | 20 - third_party/gtest/init.bzl | 6 - third_party/gtest/workspace.bzl | 15 - third_party/ncurses5/3rd-ncurses5.BUILD | 17 - third_party/ncurses5/BUILD | 21 - third_party/ncurses5/ncurses.BUILD | 16 - third_party/ncurses5/workspace.bzl | 15 - third_party/nlohmann_json/BUILD | 20 - third_party/nlohmann_json/init.bzl | 6 - third_party/nlohmann_json/json.BUILD | 24 - third_party/nlohmann_json/workspace.bzl | 20 - third_party/portaudio/3rd-portaudio.BUILD | 18 - third_party/portaudio/BUILD | 21 - third_party/portaudio/portaudio.BUILD | 18 - third_party/portaudio/workspace.bzl | 13 - third_party/protobuf/BUILD | 20 - third_party/protobuf/init.bzl | 6 - third_party/protobuf/protobuf.patch | 68 --- third_party/protobuf/workspace.bzl | 17 - third_party/sqlite3/3rd-sqlite3.BUILD | 17 - third_party/sqlite3/BUILD | 21 - third_party/sqlite3/sqlite3.BUILD | 16 - third_party/sqlite3/workspace.bzl | 16 - third_party/sse2neon/BUILD | 0 third_party/sse2neon/sse2neon.BUILD | 13 - third_party/sse2neon/workspace.bzl | 19 - third_party/tinyxml2/3rd-tinyxml2.BUILD | 13 - third_party/tinyxml2/BUILD | 20 - third_party/tinyxml2/tinyxml2.BUILD | 12 - third_party/tinyxml2/workspace.bzl | 14 - third_party/uuid/3rd-uuid.BUILD | 17 - third_party/uuid/BUILD | 21 - third_party/uuid/uuid.BUILD | 16 - third_party/uuid/workspace.bzl | 15 - third_party/yaml_cpp/BUILD | 20 - third_party/yaml_cpp/init.bzl | 6 - third_party/yaml_cpp/workspace.bzl | 20 - third_party/yaml_cpp/yaml_cpp.BUILD | 35 -- tools/workspace.bzl | 43 -- 93 files changed, 484 insertions(+), 2097 deletions(-) mode change 100755 => 100644 docker/build/build_docker.sh create mode 100644 docker/build/docker-bake.hcl create mode 100644 docker/build/rcfiles/sources.list.cn.aarch64.ubuntu.22.04 create mode 100644 docker/build/rcfiles/sources.list.cn.x86_64.ubuntu.22.04 create mode 100644 docker/build/rcfiles/sources.list.us.aarch64.ubuntu.22.04 create mode 100644 docker/build/rcfiles/sources.list.us.x86_64.ubuntu.22.04 delete mode 100644 third_party/absl/3rd-absl.BUILD delete mode 100644 third_party/absl/BUILD delete mode 100644 third_party/absl/absl.BUILD delete mode 100644 third_party/absl/grpc.patch delete mode 100644 third_party/absl/workspace.bzl delete mode 100644 third_party/benchmark/3rd-benchmark.BUILD delete mode 100644 third_party/benchmark/BUILD delete mode 100644 third_party/benchmark/benchmark.BUILD delete mode 100644 third_party/benchmark/workspace.bzl delete mode 100644 third_party/boost/3rd-boost.BUILD delete mode 100644 third_party/boost/BUILD delete mode 100644 third_party/boost/boost.BUILD delete mode 100644 third_party/boost/workspace.bzl delete mode 100644 third_party/civetweb/BUILD delete mode 100644 third_party/civetweb/civetweb.BUILD delete mode 100644 third_party/civetweb/init.bzl delete mode 100644 third_party/civetweb/workspace.bzl delete mode 100644 third_party/cpplint/BUILD delete mode 100644 third_party/cpplint/cpplint.BUILD delete mode 100644 third_party/cpplint/init.bzl delete mode 100644 third_party/cpplint/workspace.bzl delete mode 100644 third_party/eigen3/BUILD delete mode 100644 third_party/eigen3/eigen.BUILD delete mode 100644 third_party/eigen3/init.bzl delete mode 100644 third_party/eigen3/workspace.bzl delete mode 100644 third_party/fastrtps/3rd-fastrtps.BUILD delete mode 100644 third_party/fastrtps/BUILD delete mode 100644 third_party/fastrtps/fastcdr.BUILD delete mode 100644 third_party/fastrtps/fastrtps.BUILD delete mode 100644 third_party/fastrtps/workspace.bzl delete mode 100644 third_party/gflags/3rd-gflags.BUILD delete mode 100644 third_party/gflags/BUILD delete mode 100644 third_party/gflags/gflags-2.2.2-shared-library.patch delete mode 100644 third_party/gflags/gflags.BUILD delete mode 100644 third_party/gflags/workspace.bzl delete mode 100644 third_party/glog/3rd-glog.BUILD delete mode 100644 third_party/glog/BUILD delete mode 100644 third_party/glog/glog-0.7.1-gflags-coredump.patch delete mode 100644 third_party/glog/glog.BUILD delete mode 100644 third_party/glog/workspace.bzl delete mode 100644 third_party/gtest/BUILD delete mode 100644 third_party/gtest/init.bzl delete mode 100644 third_party/gtest/workspace.bzl delete mode 100644 third_party/ncurses5/3rd-ncurses5.BUILD delete mode 100644 third_party/ncurses5/BUILD delete mode 100644 third_party/ncurses5/ncurses.BUILD delete mode 100644 third_party/ncurses5/workspace.bzl delete mode 100644 third_party/nlohmann_json/BUILD delete mode 100644 third_party/nlohmann_json/init.bzl delete mode 100644 third_party/nlohmann_json/json.BUILD delete mode 100644 third_party/nlohmann_json/workspace.bzl delete mode 100644 third_party/portaudio/3rd-portaudio.BUILD delete mode 100644 third_party/portaudio/BUILD delete mode 100644 third_party/portaudio/portaudio.BUILD delete mode 100644 third_party/portaudio/workspace.bzl delete mode 100644 third_party/protobuf/BUILD delete mode 100644 third_party/protobuf/init.bzl delete mode 100644 third_party/protobuf/protobuf.patch delete mode 100644 third_party/protobuf/workspace.bzl delete mode 100644 third_party/sqlite3/3rd-sqlite3.BUILD delete mode 100644 third_party/sqlite3/BUILD delete mode 100644 third_party/sqlite3/sqlite3.BUILD delete mode 100644 third_party/sqlite3/workspace.bzl delete mode 100644 third_party/sse2neon/BUILD delete mode 100644 third_party/sse2neon/sse2neon.BUILD delete mode 100644 third_party/sse2neon/workspace.bzl delete mode 100644 third_party/tinyxml2/3rd-tinyxml2.BUILD delete mode 100644 third_party/tinyxml2/BUILD delete mode 100644 third_party/tinyxml2/tinyxml2.BUILD delete mode 100644 third_party/tinyxml2/workspace.bzl delete mode 100644 third_party/uuid/3rd-uuid.BUILD delete mode 100644 third_party/uuid/BUILD delete mode 100644 third_party/uuid/uuid.BUILD delete mode 100644 third_party/uuid/workspace.bzl delete mode 100644 third_party/yaml_cpp/BUILD delete mode 100644 third_party/yaml_cpp/init.bzl delete mode 100644 third_party/yaml_cpp/workspace.bzl delete mode 100644 third_party/yaml_cpp/yaml_cpp.BUILD diff --git a/docker/build/README.md b/docker/build/README.md index 6f47dfac..3b009d34 100644 --- a/docker/build/README.md +++ b/docker/build/README.md @@ -5,46 +5,66 @@ Apollo runs within Docker containers, with images tailored for development and deployment. We currently support `x86_64` and `aarch64` architectures. +Build orchestration is now standardized on `docker buildx bake`. + +- `x86_64`: based on `nvidia/cuda` official images. +- `aarch64` (Jetson): based on `nvcr.io/nvidia/l4t-jetpack` (L4T). + **Image Types:** -- **Cyber (Base/Cyber)**: Core CyberRT framework, ideal for CyberRT-focused - development. +- **Base**: Foundational CUDA/ML runtime layer for Apollo docker builds. - **Dev**: Full Apollo project with development toolchain, for building and running the entire Apollo stack. - **Runtime**: Optimized, minimal image for production deployment. ## Quick Start -Use the `./build_docker.sh` script to build images. +Use `docker buildx bake` directly, or keep using `./build_docker.sh` as a +compatibility wrapper around bake. + +### 0. Prepare Buildx Builder + +```bash +docker buildx create --name apollo-builder --use --bootstrap || docker buildx use apollo-builder +``` -### 1. Build CyberRT Image +### 1. Build Base Image -Builds the base development environment including CUDA/CuDNN/TensorRT and the -CyberRT framework. +Builds the foundational environment including CUDA/CuDNN/TensorRT and core +system dependencies. ```bash cd docker/build -# Build x86_64 CyberRT image (default: download pre-built dependencies) -./build_docker.sh -f cyber.x86_64.dockerfile +# Build x86_64 Base image +./build_docker.sh -f base.x86_64.cuda.dockerfile + +# Equivalent direct bake command +docker buildx bake -f docker-bake.hcl base-x86_64-cuda # For users in mainland China (accelerated mirrors) -./build_docker.sh -f cyber.x86_64.dockerfile -g cn +./build_docker.sh -f base.x86_64.cuda.dockerfile -g cn # Build all dependencies from source (takes longer) -./build_docker.sh -f dev.x86_64.cpu.dockerfile -m build +./build_docker.sh -f dev.x86_64.cuda.dockerfile -m build ``` ### 2. Build Apollo Dev Image -Builds the full Apollo development image, based on a CyberRT image. +Builds the full Apollo development image, based on a Base image. ```bash # Build x86_64 Dev image -./build_docker.sh -f dev.x86_64.dockerfile +./build_docker.sh -f dev.x86_64.cuda.dockerfile # Build aarch64 Dev image (ensure qemu-user-static is configured for cross-arch builds) -./build_docker.sh -f dev.aarch64.dockerfile -m download +./build_docker.sh -f dev.aarch64.cuda.dockerfile -m download + +# Build all base images in one shot +docker buildx bake -f docker-bake.hcl base + +# Build all dev images in one shot +docker buildx bake -f docker-bake.hcl dev ``` ### 3. Build Apollo Runtime Image @@ -76,13 +96,19 @@ Usage: build_docker.sh -f [Options] Options: - -f, --dockerfile Path to the Dockerfile (e.g., 'cyber.x86_64.dockerfile'). + -f, --dockerfile Path to the Dockerfile (e.g., 'base.x86_64.cuda.dockerfile'). -c, --clean Disable Docker build cache (--no-cache=true). -m, --mode Installation mode: 'download' (default, use pre-built), 'build' (build from source). -g, --geo Enable geo-specific mirrors ('cn' or 'us', default 'us'). -t, --timestamp Timestamp of the previous stage image (YYYYMMDD_HHMM). --dry Dry run (print commands without execution). -h, --help Show help message and exit. + + Additional wrapper options: + + --l4t-tag L4T tag for Jetson base (default: r36.4.0) + --push Push images to registry + --no-load Do not load images into local docker daemon ``` --- diff --git a/docker/build/base.aarch64.cuda.dockerfile b/docker/build/base.aarch64.cuda.dockerfile index bda6066e..2f600207 100644 --- a/docker/build/base.aarch64.cuda.dockerfile +++ b/docker/build/base.aarch64.cuda.dockerfile @@ -1,9 +1,11 @@ -#ARG BASE_IMAGE=nvcr.io/nvidia/l4t-jetpack:r35.4.1 -ARG BASE_IMAGE=nvidia/cuda:11.4.3-cudnn8-devel-ubuntu20.04 +ARG BASE_IMAGE=nvcr.io/nvidia/l4t-jetpack:r36.4.0 FROM ${BASE_IMAGE} -ARG TENSORRT_VERSION="8.5.2" -ARG PATCH_SUFFIX="-1+cuda11.4" +ARG CUDA_TOOLKIT_VERSION="12.6.68" +ARG CUDNN_VERSION="9.3.0.75" +ARG TENSORRT_VERSION="10.3.0.30" +ARG VPI_VERSION="3.2.4" +ARG VULKAN_VERSION="1.3.204" ARG GEOLOC ARG DEBIAN_FRONTEND=noninteractive @@ -14,58 +16,21 @@ RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -qq -y --no-install-recommends \ ca-certificates \ - gnupg2 && \ + gnupg2 \ + curl \ + libvulkan1 \ + vulkan-tools && \ rm -rf /var/lib/apt/lists/* && apt-get clean -# consistent with the host system, for jetson orin, if not, please modify it manually -ADD https://repo.download.nvidia.com/jetson/jetson-ota-public.asc /etc/apt/trusted.gpg.d/jetson-ota-public.asc -RUN chmod +r /etc/apt/trusted.gpg.d/jetson-ota-public.asc -COPY rcfiles/nvidia-jetson-common-r35.4-main.list /etc/apt/sources.list.d/nvidia-jetson-common-r35.4-main.list - -# change source list for cn -COPY rcfiles/sources.list.tsinghua.aarch64.ubuntu.20.04 /etc/apt/sources.list - # Add NVIDIA Tegra library paths RUN echo "/usr/lib/aarch64-linux-gnu/tegra" >> /etc/ld.so.conf.d/nvidia-tegra.conf && \ echo "/usr/lib/aarch64-linux-gnu/tegra-egl" >> /etc/ld.so.conf.d/nvidia-tegra.conf -# -# Install nvidia-cuda-dev for CUDA developer packages -# Use nvidia-cuda if need CUDA runtime only -# -# RUN --mount=type=bind,source=rcfiles/sources.list.local.aarch64.ubuntu.20.04,target=/etc/apt/sources.list \ -# --mount=type=bind,source=rcfiles/wheelos.cn.public.gpg,target=/opt/apollo/rcfiles/wheelos.cn.public.gpg \ -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - nvidia-cuda-dev && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* - -# -# Install nvidia-cudnn8-dev for CuDNN developer packages -# Use nvidia-cudnn8 if need CuDNN runtime only -# -# RUN --mount=type=bind,source=rcfiles/sources.list.local.aarch64.ubuntu.20.04,target=/etc/apt/sources.list \ -# --mount=type=bind,source=rcfiles/wheelos.cn.public.gpg,target=/opt/apollo/rcfiles/wheelos.cn.public.gpg \ -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - nvidia-cudnn8-dev && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* - -# -# Install nvidia-tensorrt-dev for TensorRT developer packages -# Use nvidia-tensorrt if need TensorRT runtime only -# -# RUN --mount=type=bind,source=rcfiles/sources.list.local.aarch64.ubuntu.20.04,target=/etc/apt/sources.list \ -# --mount=type=bind,source=rcfiles/wheelos.cn.public.gpg,target=/opt/apollo/rcfiles/wheelos.cn.public.gpg \ -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - nvidia-tensorrt-dev && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* - ENV NVIDIA_VISIBLE_DEVICES all ENV NVIDIA_DRIVER_CAPABILITIES all +ENV CUDA_TOOLKIT_VERSION=${CUDA_TOOLKIT_VERSION} +ENV CUDNN_VERSION=${CUDNN_VERSION} ENV TENSORRT_VERSION=${TENSORRT_VERSION} +ENV VPI_VERSION=${VPI_VERSION} +ENV VULKAN_VERSION=${VULKAN_VERSION} diff --git a/docker/build/base.x86_64.cuda.dockerfile b/docker/build/base.x86_64.cuda.dockerfile index 1ba26799..72068c81 100644 --- a/docker/build/base.x86_64.cuda.dockerfile +++ b/docker/build/base.x86_64.cuda.dockerfile @@ -1,13 +1,14 @@ -ARG BASE_IMAGE=nvidia/cuda:11.8.0-cudnn8-devel-ubuntu20.04 +ARG BASE_IMAGE=nvidia/cuda:12.6.3-cudnn-devel-ubuntu22.04 FROM ${BASE_IMAGE} -ARG TENSORRT_VERSION="8.6.1.6" -ARG PATCH_SUFFIX="-1+cuda11.8" +ARG CUDA_TOOLKIT_VERSION="12.6.68" +ARG CUDNN_VERSION="9.3.0.75" +ARG TENSORRT_VERSION="10.3.0.30" +ARG VPI_VERSION="3.2.4" +ARG VULKAN_VERSION="1.3.204" LABEL maintainer="WheelOS " -COPY rcfiles/sources.list.tsinghua.x86_64.ubuntu.20.04 /etc/apt/sources.list - ENV DEBIAN_FRONTEND=noninteractive # Note: @@ -17,19 +18,23 @@ ENV DEBIAN_FRONTEND=noninteractive # --mount=type=bind,source=rcfiles/wheelos.cn.public.gpg,target=/opt/apollo/rcfiles/wheelos.cn.public.gpg \ RUN apt-get update && \ apt-get install -y --no-install-recommends \ - libnvinfer8="${TENSORRT_VERSION}${PATCH_SUFFIX}" \ - libnvinfer-plugin8="${TENSORRT_VERSION}${PATCH_SUFFIX}" \ - libnvinfer-vc-plugin8="${TENSORRT_VERSION}${PATCH_SUFFIX}" \ - libnvinfer-dev="${TENSORRT_VERSION}${PATCH_SUFFIX}" \ - libnvinfer-headers-dev="${TENSORRT_VERSION}${PATCH_SUFFIX}" \ - libnvinfer-headers-plugin-dev="${TENSORRT_VERSION}${PATCH_SUFFIX}" \ - libnvinfer-plugin-dev="${TENSORRT_VERSION}${PATCH_SUFFIX}" \ - libnvonnxparsers8="${TENSORRT_VERSION}${PATCH_SUFFIX}" \ - libnvonnxparsers-dev="${TENSORRT_VERSION}${PATCH_SUFFIX}" \ - libnvparsers8="${TENSORRT_VERSION}${PATCH_SUFFIX}" \ - libnvparsers-dev="${TENSORRT_VERSION}${PATCH_SUFFIX}" \ - python3-libnvinfer="${TENSORRT_VERSION}${PATCH_SUFFIX}" && \ + ca-certificates \ + curl \ + gnupg2 \ + libvulkan1 \ + vulkan-tools && \ + (apt-get install -y --no-install-recommends nvidia-tensorrt-dev \ + || apt-get install -y --no-install-recommends tensorrt-dev \ + || apt-get install -y --no-install-recommends \ + libnvinfer-dev \ + libnvinfer-plugin-dev \ + libnvonnxparsers-dev \ + libnvparsers-dev) && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* +ENV CUDA_TOOLKIT_VERSION=${CUDA_TOOLKIT_VERSION} +ENV CUDNN_VERSION=${CUDNN_VERSION} ENV TENSORRT_VERSION=${TENSORRT_VERSION} +ENV VPI_VERSION=${VPI_VERSION} +ENV VULKAN_VERSION=${VULKAN_VERSION} diff --git a/docker/build/build_docker.sh b/docker/build/build_docker.sh old mode 100755 new mode 100644 index 01f55701..862e34a7 --- a/docker/build/build_docker.sh +++ b/docker/build/build_docker.sh @@ -1,385 +1,166 @@ #!/usr/bin/env bash set -euo pipefail -TAB=" " # 4 Spaces - -DOCKER_BUILDKIT=${DOCKER_BUILDKIT:-1} +TAB=" " +DOCKER_BUILDKIT="${DOCKER_BUILDKIT:-1}" APOLLO_REPO="${APOLLO_REPO:-wheelos/apollo}" -UBUNTU_LTS="${UBUNTU_LTS:-20.04}" - -declare -A CUDA_LITE_VERSIONS -declare -A CUDNN_VERSIONS -declare -A TENSORRT_VERSIONS -# x86_64 -CUDA_LITE_VERSIONS["x86_64"]="11.8.0" -CUDNN_VERSIONS["x86_64"]="8" -TENSORRT_VERSIONS["x86_64"]="8.6.1.6" -# aarch64 -CUDA_LITE_VERSIONS["aarch64"]="11.4.3" -CUDNN_VERSIONS["aarch64"]="8.6.0.166" -TENSORRT_VERSIONS["aarch64"]="8.5.2" - -SUPPORTED_ARCHS=( x86_64 aarch64 ) -SUPPORTED_STAGES=( base cyber dev runtime ) -# TODO(All): maybe ROCm support in the future -SUPPORTED_COMPUTE_PLATFORM=( cpu cuda ) -SUPPORTED_CPU_STAGES=( cyber dev runtime ) - -HOST_ARCH="$(uname -m)" -INSTALL_MODE="download" +UBUNTU_LTS="${UBUNTU_LTS:-22.04}" TARGET_GEOLOC="us" +INSTALL_MODE="download" +LOCAL_HTTP_ADDR="${LOCAL_HTTP_ADDR:-http://172.17.0.1:8388}" +IMAGE_TAG="${IMAGE_TAG:-$(date +%Y%m%d_%H%M)}" +L4T_TAG="${L4T_TAG:-r36.4.0}" -TARGET_ARCH= -TARGET_STAGE= -TARGET_EXTRA= - -DOCKERFILE= -PREV_IMAGE_TIMESTAMP="" # Initialize explicitly to empty string +DOCKERFILE="" +TARGET="" USE_CACHE=1 DRY_RUN_ONLY=0 +PUSH_IMAGE=0 +LOAD_IMAGE=1 -CUDA_LITE= -CUDNN_VERSION= -TENSORRT_VERSION= - -IMAGE_IN= -IMAGE_OUT= -DEV_IMAGE_IN= - -LOCAL_HTTP_ADDR=${LOCAL_HTTP_ADDR:-http://172.17.0.1:8388} - -function fail() { - echo "Error: $1" >&2 - exit 1 -} - -function check_experimental_docker() { - local daemon_cfg="/etc/docker/daemon.json" - local enabled - - # Check if Docker daemon is running and responsive - if ! docker info > /dev/null 2>&1; then - echo "Error: Docker daemon is not running or not responsive. Please start Docker." >&2 - exit 1 - fi - - enabled="$(docker version -f '{{.Server.Experimental}}')" - if [ "${enabled}" != "true" ]; then - echo "Experimental features should be enabled to run Apollo docker build." >&2 - echo "Please perform the following two steps to have it enabled:" >&2 - echo " 1) Add '\"experimental\": true' to '${daemon_cfg}' (or your Docker daemon configuration file)" >&2 - echo " Example:" >&2 - echo " {" >&2 - echo " \"experimental\": true " >&2 - echo " }" >&2 - echo " 2) Restart docker daemon. E.g., 'sudo systemctl restart docker'" >&2 - exit 1 - fi -} - -function cpu_arch_support_check() { - local arch="$1" - if [[ ! " ${SUPPORTED_ARCHS[*]} " =~ " ${arch} " ]]; then - echo "Unsupported CPU architecture: ${arch}. Supported architectures are: ${SUPPORTED_ARCHS[*]}. Exiting..." >&2 - exit 1 - fi -} - -function build_stage_check() { - local stage="$1" - if [[ ! " ${SUPPORTED_STAGES[*]} " =~ " ${stage} " ]]; then - echo "Unsupported build stage: ${stage}. Supported stages are: ${SUPPORTED_STAGES[*]}. Exiting..." >&2 - exit 1 - fi +function print_usage() { + echo "Usage: $0 -f [options]" + echo "Options:" + echo "${TAB}-f,--dockerfile Dockerfile name (e.g., base.x86_64.cuda.dockerfile)" + echo "${TAB}-m,--mode Installer mode (build|download), default: ${INSTALL_MODE}" + echo "${TAB}-g,--geo Geolocation (cn|us), default: ${TARGET_GEOLOC}" + echo "${TAB}-t,--timestamp Image tag suffix, default: ${IMAGE_TAG}" + echo "${TAB}--l4t-tag Jetson L4T tag, default: ${L4T_TAG}" + echo "${TAB}--cache-server Local package cache URL, default: ${LOCAL_HTTP_ADDR}" + echo "${TAB}-c,--clean Disable Docker cache" + echo "${TAB}--push Push images to registry" + echo "${TAB}--no-load Disable loading built images into local Docker" + echo "${TAB}--dry Print bake plan only" + echo "${TAB}-h,--help Show this help" } -function compute_platform_stage_check() { - local platform="$1" - local stage="$2" - - # Ensure compute platform is supported - if [[ ! " ${SUPPORTED_COMPUTE_PLATFORM[*]} " =~ " ${platform} " ]]; then - echo "Unsupported compute platform: ${platform}. Supported platforms are: ${SUPPORTED_COMPUTE_PLATFORM[*]}. Exiting..." >&2 - exit 1 - fi - - if [[ "${platform}" == "cpu" ]]; then - if [[ ! " ${SUPPORTED_CPU_STAGES[*]} " =~ " ${stage} " ]]; then - echo "CPU mode only supports stages: ${SUPPORTED_CPU_STAGES[*]}. Got '${stage}'. Exiting..." >&2 - exit 1 - fi - fi - # No specific stage check needed for 'cuda' if all stages are allowed +function check_docker() { + if ! docker info >/dev/null 2>&1; then + echo "Error: Docker daemon is not running." >&2 + exit 1 + fi + if ! docker buildx version >/dev/null 2>&1; then + echo "Error: docker buildx is required." >&2 + exit 1 + fi } -function determine_target_arch_and_stage() { - local dockerfile_base="$(basename "$1")" - if [[ ! "${dockerfile_base}" =~ ^([a-zA-Z0-9_]+)\.([a-z0-9_]+)\.([a-zA-Z0-9_]+)\.dockerfile$ ]]; then - echo "Error: Expected Dockerfile name format '...dockerfile'" >&2 - echo "Got '${dockerfile_base}'. Exiting..." >&2 - exit 1 - fi - - local stage="${BASH_REMATCH[1]}" - local arch="${BASH_REMATCH[2]}" - local extra="${BASH_REMATCH[3]}" - - cpu_arch_support_check "${arch}" - build_stage_check "${stage}" - compute_platform_stage_check "${extra}" "${stage}" # extra is the compute platform - - TARGET_ARCH="${arch}" - TARGET_STAGE="${stage}" - TARGET_EXTRA="${extra}" +function parse_arguments() { + if [[ $# -eq 0 ]]; then + print_usage + exit 0 + fi - if [[ "${TARGET_ARCH}" != "${HOST_ARCH}" ]]; then - echo "[WARNING] HOST_ARCH(${HOST_ARCH}) != TARGET_ARCH(${TARGET_ARCH}) detected. Cross-architecture build." >&2 - echo "[WARNING] Make sure you have executed: 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes' for QEMU setup." >&2 - fi -} + while [[ $# -gt 0 ]]; do + case "$1" in + -f|--dockerfile) + DOCKERFILE="$2"; shift 2 ;; + -m|--mode) + INSTALL_MODE="$2"; shift 2 ;; + -g|--geo) + TARGET_GEOLOC="$2"; shift 2 ;; + -t|--timestamp) + IMAGE_TAG="$2"; shift 2 ;; + --l4t-tag) + L4T_TAG="$2"; shift 2 ;; + --cache-server) + LOCAL_HTTP_ADDR="$2"; shift 2 ;; + -c|--clean) + USE_CACHE=0; shift ;; + --push) + PUSH_IMAGE=1; shift ;; + --no-load) + LOAD_IMAGE=0; shift ;; + --dry) + DRY_RUN_ONLY=1; shift ;; + -h|--help) + print_usage; exit 0 ;; + *) + echo "Unknown option: $1" >&2 + print_usage + exit 1 ;; + esac + done -function determine_cuda_versions() { - local arch="$1" - if [[ -n "${CUDA_LITE_VERSIONS[${arch}]:-}" ]]; then - CUDA_LITE="${CUDA_LITE_VERSIONS[${arch}]}" - CUDNN_VERSION="${CUDNN_VERSIONS[${arch}]}" - TENSORRT_VERSION="${TENSORRT_VERSIONS[${arch}]}" - else - echo "Error: Unsupported arch for CUDA/CuDNN/TensorRT version picking: ${arch}" >&2 - exit 1 - fi + if [[ -z "${DOCKERFILE}" ]]; then + echo "Error: Dockerfile must be specified by -f/--dockerfile" >&2 + exit 1 + fi } -function determine_cpu_img() { - local arch="$1" - local stage="$2" - local timestamp="$3" - local effective_timestamp="${PREV_IMAGE_TIMESTAMP:-$timestamp}" - - # Define the general image name format - local cyber_img="${APOLLO_REPO}:cyber-${arch}-${UBUNTU_LTS}-${timestamp}" - local dev_img="${APOLLO_REPO}:dev-${arch}-${UBUNTU_LTS}-${timestamp}" - local runtime_img="${APOLLO_REPO}:runtime-${arch}-${UBUNTU_LTS}-${timestamp}" - - # Define the previous stage image name - local prev_cyber_img="${APOLLO_REPO}:cyber-${arch}-${UBUNTU_LTS}-${effective_timestamp}" - local prev_dev_img="${APOLLO_REPO}:dev-${arch}-${UBUNTU_LTS}-${effective_timestamp}" - - case "${stage}" in - cyber) - IMAGE_IN="ubuntu:${UBUNTU_LTS}" - IMAGE_OUT="${cyber_img}" - ;; - dev) - IMAGE_IN="${prev_cyber_img}" - IMAGE_OUT="${dev_img}" - ;; - runtime) - IMAGE_IN="ubuntu:${UBUNTU_LTS}" - DEV_IMAGE_IN="${prev_dev_img}" - IMAGE_OUT="${runtime_img}" - ;; +function dockerfile_to_target() { + case "$(basename "${DOCKERFILE}")" in + base.x86_64.cuda.dockerfile) TARGET="base-x86_64-cuda" ;; + dev.x86_64.cuda.dockerfile) TARGET="dev-x86_64-cuda" ;; + base.aarch64.cuda.dockerfile) TARGET="base-aarch64-cuda" ;; + dev.aarch64.cuda.dockerfile) TARGET="dev-aarch64-cuda" ;; *) - fail "Unknown build stage for CPU mode: '${stage}'" - ;; + echo "Error: unsupported dockerfile '${DOCKERFILE}' for buildx bake workflow." >&2 + echo "Supported dockerfiles: base/dev for x86_64.cuda and aarch64.cuda" >&2 + exit 1 ;; esac } -function determine_gpu_img() { - local arch="$1" - local stage="$2" - local timestamp="$3" - local effective_timestamp="${PREV_IMAGE_TIMESTAMP:-$timestamp}" - - # Extract the major version number from the determined global variables - local cudnn_ver="${CUDNN_VERSION%%.*}" - local trt_ver="${TENSORRT_VERSION%%.*}" - - # Define the prefix for the GPU base image, logic is more centralized - local base_image_prefix="${APOLLO_REPO}:cuda${CUDA_LITE}-cudnn${cudnn_ver}-trt${trt_ver}-devel-${UBUNTU_LTS}-${arch}" - local base_image_tagged="${base_image_prefix}-${timestamp}" - local prev_base_image_tagged="${base_image_prefix}-${effective_timestamp}" - - # Define the general image name format (consistent with CPU mode) - local cyber_img="${APOLLO_REPO}:cyber-${arch}-${UBUNTU_LTS}-${timestamp}" - local dev_img="${APOLLO_REPO}:dev-${arch}-${UBUNTU_LTS}-${timestamp}" - local runtime_img="${APOLLO_REPO}:runtime-${arch}-${UBUNTU_LTS}-${timestamp}" - - # Define the previous stage image name (consistent with CPU mode) - local prev_cyber_img="${APOLLO_REPO}:cyber-${arch}-${UBUNTU_LTS}-${effective_timestamp}" - local prev_dev_img="${APOLLO_REPO}:dev-${arch}-${UBUNTU_LTS}-${effective_timestamp}" - - case "${stage}" in - base) - IMAGE_IN="nvidia/cuda:${CUDA_LITE}-cudnn${cudnn_ver}-devel-ubuntu${UBUNTU_LTS}" - if [[ "${arch}" == "aarch64" ]]; then - # Note: nvidia/cuda may not work for all arm64v8 hardware, here - # we use a generic arm64v8 Ubuntu image as the base image. And - # install CUDA/CuDNN/TensorRT manually in the Dockerfile. - # See the Dockerfile(base.aarch64.dockerfile) for more details. - # TODO(All): specified via args, such as orin or xavier - IMAGE_IN="docker.io/arm64v8/ubuntu:${UBUNTU_LTS}" - fi - IMAGE_OUT="${base_image_tagged}" - ;; - cyber) - IMAGE_IN="${prev_base_image_tagged}" - IMAGE_OUT="${cyber_img}" +function run_bake() { + local script_dir + script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)" + local bake_file="${script_dir}/docker-bake.hcl" + + local set_args=() + set_args+=("--set" "*.args.GEOLOC=${TARGET_GEOLOC}") + set_args+=("--set" "*.args.INSTALL_MODE=${INSTALL_MODE}") + set_args+=("--set" "*.args.LOCAL_HTTP_ADDR=${LOCAL_HTTP_ADDR}") + set_args+=("--set" "*.args.APOLLO_DIST=stable") + set_args+=("--set" "*.args.UBUNTU_LTS=${UBUNTU_LTS}") + + case "${TARGET}" in + base-x86_64-cuda) + set_args+=("--set" "${TARGET}.tags=${APOLLO_REPO}:cuda12.6.3-cudnn9-trt10-devel-${UBUNTU_LTS}-x86_64-${IMAGE_TAG},${APOLLO_REPO}:base-x86_64-${UBUNTU_LTS}-${IMAGE_TAG}") ;; - dev) - IMAGE_IN="${prev_cyber_img}" - IMAGE_OUT="${dev_img}" + dev-x86_64-cuda) + set_args+=("--set" "${TARGET}.args.BASE_IMAGE=${APOLLO_REPO}:cuda12.6.3-cudnn9-trt10-devel-${UBUNTU_LTS}-x86_64-${IMAGE_TAG}") + set_args+=("--set" "${TARGET}.tags=${APOLLO_REPO}:dev-x86_64-${UBUNTU_LTS}-${IMAGE_TAG}") ;; - runtime) - IMAGE_IN="nvidia/cuda:${CUDA_LITE}-cudnn${cudnn_ver}-runtime-ubuntu${UBUNTU_LTS}" - if [[ "${arch}" == "aarch64" ]]; then - # Note: nvidia/cuda may not work for all arm64v8 hardware, here - # we use a generic arm64v8 Ubuntu image as the base image. And - # install CUDA/CuDNN/TensorRT manually in the Dockerfile. - # See the Dockerfile(base.aarch64.dockerfile) for more details. - # TODO(All): specified via args, such as orin or xavier - IMAGE_IN="docker.io/arm64v8/ubuntu:${UBUNTU_LTS}" - fi - DEV_IMAGE_IN="${prev_dev_img}" - IMAGE_OUT="${runtime_img}" + base-aarch64-cuda) + set_args+=("--set" "${TARGET}.args.BASE_IMAGE=nvcr.io/nvidia/l4t-jetpack:${L4T_TAG}") + set_args+=("--set" "${TARGET}.tags=${APOLLO_REPO}:jetpack-${L4T_TAG}-base-aarch64-${IMAGE_TAG},${APOLLO_REPO}:base-aarch64-${UBUNTU_LTS}-${IMAGE_TAG}") ;; - *) - fail "Unknown build stage for GPU mode: '${stage}'" + dev-aarch64-cuda) + set_args+=("--set" "${TARGET}.args.BASE_IMAGE=${APOLLO_REPO}:jetpack-${L4T_TAG}-base-aarch64-${IMAGE_TAG}") + set_args+=("--set" "${TARGET}.tags=${APOLLO_REPO}:dev-aarch64-${UBUNTU_LTS}-${IMAGE_TAG}") ;; esac -} - -function determine_images_in_out() { - # Use shell parameter expansion: if PREV_IMAGE_TIMESTAMP is not set, use the current timestamp - local timestamp - timestamp="$(date +%Y%m%d_%H%M)" - # Dispatch to different handler functions according to TARGET_EXTRA - if [[ "${TARGET_EXTRA}" == "cpu" ]]; then - determine_cpu_img "${TARGET_ARCH}" "${TARGET_STAGE}" "${timestamp}" - else - # In GPU mode, determine CUDA version first, then determine image name - determine_cuda_versions "${TARGET_ARCH}" - determine_gpu_img "${TARGET_ARCH}" "${TARGET_STAGE}" "${timestamp}" + if [[ "${USE_CACHE}" -eq 0 ]]; then + set_args+=("--set" "${TARGET}.no-cache=true") fi -} - -function docker_build_preview() { - echo "===== Docker Build Preview (${TARGET_STAGE}/${TARGET_EXTRA}) =====" - echo "| Image OUT: ${IMAGE_OUT}" - echo "| Base Image: ${IMAGE_IN}" - echo "| Dockerfile: ${DOCKERFILE}" - echo "| ARCH: ${TARGET_ARCH}, HOST: ${HOST_ARCH}" - echo "| MODE: ${INSTALL_MODE}, GEO: ${TARGET_GEOLOC}" - if [[ "${TARGET_EXTRA}" != "cpu" ]]; then - echo "| CUDA: ${CUDA_LITE}, CuDNN: ${CUDNN_VERSION}, TensorRT: ${TENSORRT_VERSION}" - fi - if [[ -n "${DEV_IMAGE_IN}" ]]; then # Only show if DEV_IMAGE_IN is set (for runtime stage) - echo "| Dev Image IN: ${DEV_IMAGE_IN}" - fi - echo "==================================================" -} -function docker_build_run() { - local extra_args_array=() - [[ "${USE_CACHE}" -eq 0 ]] && extra_args_array+=( "--no-cache=true" ) - - local context="$(dirname "${BASH_SOURCE[0]}")" - - local build_args_array=() - build_args_array+=( "--build-arg" "BASE_IMAGE=${IMAGE_IN}" ) - build_args_array+=( "--build-arg" "LOCAL_HTTP_ADDR=${LOCAL_HTTP_ADDR}" ) - - # Common args based on TARGET_EXTRA or specific stages - if [[ "${TARGET_EXTRA}" == "cpu" || "${TARGET_STAGE}" == "cyber" || "${TARGET_STAGE}" == "dev" || "${TARGET_STAGE}" == "runtime" ]]; then - build_args_array+=( "--build-arg" "GEOLOC=${TARGET_GEOLOC}" ) - fi - - # INSTALL_MODE only for cyber and dev stages - if [[ "${TARGET_STAGE}" == "cyber" || "${TARGET_STAGE}" == "dev" ]]; then - build_args_array+=( "--build-arg" "INSTALL_MODE=${INSTALL_MODE}" ) - fi - - # CUDA/CuDNN/TensorRT versions for GPU base and runtime - if [[ "${TARGET_EXTRA}" != "cpu" && ( "${TARGET_STAGE}" == "base" || "${TARGET_STAGE}" == "runtime" ) ]]; then - build_args_array+=( "--build-arg" "CUDA_LITE=${CUDA_LITE}" ) - build_args_array+=( "--build-arg" "CUDNN_VERSION=${CUDNN_VERSION}" ) - build_args_array+=( "--build-arg" "TENSORRT_VERSION=${TENSORRT_VERSION}" ) - fi - - # DEV_IMAGE_IN specifically for runtime stage - if [[ "${TARGET_STAGE}" == "runtime" ]]; then - build_args_array+=( "--build-arg" "DEV_IMAGE_IN=${DEV_IMAGE_IN}" ) - fi - - set -x # Enable command tracing - docker build --network=host "${extra_args_array[@]}" -t "${IMAGE_OUT}" \ - "${build_args_array[@]}" \ - -f "${DOCKERFILE}" \ - "${context}" - set +x # Disable command tracing - echo "✅ Build complete: ${IMAGE_OUT}" -} + if [[ "${PUSH_IMAGE}" -eq 1 ]]; then + set_args+=("--set" "${TARGET}.output=type=registry") + elif [[ "${LOAD_IMAGE}" -eq 1 ]]; then + set_args+=("--set" "${TARGET}.output=type=docker") + fi -function parse_arguments() { - if [[ $# -eq 0 ]] || [[ "$1" == "--help" ]]; then - print_usage - exit 0 - fi - while [[ $# -gt 0 ]]; do - local opt="$1" - shift - case $opt in - -f|--dockerfile) - DOCKERFILE="$1"; shift ;; - -m|--mode) - INSTALL_MODE="$1"; shift ;; - -g|--geo) - TARGET_GEOLOC="$1"; shift ;; - -c|--clean) - USE_CACHE=0 ;; - -t|--timestamp) - PREV_IMAGE_TIMESTAMP="$1"; shift ;; - --cache-server) - LOCAL_HTTP_ADDR="$1"; shift ;; - --dry) - DRY_RUN_ONLY=1 ;; - -h|--help) - print_usage; exit 0 ;; - *) - echo "Unknown option: ${opt}. Use -h for help." >&2; print_usage; exit 1 ;; - esac - done - # Validate DOCKERFILE is provided - if [[ -z "${DOCKERFILE}" ]]; then - echo "Error: Dockerfile must be specified using -f or --dockerfile." >&2 - print_usage - exit 1 - fi -} + echo "===== Buildx Bake Preview =====" + echo "| target: ${TARGET}" + echo "| dockerfile: ${DOCKERFILE}" + echo "| geoloc: ${TARGET_GEOLOC}, install_mode: ${INSTALL_MODE}" + echo "| image_tag: ${IMAGE_TAG}, l4t_tag: ${L4T_TAG}" + echo "===============================" -function print_usage() { - echo "Usage: $0 -f [options]" - echo "Options:" - echo "${TAB}-c,--clean Disable Docker cache" - echo "${TAB}-m,--mode Install mode (build|download), default: ${INSTALL_MODE}" - echo "${TAB}-g,--geo Geo location (cn|us), default: ${TARGET_GEOLOC}" - echo "${TAB}-t,--timestamp Image tag timestamp (YYYYMMDD_HHMM), default: now" - echo "${TAB}--cache-server Use a local HTTP server for caching packages (default: ${LOCAL_HTTP_ADDR})" - echo "${TAB}--dry Dry run (show build commands only)" - echo "${TAB}-h,--help Show this help" - echo - echo "Tip: To pre-download packages, use a local HTTP server (python3 -m http.server 8388). Or set LOCAL_HTTP_ADDR." + if [[ "${DRY_RUN_ONLY}" -eq 1 ]]; then + docker buildx bake --file "${bake_file}" "${TARGET}" "${set_args[@]}" --print + else + docker buildx bake --file "${bake_file}" "${TARGET}" "${set_args[@]}" + fi } function main() { - parse_arguments "$@" - determine_target_arch_and_stage "${DOCKERFILE}" - check_experimental_docker - determine_images_in_out - docker_build_preview - [[ "${DRY_RUN_ONLY}" -gt 0 ]] || docker_build_run + parse_arguments "$@" + check_docker + dockerfile_to_target + run_bake } main "$@" diff --git a/docker/build/dev.aarch64.cuda.dockerfile b/docker/build/dev.aarch64.cuda.dockerfile index 40f38bc9..56e68f63 100644 --- a/docker/build/dev.aarch64.cuda.dockerfile +++ b/docker/build/dev.aarch64.cuda.dockerfile @@ -8,7 +8,13 @@ ARG INSTALL_MODE ARG LOCAL_HTTP_ADDR ARG DEBIAN_FRONTEND=noninteractive +ENV APOLLO_DIST=${APOLLO_DIST} \ + PATH="/opt/apollo/sysroot/bin:${PATH}" + COPY installers /opt/apollo/installers +COPY rcfiles /opt/apollo/rcfiles + +RUN bash -eux /opt/apollo/installers/install_geo_adjustment.sh ${GEOLOC} # Note: # The `--mount` option is used to bind mount the local sources.list file into the container during the build process. @@ -22,4 +28,8 @@ RUN bash /opt/apollo/installers/install_modules_base.sh \ && bash /opt/apollo/installers/install_drivers_deps.sh ${INSTALL_MODE} \ && bash /opt/apollo/installers/install_dreamview_deps.sh ${GEOLOC} \ && bash /opt/apollo/installers/install_release_deps.sh \ - && bash /opt/apollo/installers/post_install.sh ${BUILD_STAGE} + && bash /opt/apollo/installers/post_install.sh dev + +COPY rcfiles/setup.sh /opt/apollo/neo/ + +RUN echo "source /opt/apollo/neo/setup.sh" >> /etc/skel/.bashrc diff --git a/docker/build/dev.x86_64.cuda.dockerfile b/docker/build/dev.x86_64.cuda.dockerfile index 14c3c5e5..6604d260 100644 --- a/docker/build/dev.x86_64.cuda.dockerfile +++ b/docker/build/dev.x86_64.cuda.dockerfile @@ -8,15 +8,25 @@ ARG INSTALL_MODE ARG LOCAL_HTTP_ADDR ARG DEBIAN_FRONTEND=noninteractive +ENV APOLLO_DIST=${APOLLO_DIST} \ + PATH="/opt/apollo/sysroot/bin:${PATH}" + COPY installers /opt/apollo/installers +COPY rcfiles /opt/apollo/rcfiles + +RUN bash -eux /opt/apollo/installers/install_geo_adjustment.sh ${GEOLOC} # Note: # The `--mount` option is used to bind mount the local sources.list file into the container during the build process. # We can use it to speed up the apt-get update process by using a local mirror. -# RUN --mount=type=bind,source=rcfiles/sources.list.local.x86_64.ubuntu.20.04,target=/etc/apt/sources.list \ +# RUN --mount=type=bind,source=rcfiles/sources.list.local.x86_64.ubuntu.22.04,target=/etc/apt/sources.list \ # --mount=type=bind,source=rcfiles/wheelos.cn.public.gpg,target=/opt/apollo/rcfiles/wheelos.cn.public.gpg \ # --mount=type=bind,source=rcfiles/pip.conf.local,target=/root/.config/pip/pip.conf \ -RUN bash -eux /opt/apollo/installers/install_modules_base.sh \ +RUN bash -eux /opt/apollo/installers/install_minimal_environment.sh --install-mode dev --compute-mode cuda \ + && bash -eux /opt/apollo/installers/install_bazel.sh \ + && bash -eux /opt/apollo/installers/install_cmake.sh \ + && bash -eux /opt/apollo/installers/install_llvm_clang.sh \ + && bash -eux /opt/apollo/installers/install_modules_base.sh \ && bash -eux /opt/apollo/installers/install_ordinary_modules.sh --all \ && bash -eux /opt/apollo/installers/install_drivers_deps.sh ${INSTALL_MODE} \ && bash -eux /opt/apollo/installers/install_dreamview_deps.sh ${GEOLOC} \ diff --git a/docker/build/docker-bake.hcl b/docker/build/docker-bake.hcl new file mode 100644 index 00000000..70f9f971 --- /dev/null +++ b/docker/build/docker-bake.hcl @@ -0,0 +1,140 @@ +variable "APOLLO_REPO" { + default = "wheelos/apollo" +} + +variable "IMAGE_TAG" { + default = "local" +} + +variable "GEOLOC" { + default = "us" +} + +variable "INSTALL_MODE" { + default = "download" +} + +variable "LOCAL_HTTP_ADDR" { + default = "http://172.17.0.1:8388" +} + +variable "UBUNTU_LTS" { + default = "22.04" +} + +variable "CUDA_X86" { + default = "12.6.3" +} + +variable "CUDNN_X86_MAJOR" { + default = "9" +} + +variable "TENSORRT_X86" { + default = "10.3.0.30" +} + +variable "CUDA_TOOLKIT_X86" { + default = "12.6.68" +} + +variable "CUDNN_X86_FULL" { + default = "9.3.0.75" +} + +variable "VPI_VERSION" { + default = "3.2.4" +} + +variable "VULKAN_VERSION" { + default = "1.3.204" +} + +variable "L4T_TAG" { + default = "r36.4.0" +} + +group "base" { + targets = ["base-x86_64-cuda", "base-aarch64-cuda"] +} + +group "dev" { + targets = ["dev-x86_64-cuda", "dev-aarch64-cuda"] +} + +group "all" { + targets = [ + "base-x86_64-cuda", + "dev-x86_64-cuda", + "base-aarch64-cuda", + "dev-aarch64-cuda", + ] +} + +target "_common" { + context = "." + pull = true + no-cache = false + platforms = ["linux/amd64"] +} + +target "base-x86_64-cuda" { + inherits = ["_common"] + dockerfile = "base.x86_64.cuda.dockerfile" + platforms = ["linux/amd64"] + tags = [ + "${APOLLO_REPO}:cuda${CUDA_X86}-cudnn${CUDNN_X86_MAJOR}-trt10-devel-${UBUNTU_LTS}-x86_64-${IMAGE_TAG}", + "${APOLLO_REPO}:base-x86_64-${UBUNTU_LTS}-${IMAGE_TAG}", + ] + args = { + BASE_IMAGE = "nvidia/cuda:${CUDA_X86}-cudnn-devel-ubuntu${UBUNTU_LTS}" + CUDA_TOOLKIT_VERSION = "${CUDA_TOOLKIT_X86}" + CUDNN_VERSION = "${CUDNN_X86_FULL}" + TENSORRT_VERSION = "${TENSORRT_X86}" + VPI_VERSION = "${VPI_VERSION}" + VULKAN_VERSION = "${VULKAN_VERSION}" + } +} + +target "dev-x86_64-cuda" { + inherits = ["_common"] + dockerfile = "dev.x86_64.cuda.dockerfile" + platforms = ["linux/amd64"] + tags = [ + "${APOLLO_REPO}:dev-x86_64-${UBUNTU_LTS}-${IMAGE_TAG}", + ] + args = { + BASE_IMAGE = "${APOLLO_REPO}:cuda${CUDA_X86}-cudnn${CUDNN_X86_MAJOR}-trt10-devel-${UBUNTU_LTS}-x86_64-${IMAGE_TAG}" + GEOLOC = "${GEOLOC}" + INSTALL_MODE = "${INSTALL_MODE}" + LOCAL_HTTP_ADDR = "${LOCAL_HTTP_ADDR}" + } +} + +target "base-aarch64-cuda" { + inherits = ["_common"] + dockerfile = "base.aarch64.cuda.dockerfile" + platforms = ["linux/arm64"] + tags = [ + "${APOLLO_REPO}:jetpack-${L4T_TAG}-base-aarch64-${IMAGE_TAG}", + "${APOLLO_REPO}:base-aarch64-${UBUNTU_LTS}-${IMAGE_TAG}", + ] + args = { + BASE_IMAGE = "nvcr.io/nvidia/l4t-jetpack:${L4T_TAG}" + } +} + +target "dev-aarch64-cuda" { + inherits = ["_common"] + dockerfile = "dev.aarch64.cuda.dockerfile" + platforms = ["linux/arm64"] + tags = [ + "${APOLLO_REPO}:dev-aarch64-${UBUNTU_LTS}-${IMAGE_TAG}", + ] + args = { + BASE_IMAGE = "${APOLLO_REPO}:jetpack-${L4T_TAG}-base-aarch64-${IMAGE_TAG}" + GEOLOC = "${GEOLOC}" + INSTALL_MODE = "${INSTALL_MODE}" + LOCAL_HTTP_ADDR = "${LOCAL_HTTP_ADDR}" + } +} diff --git a/docker/build/installers/install_gpu_support.sh b/docker/build/installers/install_gpu_support.sh index bfe1fc60..e19fd586 100755 --- a/docker/build/installers/install_gpu_support.sh +++ b/docker/build/installers/install_gpu_support.sh @@ -19,6 +19,9 @@ # Fail on first error. set -e +: ${INSTALL_MAGMA:=0} +: ${INSTALL_LIBTORCH:=1} + CURR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)" . ${CURR_DIR}/installer_base.sh @@ -27,12 +30,19 @@ apt_get_update_and_install \ libatlas-base-dev \ liblapack-dev -# Note(infra): build magma before mkl -info "Install Magma ..." -bash ${CURR_DIR}/install_magma.sh - -info "Install libtorch ..." -bash ${CURR_DIR}/install_libtorch.sh +if [[ "${INSTALL_MAGMA}" == "1" ]]; then + info "Install Magma ..." + bash ${CURR_DIR}/install_magma.sh +else + warning "Skip Magma install by default (set INSTALL_MAGMA=1 to enable)." +fi + +if [[ "${INSTALL_LIBTORCH}" == "1" ]]; then + info "Install libtorch ..." + bash ${CURR_DIR}/install_libtorch.sh +else + warning "Skip LibTorch install (set INSTALL_LIBTORCH=1 to enable)." +fi # openmpi @cuda # pcl @cuda diff --git a/docker/build/installers/install_libtorch.sh b/docker/build/installers/install_libtorch.sh index 95ff780d..0406be4b 100755 --- a/docker/build/installers/install_libtorch.sh +++ b/docker/build/installers/install_libtorch.sh @@ -29,15 +29,16 @@ fi # --- Unified Version Control --- # Manage all Pytorch related component versions here -PYTORCH_VERSION="2.6.0" -TORCHVISION_VERSION="0.18.0" # Note: Version must be compatible with Pytorch -TORCHAUDIO_VERSION="2.4.0" # Note: Version must be compatible with Pytorch +PYTORCH_VERSION="${PYTORCH_VERSION:-2.6.0}" +TORCHVISION_VERSION="${TORCHVISION_VERSION:-0.21.0}" # Note: Version must be compatible with Pytorch +TORCHAUDIO_VERSION="${TORCHAUDIO_VERSION:-2.6.0}" # Note: Version must be compatible with Pytorch +LIBTORCH_CHECKSUM_REQUIRED="${LIBTORCH_CHECKSUM_REQUIRED:-false}" # --- Environment Detection --- TARGET_ARCH="$(uname -m)" CUDA_SUPPORT=false -CUDA_VERSION_STR="" # e.g., "11.8" -CUDA_VERSION_TAG="" # e.g., "cu118" +CUDA_VERSION_STR="" # e.g., "12.6" +CUDA_VERSION_TAG="" # e.g., "cu126" if [ "${TARGET_ARCH}" = "x86_64" ] && command -v nvcc >/dev/null 2>&1; then # Get CUDA major and minor version (e.g., 11.8) @@ -83,21 +84,67 @@ if torch.cuda.is_available(): } # --- C++ LibTorch Installation --- +function resolve_libtorch_checksum() { + local cuda_tag="$1" + local archive_name="$2" + + if [ -n "${LIBTORCH_SHA256:-}" ]; then + echo "${LIBTORCH_SHA256}" + return 0 + fi + + case "${cuda_tag}" in + cpu) + echo "6887b5186e466a6d5ca044a51d083bb03c48cb1b4952059b7ca51a5398fbafcc" + ;; + cu118) + echo "36835d6c6315d741ad687632516f7bcd8efb6de3b57b61ca66b96f98e5ea30e8" + ;; + cu126) + echo "" + ;; + *) + echo "" + ;; + esac +} + +function download_libtorch_archive() { + local archive_name="$1" + local checksum="$2" + local download_url="$3" + + if [ -n "${checksum}" ]; then + download_if_not_cached "${archive_name}" "${checksum}" "${download_url}" + return 0 + fi + + if [[ "${LIBTORCH_CHECKSUM_REQUIRED}" == "true" ]]; then + error "LIBTORCH_CHECKSUM_REQUIRED=true but no checksum found for ${archive_name}." + return 1 + fi + + warning "No checksum configured for ${archive_name}, downloading without checksum validation." + wget -q --tries=3 --timeout=30 --no-dns-cache -4 -N "${download_url}" -O "${archive_name}" +} + function install_libtorch_cpp() { info "Installing LibTorch C++ ${PYTORCH_VERSION}..." local BASE_URL="https://download.pytorch.org/libtorch" local ARCHIVE="" local URL="" + local CHECKSUM="" + if [ "${TARGET_ARCH}" = "x86_64" ]; then if [ "$CUDA_SUPPORT" = true ]; then ARCHIVE="libtorch-cxx11-abi-shared-with-deps-${PYTORCH_VERSION}+${CUDA_VERSION_TAG}.zip" - CHECKSUM='36835d6c6315d741ad687632516f7bcd8efb6de3b57b61ca66b96f98e5ea30e8' URL="${BASE_URL}/${CUDA_VERSION_TAG}/${ARCHIVE}" + CHECKSUM="$(resolve_libtorch_checksum "${CUDA_VERSION_TAG}" "${ARCHIVE}")" else ARCHIVE="libtorch-cxx11-abi-shared-with-deps-${PYTORCH_VERSION}%2Bcpu.zip" - CHECKSUM="6887b5186e466a6d5ca044a51d083bb03c48cb1b4952059b7ca51a5398fbafcc" URL="${BASE_URL}/cpu/${ARCHIVE}" + CHECKSUM="$(resolve_libtorch_checksum "cpu" "${ARCHIVE}")" fi elif [ "${TARGET_ARCH}" = "aarch64" ]; then # WARNING: Official pre-compiled LibTorch C++ package is not available for aarch64. @@ -154,7 +201,7 @@ function install_libtorch_cpp() { pushd "${DOWNLOAD_DIR}" > /dev/null info "Downloading from ${URL}" - download_if_not_cached "${ARCHIVE}" "${CHECKSUM}" "${URL}" + download_libtorch_archive "${ARCHIVE}" "${CHECKSUM}" "${URL}" unzip -q "${ARCHIVE}" # Install to system path diff --git a/docker/build/installers/install_opencv.sh b/docker/build/installers/install_opencv.sh index 0109b149..903f1da8 100755 --- a/docker/build/installers/install_opencv.sh +++ b/docker/build/installers/install_opencv.sh @@ -26,13 +26,7 @@ if ldconfig -p | grep -q libopencv_core; then exit 0 fi -WORKHORSE="$1" -if [ -z "${WORKHORSE}" ]; then - WORKHORSE="cpu" -fi - -# Note(all): opencv_contrib is not required in cpu mode -BUILD_CONTRIB="no" +WORKHORSE="cpu" # 1) Install OpenCV via apt # apt-get -y update && \ @@ -61,13 +55,9 @@ apt_get_update_and_install \ pip3_install numpy -VERSION="4.4.0" +VERSION="${OPENCV_VERSION:-4.8.0}" -PKG_OCV="opencv-${VERSION}.tar.gz" -CHECKSUM="bb95acd849e458be7f7024d17968568d1ccd2f0681d47fd60d34ffb4b8c52563" -DOWNLOAD_LINK="https://github.com/opencv/opencv/archive/${VERSION}.tar.gz" -download_if_not_cached "${PKG_OCV}" "${CHECKSUM}" "${DOWNLOAD_LINK}" -tar xzf ${PKG_OCV} +git clone --depth 1 --branch "${VERSION}" https://github.com/opencv/opencv.git "opencv-${VERSION}" # https://stackoverflow.com/questions/12427928/configure-and-build-opencv-to-custom-ffmpeg-install # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${SYSROOT_DIR}/lib @@ -77,32 +67,9 @@ tar xzf ${PKG_OCV} # libgtk-3-dev libtbb2 libtbb-dev # -DWITH_GTK=ON -DWITH_TBB=ON -GPU_OPTIONS= -if [ "${WORKHORSE}" = "gpu" ]; then - GPU_OPTIONS="-DWITH_CUDA=ON -DWITH_CUFFT=ON -DWITH_CUBLAS=ON -DWITH_CUDNN=ON" - GPU_OPTIONS="${GPU_OPTIONS} -DCUDA_PROPAGATE_HOST_FLAGS=OFF" - GPU_OPTIONS="${GPU_OPTIONS} -DCUDA_ARCH_BIN=${SUPPORTED_NVIDIA_SMS// /,}" - # GPU_OPTIONS="${GPU_OPTIONS} -DWITH_NVCUVID=ON" - BUILD_CONTRIB="yes" -else - GPU_OPTIONS="-DWITH_CUDA=OFF" -fi - -if [ "${BUILD_CONTRIB}" = "yes" ]; then - FACE_MODEL_DATA="face_landmark_model.dat" - CHECKSUM="eeab592db2861a6c94d592a48456cf59945d31483ce94a6bc4d3a4e318049ba3" - DOWNLOAD_LINK="https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/${FACE_MODEL_DATA}" - download_if_not_cached "${FACE_MODEL_DATA}" "${CHECKSUM}" "${DOWNLOAD_LINK}" +GPU_OPTIONS="-DWITH_CUDA=OFF" - PKG_CONTRIB="opencv_contrib-${VERSION}.tar.gz" - CHECKSUM="a69772f553b32427e09ffbfd0c8d5e5e47f7dab8b3ffc02851ffd7f912b76840" - DOWNLOAD_LINK="https://github.com/opencv/opencv_contrib/archive/${VERSION}.tar.gz" - download_if_not_cached "${PKG_CONTRIB}" "${CHECKSUM}" "${DOWNLOAD_LINK}" - tar xzf ${PKG_CONTRIB} - - sed -i "s|https://raw.githubusercontent.com/opencv/opencv_3rdparty/.*|file://${CURR_DIR}/\"|g" \ - opencv_contrib-${VERSION}/modules/face/CMakeLists.txt -fi +# keep opencv_contrib disabled in docker baseline for smaller and faster builds. TARGET_ARCH="$(uname -m)" @@ -111,11 +78,7 @@ if [ "${TARGET_ARCH}" = "x86_64" ]; then EXTRA_OPTIONS="${EXTRA_OPTIONS} -DCPU_BASELINE=SSE4" fi -if [ "${BUILD_CONTRIB}" = "yes" ]; then - EXTRA_OPTIONS="${EXTRA_OPTIONS} -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-${VERSION}/modules" -else - EXTRA_OPTIONS="${EXTRA_OPTIONS} -DBUILD_opencv_world=OFF" -fi +EXTRA_OPTIONS="${EXTRA_OPTIONS} -DBUILD_opencv_world=OFF" # -DBUILD_LIST=core,highgui,improc pushd "opencv-${VERSION}" @@ -168,9 +131,6 @@ ldconfig ok "Successfully installed OpenCV ${VERSION}." rm -rf opencv* -if [[ "${BUILD_CONTRIB}" == "yes" ]]; then - rm -rf ${CURR_DIR}/${FACE_MODEL_DATA} -fi if [[ -n "${CLEAN_DEPS}" ]]; then apt_get_remove \ diff --git a/docker/build/rcfiles/sources.list.cn.aarch64.ubuntu.22.04 b/docker/build/rcfiles/sources.list.cn.aarch64.ubuntu.22.04 new file mode 100644 index 00000000..21087f78 --- /dev/null +++ b/docker/build/rcfiles/sources.list.cn.aarch64.ubuntu.22.04 @@ -0,0 +1,10 @@ +# default source mirror for Ubuntu 22.04 (Jammy, aarch64) +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse + +deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse +# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse diff --git a/docker/build/rcfiles/sources.list.cn.x86_64.ubuntu.22.04 b/docker/build/rcfiles/sources.list.cn.x86_64.ubuntu.22.04 new file mode 100644 index 00000000..263a41e6 --- /dev/null +++ b/docker/build/rcfiles/sources.list.cn.x86_64.ubuntu.22.04 @@ -0,0 +1,10 @@ +# default source mirror for Ubuntu 22.04 (Jammy) +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse + +deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse +# deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse diff --git a/docker/build/rcfiles/sources.list.us.aarch64.ubuntu.22.04 b/docker/build/rcfiles/sources.list.us.aarch64.ubuntu.22.04 new file mode 100644 index 00000000..c6fae9c0 --- /dev/null +++ b/docker/build/rcfiles/sources.list.us.aarch64.ubuntu.22.04 @@ -0,0 +1,10 @@ +# default source for Ubuntu 22.04 (Jammy, aarch64) +deb http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted universe multiverse +# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted universe multiverse +deb http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted universe multiverse +# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted universe multiverse +deb http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted universe multiverse +# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted universe multiverse + +deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse +# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse diff --git a/docker/build/rcfiles/sources.list.us.x86_64.ubuntu.22.04 b/docker/build/rcfiles/sources.list.us.x86_64.ubuntu.22.04 new file mode 100644 index 00000000..b6450b8a --- /dev/null +++ b/docker/build/rcfiles/sources.list.us.x86_64.ubuntu.22.04 @@ -0,0 +1,10 @@ +# default source for Ubuntu 22.04 (Jammy) +deb http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse +# deb-src http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse +deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse +# deb-src http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse +deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse +# deb-src http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse + +deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse +# deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse diff --git a/third_party/absl/3rd-absl.BUILD b/third_party/absl/3rd-absl.BUILD deleted file mode 100644 index 952423aa..00000000 --- a/third_party/absl/3rd-absl.BUILD +++ /dev/null @@ -1,12 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -cc_library( - name = "absl", - includes = [ - "include", - ], - srcs = glob(["lib/*.so*"]), - hdrs = glob(["include/**/*"]), - strip_include_prefix = "include", - visibility = ["//visibility:public"], -) \ No newline at end of file diff --git a/third_party/absl/BUILD b/third_party/absl/BUILD deleted file mode 100644 index f28e9eac..00000000 --- a/third_party/absl/BUILD +++ /dev/null @@ -1,21 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-absl", - data = [ - ":cyberfile.xml", - ":3rd-absl.BUILD", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-absl/src", - filter = "*", -) \ No newline at end of file diff --git a/third_party/absl/absl.BUILD b/third_party/absl/absl.BUILD deleted file mode 100644 index 531ce233..00000000 --- a/third_party/absl/absl.BUILD +++ /dev/null @@ -1,15 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -licenses(["notice"]) - -package(default_visibility = ["//visibility:public"]) - - -cc_library( - name = "absl", - srcs = glob(["lib/*.so*"]), - hdrs = glob(["include/*.h"]), - includes = [ - "include", - ], -) diff --git a/third_party/absl/grpc.patch b/third_party/absl/grpc.patch deleted file mode 100644 index 83bbe41b..00000000 --- a/third_party/absl/grpc.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- bazel/grpc_build_system.bzl -+++ bazel/grpc_build_system.bzl -@@ -56,7 +56,8 @@ def _get_external_deps(external_deps): - elif dep == "cronet_c_for_grpc": - ret += ["//third_party/objective_c/Cronet:cronet_c_for_grpc"] - elif dep.startswith("absl/"): -- ret += ["@com_google_absl//" + dep] -+ if "@com_google_absl//:absl" not in ret: -+ ret += ["@com_google_absl//:absl"] - else: - ret += ["//external:" + dep] - return ret \ No newline at end of file diff --git a/third_party/absl/workspace.bzl b/third_party/absl/workspace.bzl deleted file mode 100644 index 5a45b2ec..00000000 --- a/third_party/absl/workspace.bzl +++ /dev/null @@ -1,15 +0,0 @@ -"""Loads the absl library""" - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -def repo(): - # TODO(zero): need delete, use http_archive instead - # native.new_local_repository( - # name = "com_google_absl", - # build_file = clean_dep("//third_party/absl:absl.BUILD"), - # path = "/opt/apollo/absl/", - # ) - pass diff --git a/third_party/benchmark/3rd-benchmark.BUILD b/third_party/benchmark/3rd-benchmark.BUILD deleted file mode 100644 index 87e24c6f..00000000 --- a/third_party/benchmark/3rd-benchmark.BUILD +++ /dev/null @@ -1,27 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -package(default_visibility = ["//visibility:public"]) - -licenses(["notice"]) - -cc_library( - name = "benchmark", - includes = [ - "include", - ], - linkopts = [ - "-lbenchmark", - "-pthread", - ], - visibility = ["//visibility:public"], - strip_include_prefix = "include", -) - -cc_library( - name = "benchmark_main", - linkopts = [ - "-lbenchmark_main", - ], - visibility = ["//visibility:public"], - deps = [":benchmark"], -) diff --git a/third_party/benchmark/BUILD b/third_party/benchmark/BUILD deleted file mode 100644 index bb8b5371..00000000 --- a/third_party/benchmark/BUILD +++ /dev/null @@ -1,21 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-benchmark", - data = [ - ":cyberfile.xml", - ":3rd-benchmark.BUILD", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-benchmark/src", - filter = "*", -) \ No newline at end of file diff --git a/third_party/benchmark/benchmark.BUILD b/third_party/benchmark/benchmark.BUILD deleted file mode 100644 index 37eacda5..00000000 --- a/third_party/benchmark/benchmark.BUILD +++ /dev/null @@ -1,28 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -package(default_visibility = ["//visibility:public"]) - -licenses(["notice"]) - -cc_library( - name = "benchmark", - includes = [ - ".", - ], - linkopts = [ - "-L/opt/apollo/sysroot/lib", - "-lbenchmark", - "-pthread", - ], - visibility = ["//visibility:public"], -) - -cc_library( - name = "benchmark_main", - linkopts = [ - "-L/opt/apollo/sysroot/lib", - "-lbenchmark_main", - ], - visibility = ["//visibility:public"], - deps = [":benchmark"], -) diff --git a/third_party/benchmark/workspace.bzl b/third_party/benchmark/workspace.bzl deleted file mode 100644 index 29e60b99..00000000 --- a/third_party/benchmark/workspace.bzl +++ /dev/null @@ -1,26 +0,0 @@ -"""Loads the benchmark library""" - -#@unused -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -def repo(): - # benchmark - # native.new_local_repository( - # name = "com_google_benchmark", - # build_file = clean_dep("//third_party/benchmark:benchmark.BUILD"), - # path = "/opt/apollo/sysroot/include", - # ) - http_archive( - name = "com_google_benchmark", - sha256 = "23082937d1663a53b90cb5b61df4bcc312f6dee7018da78ba00dd6bd669dfef2", - strip_prefix = "benchmark-1.5.1", - urls = [ - "https://apollo-system.cdn.bcebos.com/archive/6.0/v1.5.1.tar.gz", - "https://github.com/google/benchmark/archive/v1.5.1.tar.gz", - ], - ) diff --git a/third_party/boost/3rd-boost.BUILD b/third_party/boost/3rd-boost.BUILD deleted file mode 100644 index 2976d535..00000000 --- a/third_party/boost/3rd-boost.BUILD +++ /dev/null @@ -1,19 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -licenses(["notice"]) - -package(default_visibility = ["//visibility:public"]) - -cc_library( - name = "boost", - includes = ["include"], - hdrs = glob(["include/**/*"]), - linkopts = [ - "-lboost_filesystem", - "-lboost_program_options", - "-lboost_regex", - "-lboost_system", - "-lboost_thread", - ], - strip_include_prefix = "include", -) \ No newline at end of file diff --git a/third_party/boost/BUILD b/third_party/boost/BUILD deleted file mode 100644 index 90370261..00000000 --- a/third_party/boost/BUILD +++ /dev/null @@ -1,21 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-boost", - data = [ - ":cyberfile.xml", - ":3rd-boost.BUILD", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-boost/src", - filter = "*", -) \ No newline at end of file diff --git a/third_party/boost/boost.BUILD b/third_party/boost/boost.BUILD deleted file mode 100644 index ca2afa31..00000000 --- a/third_party/boost/boost.BUILD +++ /dev/null @@ -1,19 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -licenses(["notice"]) - -package(default_visibility = ["//visibility:public"]) - -# TODO(all): May use rules_boost. -cc_library( - name = "boost", - includes = ["."], - linkopts = [ - "-L/opt/apollo/sysroot/lib", - "-lboost_filesystem", - "-lboost_program_options", - "-lboost_regex", - "-lboost_system", - "-lboost_thread", - ], -) diff --git a/third_party/boost/workspace.bzl b/third_party/boost/workspace.bzl deleted file mode 100644 index dc1fdc49..00000000 --- a/third_party/boost/workspace.bzl +++ /dev/null @@ -1,13 +0,0 @@ -"""Loads the boost library""" - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -def repo(): - native.new_local_repository( - name = "boost", - build_file = clean_dep("//third_party/boost:boost.BUILD"), - path = "/opt/apollo/sysroot/include", - ) diff --git a/third_party/civetweb/BUILD b/third_party/civetweb/BUILD deleted file mode 100644 index f9be66ad..00000000 --- a/third_party/civetweb/BUILD +++ /dev/null @@ -1,49 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-civetweb", - library_dest = "3rd-civetweb/lib", - data = [ - ":cyberfile.xml", - ], - deps = [ - ":install_libs", - ":install_hdrs", - ], -) - -install( - name = "install_libs", - data_dest = "3rd-civetweb/lib", - data = [ - "@civetweb//:civetweb_libs", - ], - data_strip_prefix = [ - "third_party/civetweb", - ], - -) - -install( - name = "install_hdrs", - data_dest = "3rd-civetweb/include", - data = [ - "@civetweb//:civetweb_hdrs", - ], - data_strip_prefix = [ - "third_party/civetweb", - ], - -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-civetweb/src", - filter = "*", -) \ No newline at end of file diff --git a/third_party/civetweb/civetweb.BUILD b/third_party/civetweb/civetweb.BUILD deleted file mode 100644 index bebb4dc8..00000000 --- a/third_party/civetweb/civetweb.BUILD +++ /dev/null @@ -1,97 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library", "cc_binary") - -licenses(["notice"]) - -exports_files(["LICENSE.md"]) - -cc_library( - name = "civetweb", - srcs = [ - "src/civetweb.c", - ], - #hdrs = glob([ - # "include/*.h", - # "src/*.inl", - # #"src/md5.inl", - #]), - copts = [ - "-DUSE_WEBSOCKET", - ], - includes = [ - "include", - "src", - ], - linkopts = [ - "-lpthread", - "-ldl", - ], - deps = [ - "h_headers", - "inl_headers" - ], - visibility = ["//visibility:public"], - alwayslink = True, -) - -cc_library( - name = "h_headers", - hdrs = glob([ - "include/*.h", - ]), - strip_include_prefix = "include", -) - -cc_library( - name = "inl_headers", - hdrs = glob([ - "src/*.inl", - ]), - strip_include_prefix = "src", -) - -cc_binary( - name = "libcivetweb++.so", - srcs = [ - "src/CivetServer.cpp", - "include/CivetServer.h", - ], - visibility = ["//visibility:public"], - deps = [ - ":civetweb", - ], - linkshared = True, - linkstatic = True, -) - -# The C++ wrapper for civetweb. -cc_library( - name = "civetweb++", - srcs = [ - "libcivetweb++.so", - ], - #hdrs = glob([ - # "include/*.h", - #]), - includes = [ - "include", - ], - deps = [ - "h_headers", - ], - visibility = ["//visibility:public"], -) - -filegroup( - name = "civetweb_hdrs", - srcs = glob([ - "include/*.h", - ]), - visibility = ["//visibility:public"], -) -filegroup( - name = "civetweb_libs", - srcs = [ - ":libcivetweb++.so", - ], - visibility = ["//visibility:public"], -) diff --git a/third_party/civetweb/init.bzl b/third_party/civetweb/init.bzl deleted file mode 100644 index 3bcfb0d1..00000000 --- a/third_party/civetweb/init.bzl +++ /dev/null @@ -1,6 +0,0 @@ -"""Loads the civetweb library""" -load("//third_party/civetweb:workspace.bzl", "repo") - -def init(): - repo() - diff --git a/third_party/civetweb/workspace.bzl b/third_party/civetweb/workspace.bzl deleted file mode 100644 index 9f0f36c8..00000000 --- a/third_party/civetweb/workspace.bzl +++ /dev/null @@ -1,20 +0,0 @@ -"""Loads the civetweb library""" - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -def repo(): - http_archive( - name = "civetweb", - build_file = clean_dep("//third_party/civetweb:civetweb.BUILD"), - sha256 = "de7d5e7a2d9551d325898c71e41d437d5f7b51e754b242af897f7be96e713a42", - strip_prefix = "civetweb-1.11", - urls = [ - "https://apollo-system.cdn.bcebos.com/archive/6.0/v1.11.tar.gz", - "https://github.com/civetweb/civetweb/archive/v1.11.tar.gz", - ], - ) diff --git a/third_party/cpplint/BUILD b/third_party/cpplint/BUILD deleted file mode 100644 index 08ce316a..00000000 --- a/third_party/cpplint/BUILD +++ /dev/null @@ -1,20 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-cpplint", - data = [ - ":cyberfile.xml", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-cpplint/src", - filter = "*", -) \ No newline at end of file diff --git a/third_party/cpplint/cpplint.BUILD b/third_party/cpplint/cpplint.BUILD deleted file mode 100644 index e907fb59..00000000 --- a/third_party/cpplint/cpplint.BUILD +++ /dev/null @@ -1,30 +0,0 @@ -load("@rules_python//python:defs.bzl", "py_binary", "py_test") - -package(default_visibility = ["//visibility:public"]) - -licenses(["notice"]) - -# We can't set name="cpplint" here because that's the directory name so the -# sandbox gets confused. We'll give it a private name with a public alias. -py_binary( - name = "cpplint_binary", - srcs = ["cpplint.py"], - imports = ["cpplint"], - main = "cpplint.py", - visibility = [], -) - -alias( - name = "cpplint", - actual = ":cpplint_binary", -) - -py_test( - name = "cpplint_unittest", - size = "small", - srcs = ["cpplint_unittest.py"], - data = ["cpplint_test_header.h"], - deps = [ - ":cpplint_py", - ], -) diff --git a/third_party/cpplint/init.bzl b/third_party/cpplint/init.bzl deleted file mode 100644 index 9c61a078..00000000 --- a/third_party/cpplint/init.bzl +++ /dev/null @@ -1,6 +0,0 @@ -"""Loads the civetweb library""" -load("//third_party/cpplint:workspace.bzl", "repo") - -def init(): - repo() - diff --git a/third_party/cpplint/workspace.bzl b/third_party/cpplint/workspace.bzl deleted file mode 100644 index ec69c879..00000000 --- a/third_party/cpplint/workspace.bzl +++ /dev/null @@ -1,20 +0,0 @@ -"""Loads the cpplint library""" - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -def repo(): - http_archive( - name = "cpplint", - build_file = clean_dep("//third_party/cpplint:cpplint.BUILD"), - sha256 = "5ace9cb77ddfa61bb0135b21d8a3fe62970266588ba41b8a644cd271d3c0676e", - strip_prefix = "cpplint-1.5.2", - urls = [ - "https://apollo-system.cdn.bcebos.com/archive/6.0/1.5.2.tar.gz", - "https://github.com/cpplint/cpplint/archive/1.5.2.tar.gz", - ], - ) diff --git a/third_party/eigen3/BUILD b/third_party/eigen3/BUILD deleted file mode 100644 index 8b43e236..00000000 --- a/third_party/eigen3/BUILD +++ /dev/null @@ -1,20 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-eigen3", - data = [ - ":cyberfile.xml", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-eigen3/src", - filter = "*", -) \ No newline at end of file diff --git a/third_party/eigen3/eigen.BUILD b/third_party/eigen3/eigen.BUILD deleted file mode 100644 index 21a4e5e2..00000000 --- a/third_party/eigen3/eigen.BUILD +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 2018 The Cartographer Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Description: -# Eigen is a C++ template library for linear algebra: vectors, -# matrices, and related algorithms. - -load("@rules_cc//cc:defs.bzl", "cc_library") - -licenses([ - # Note: Eigen is an MPL2 library that includes GPL v3 and LGPL v2.1+ code. - # We've taken special care to not reference any restricted code. - "reciprocal", # MPL2 - "notice", # Portions BSD -]) - -exports_files(["COPYING.MPL2"]) - -EIGEN_FILES = [ - "Eigen/**", - "unsupported/Eigen/CXX11/**", - "unsupported/Eigen/FFT", - "unsupported/Eigen/**", - "unsupported/Eigen/KroneckerProduct", - "unsupported/Eigen/src/FFT/**", - "unsupported/Eigen/src/KroneckerProduct/**", - "unsupported/Eigen/MatrixFunctions", - "unsupported/Eigen/SpecialFunctions", - "unsupported/Eigen/src/MatrixFunctions/**", - "unsupported/Eigen/src/SpecialFunctions/**", -] - -# List of files picked up by glob but actually part of another target. -EIGEN_EXCLUDE_FILES = [ - "Eigen/src/Core/arch/AVX/PacketMathGoogleTest.cc", -] - -EIGEN_MPL2_HEADER_FILES = glob( - EIGEN_FILES, - exclude = EIGEN_EXCLUDE_FILES, -) - -cc_library( - name = "eigen", - hdrs = EIGEN_MPL2_HEADER_FILES, - includes = ["."], - visibility = ["//visibility:public"], -) diff --git a/third_party/eigen3/init.bzl b/third_party/eigen3/init.bzl deleted file mode 100644 index 80960ffb..00000000 --- a/third_party/eigen3/init.bzl +++ /dev/null @@ -1,6 +0,0 @@ -"""Loads the eigen3 library""" -load("//third_party/eigen3:workspace.bzl", "repo") - -def init(): - repo() - diff --git a/third_party/eigen3/workspace.bzl b/third_party/eigen3/workspace.bzl deleted file mode 100644 index 44161e76..00000000 --- a/third_party/eigen3/workspace.bzl +++ /dev/null @@ -1,25 +0,0 @@ -"""Loads the eigen library""" - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -def repo(): - http_archive( - name = "eigen", - build_file = clean_dep("//third_party/eigen3:eigen.BUILD"), - sha256 = "a8d87c8df67b0404e97bcef37faf3b140ba467bc060e2b883192165b319cea8d", - strip_prefix = "eigen-git-mirror-3.3.7", - urls = [ - "https://apollo-system.cdn.bcebos.com/archive/6.0/3.3.7.tar.gz", - "https://github.com/eigenteam/eigen-git-mirror/archive/3.3.7.tar.gz", - ], - ) - #native.new_local_repository( - # name = "eigen", - # build_file = clean_dep("//third_party/eigen3:eigen.BUILD"), - # path = "/usr/include/eigen3", - #) diff --git a/third_party/fastrtps/3rd-fastrtps.BUILD b/third_party/fastrtps/3rd-fastrtps.BUILD deleted file mode 100644 index 497f1229..00000000 --- a/third_party/fastrtps/3rd-fastrtps.BUILD +++ /dev/null @@ -1,16 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -cc_library( - name = "fastrtps", - includes = [ - "include", - ], - hdrs = glob(["include/**/*"]), - linkopts = [ - "-lfastrtps", - "-lfastcdr", - ], - strip_include_prefix = "include", - visibility = ["//visibility:public"], -) - diff --git a/third_party/fastrtps/BUILD b/third_party/fastrtps/BUILD deleted file mode 100644 index 42e0c395..00000000 --- a/third_party/fastrtps/BUILD +++ /dev/null @@ -1,21 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-fastrtps", - data = [ - ":cyberfile.xml", - ":3rd-fastrtps.BUILD", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-fastrtps/src", - filter = "*", -) \ No newline at end of file diff --git a/third_party/fastrtps/fastcdr.BUILD b/third_party/fastrtps/fastcdr.BUILD deleted file mode 100644 index 2735eaac..00000000 --- a/third_party/fastrtps/fastcdr.BUILD +++ /dev/null @@ -1,13 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -cc_library( - name = "fastcdr", - includes = [ - ".", - ], - linkopts = [ - "-L/usr/local/fast-rtps/lib", - "-lfastcdr", - ], - visibility = ["//visibility:public"], -) diff --git a/third_party/fastrtps/fastrtps.BUILD b/third_party/fastrtps/fastrtps.BUILD deleted file mode 100644 index ac86bb80..00000000 --- a/third_party/fastrtps/fastrtps.BUILD +++ /dev/null @@ -1,14 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -cc_library( - name = "fastrtps", - includes = [ - ".", - ], - linkopts = [ - "-L/usr/local/fast-rtps/lib", - "-lfastrtps", - "-lfastcdr", - ], - visibility = ["//visibility:public"], -) diff --git a/third_party/fastrtps/workspace.bzl b/third_party/fastrtps/workspace.bzl deleted file mode 100644 index 150d2d76..00000000 --- a/third_party/fastrtps/workspace.bzl +++ /dev/null @@ -1,19 +0,0 @@ -"""Load the fastrtps library""" - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -def repo(): - native.new_local_repository( - name = "fastcdr", - build_file = clean_dep("//third_party/fastrtps:fastcdr.BUILD"), - path = "/usr/local/fast-rtps/include", - ) - - native.new_local_repository( - name = "fastrtps", - build_file = clean_dep("//third_party/fastrtps:fastrtps.BUILD"), - path = "/usr/local/fast-rtps/include", - ) diff --git a/third_party/gflags/3rd-gflags.BUILD b/third_party/gflags/3rd-gflags.BUILD deleted file mode 100644 index 0ff8bc6a..00000000 --- a/third_party/gflags/3rd-gflags.BUILD +++ /dev/null @@ -1,16 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -licenses(["notice"]) - -package(default_visibility = ["//visibility:public"]) - - -cc_library( - name = "gflags", - includes = ["include"], - hdrs = glob(["include/**/*"]), - linkopts = [ - "-lgflags", - ], - strip_include_prefix = "include", -) \ No newline at end of file diff --git a/third_party/gflags/BUILD b/third_party/gflags/BUILD deleted file mode 100644 index 4c3db8db..00000000 --- a/third_party/gflags/BUILD +++ /dev/null @@ -1,21 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-gflags", - data = [ - ":cyberfile.xml", - ":3rd-gflags.BUILD", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-gflags/src", - filter = "*", -) \ No newline at end of file diff --git a/third_party/gflags/gflags-2.2.2-shared-library.patch b/third_party/gflags/gflags-2.2.2-shared-library.patch deleted file mode 100644 index f34495ac..00000000 --- a/third_party/gflags/gflags-2.2.2-shared-library.patch +++ /dev/null @@ -1,62 +0,0 @@ -diff --git a/BUILD b/BUILD -index 0e7ccdd..fb7a11f 100644 ---- a/BUILD -+++ b/BUILD -@@ -13,6 +13,10 @@ config_setting( - - load(":bazel/gflags.bzl", "gflags_sources", "gflags_library") - --(hdrs, srcs) = gflags_sources(namespace=["gflags", "google"]) -+# Note: the pre-compiled paddleinference library depends on namespace "google", -+# so we need to use the same namespace for gflags. -+# TODO(All): re-compile paddleinference or include via source and then remove -+# this patch -+(hdrs, srcs) = gflags_sources(namespace=["google", "gflags"]) - gflags_library(hdrs=hdrs, srcs=srcs, threads=0) - gflags_library(hdrs=hdrs, srcs=srcs, threads=1) -diff --git a/bazel/gflags.bzl b/bazel/gflags.bzl -index 533fd61..58b47e9 100644 ---- a/bazel/gflags.bzl -+++ b/bazel/gflags.bzl -@@ -93,11 +93,40 @@ def gflags_library(hdrs=[], srcs=[], threads=1): - name += "_nothreads" - copts += ["-DNO_THREADS"] - native.cc_library( -- name = name, -+ name = name + "_", - hdrs = hdrs, - srcs = srcs, - copts = copts, - linkopts = linkopts, -+ alwayslink = True, -+ linkstatic = True, - visibility = ["//visibility:public"], - include_prefix = 'gflags' - ) -+ native.cc_binary( -+ name = "lib" + name + ".so.2.2", -+ copts = copts, -+ linkopts = [ -+ # Note: the pre-compiled paddleinference library expects -+ # this soname. -+ # TODO(All): re-compile paddleinference with this gflags -+ # directly. and remove this patch -+ '-Wl,-soname=libgflags.so.2.2', -+ ] + linkopts, -+ linkshared = True, -+ linkstatic = True, -+ deps = [":" + name + "_"], -+ visibility = ["//visibility:public"], -+ ) -+ native.cc_library( -+ name = name, -+ hdrs = hdrs, -+ srcs = [":lib" + name + ".so.2.2"], -+ copts = copts, -+ linkopts = linkopts, -+ alwayslink = True, -+ linkstatic = True, -+ visibility = ["//visibility:public"], -+ include_prefix = 'gflags' -+ ) -+ diff --git a/third_party/gflags/gflags.BUILD b/third_party/gflags/gflags.BUILD deleted file mode 100644 index cddc56a5..00000000 --- a/third_party/gflags/gflags.BUILD +++ /dev/null @@ -1,15 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -licenses(["notice"]) - -package(default_visibility = ["//visibility:public"]) - - -cc_library( - name = "gflags", - includes = ["."], - linkopts = [ - "-L/usr/local/lib/", - "-lgflags", - ], -) diff --git a/third_party/gflags/workspace.bzl b/third_party/gflags/workspace.bzl deleted file mode 100644 index 334a96f0..00000000 --- a/third_party/gflags/workspace.bzl +++ /dev/null @@ -1,13 +0,0 @@ -"""Loads the gflags library""" - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -def repo(): - native.new_local_repository( - name = "com_github_gflags_gflags", - build_file = clean_dep("//third_party/gflags:gflags.BUILD"), - path = "/usr/local/include", - ) diff --git a/third_party/glog/3rd-glog.BUILD b/third_party/glog/3rd-glog.BUILD deleted file mode 100644 index db5f549f..00000000 --- a/third_party/glog/3rd-glog.BUILD +++ /dev/null @@ -1,15 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -licenses(["notice"]) - -package(default_visibility = ["//visibility:public"]) - -cc_library( - name = "glog", - includes = ["include"], - hdrs = glob(["include/**/*"]), - linkopts = [ - "-lglog", - ], - strip_include_prefix = "include", -) diff --git a/third_party/glog/BUILD b/third_party/glog/BUILD deleted file mode 100644 index b9a3d2a2..00000000 --- a/third_party/glog/BUILD +++ /dev/null @@ -1,21 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-glog", - data = [ - ":cyberfile.xml", - ":3rd-glog.BUILD", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-glog/src", - filter = "*", -) \ No newline at end of file diff --git a/third_party/glog/glog-0.7.1-gflags-coredump.patch b/third_party/glog/glog-0.7.1-gflags-coredump.patch deleted file mode 100644 index c90262ce..00000000 --- a/third_party/glog/glog-0.7.1-gflags-coredump.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/BUILD.bazel 2025-06-23 17:18:37.668060014 +0800 -+++ b/BUILD.bazel 2025-06-23 15:39:43.929901257 +0800 -@@ -4,7 +4,7 @@ - - load(":bazel/glog.bzl", "glog_library") - --glog_library() -+glog_library(with_gflags=0) - - # platform() to build with clang-cl on Bazel CI. This is enabled with - # the flags in .bazelci/presubmit.yml: diff --git a/third_party/glog/glog.BUILD b/third_party/glog/glog.BUILD deleted file mode 100644 index cfc80fc4..00000000 --- a/third_party/glog/glog.BUILD +++ /dev/null @@ -1,15 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -licenses(["notice"]) - -package(default_visibility = ["//visibility:public"]) - - -cc_library( - name = "glog", - includes = ["."], - linkopts = [ - "-L/usr/local/lib/", - "-lglog", - ], -) diff --git a/third_party/glog/workspace.bzl b/third_party/glog/workspace.bzl deleted file mode 100644 index eb0124b2..00000000 --- a/third_party/glog/workspace.bzl +++ /dev/null @@ -1,13 +0,0 @@ -"""Loads the gflags library""" - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -def repo(): - native.new_local_repository( - name = "com_github_google_glog", - build_file = clean_dep("//third_party/glog:glog.BUILD"), - path = "/usr/local/include", - ) diff --git a/third_party/gtest/BUILD b/third_party/gtest/BUILD deleted file mode 100644 index b4b4c03c..00000000 --- a/third_party/gtest/BUILD +++ /dev/null @@ -1,20 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-gtest", - data = [ - ":cyberfile.xml", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-gtest/src", - filter = "*", -) \ No newline at end of file diff --git a/third_party/gtest/init.bzl b/third_party/gtest/init.bzl deleted file mode 100644 index c0d31bc0..00000000 --- a/third_party/gtest/init.bzl +++ /dev/null @@ -1,6 +0,0 @@ -"""Loads the gtest library""" -load("//third_party/gtest:workspace.bzl", "repo") - -def init(): - repo() - diff --git a/third_party/gtest/workspace.bzl b/third_party/gtest/workspace.bzl deleted file mode 100644 index 8feeb7f2..00000000 --- a/third_party/gtest/workspace.bzl +++ /dev/null @@ -1,15 +0,0 @@ -"""Loads the gtest library""" - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -def repo(): - # googletest (GTest and GMock) - http_archive( - name = "com_google_googletest", - sha256 = "9dc9157a9a1551ec7a7e43daea9a694a0bb5fb8bec81235d8a1e6ef64c716dcb", - strip_prefix = "googletest-release-1.10.0", - urls = [ - "https://apollo-system.cdn.bcebos.com/archive/6.0/release-1.10.0.tar.gz", - "https://github.com/google/googletest/archive/release-1.10.0.tar.gz", - ], - ) diff --git a/third_party/ncurses5/3rd-ncurses5.BUILD b/third_party/ncurses5/3rd-ncurses5.BUILD deleted file mode 100644 index 1e026bea..00000000 --- a/third_party/ncurses5/3rd-ncurses5.BUILD +++ /dev/null @@ -1,17 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -package(default_visibility = ["//visibility:public"]) - -licenses(["notice"]) - -cc_library( - name = "ncurses5", - includes = [ - "include", - ], - linkopts = [ - "-lncurses", - ], - linkstatic = False, - strip_include_prefix = "include", -) diff --git a/third_party/ncurses5/BUILD b/third_party/ncurses5/BUILD deleted file mode 100644 index 695a3303..00000000 --- a/third_party/ncurses5/BUILD +++ /dev/null @@ -1,21 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-ncurses5", - data = [ - ":cyberfile.xml", - ":3rd-ncurses5.BUILD", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-ncurses5/src", - filter = "*", -) diff --git a/third_party/ncurses5/ncurses.BUILD b/third_party/ncurses5/ncurses.BUILD deleted file mode 100644 index b034cbee..00000000 --- a/third_party/ncurses5/ncurses.BUILD +++ /dev/null @@ -1,16 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -package(default_visibility = ["//visibility:public"]) - -licenses(["notice"]) - -cc_library( - name = "ncurses5", - includes = [ - ".", - ], - linkopts = [ - "-lncurses", - ], - linkstatic = False, -) diff --git a/third_party/ncurses5/workspace.bzl b/third_party/ncurses5/workspace.bzl deleted file mode 100644 index ac794952..00000000 --- a/third_party/ncurses5/workspace.bzl +++ /dev/null @@ -1,15 +0,0 @@ -"""Loads the ncurses5 library""" - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -# Installed via libncurses5-dev -def repo(): - # ncurses5 - native.new_local_repository( - name = "ncurses5", - build_file = clean_dep("//third_party/ncurses5:ncurses.BUILD"), - path = "/usr/include", - ) diff --git a/third_party/nlohmann_json/BUILD b/third_party/nlohmann_json/BUILD deleted file mode 100644 index d4a2caaa..00000000 --- a/third_party/nlohmann_json/BUILD +++ /dev/null @@ -1,20 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-nlohmann-json", - data = [ - ":cyberfile.xml", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-nlohmann-json/src", - filter = "*", -) \ No newline at end of file diff --git a/third_party/nlohmann_json/init.bzl b/third_party/nlohmann_json/init.bzl deleted file mode 100644 index 7afb18a7..00000000 --- a/third_party/nlohmann_json/init.bzl +++ /dev/null @@ -1,6 +0,0 @@ -"""Loads the nlohmann_json library""" -load("//third_party/nlohmann_json:workspace.bzl", "repo") - -def init(): - repo() - diff --git a/third_party/nlohmann_json/json.BUILD b/third_party/nlohmann_json/json.BUILD deleted file mode 100644 index d654f827..00000000 --- a/third_party/nlohmann_json/json.BUILD +++ /dev/null @@ -1,24 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -# JSON for Modern C++ -licenses(["notice"]) # 3-Clause BSD - -exports_files(["LICENSE.MIT"]) - -cc_library( - name = "json", - hdrs = glob([ - "include/nlohmann/**/*.hpp", - ]), - includes = ["include"], - visibility = ["//visibility:public"], - alwayslink = 1, -) - -cc_library( - name = "single_json", - hdrs = glob(["single_include/**/*.hpp"]), - strip_include_prefix = "single_include", - visibility = ["//visibility:public"], - alwayslink = 1, -) diff --git a/third_party/nlohmann_json/workspace.bzl b/third_party/nlohmann_json/workspace.bzl deleted file mode 100644 index e203e84e..00000000 --- a/third_party/nlohmann_json/workspace.bzl +++ /dev/null @@ -1,20 +0,0 @@ -"""Loads the nlohmann_json library""" - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -def repo(): - http_archive( - name = "com_github_nlohmann_json", - sha256 = "7d0edf65f2ac7390af5e5a0b323b31202a6c11d744a74b588dc30f5a8c9865ba", - strip_prefix = "json-3.8.0", - build_file = clean_dep("//third_party/nlohmann_json:json.BUILD"), - urls = [ - "https://apollo-system.cdn.bcebos.com/archive/6.0/v3.8.0.tar.gz", - "https://github.com/nlohmann/json/archive/v3.8.0.tar.gz", - ], - ) diff --git a/third_party/portaudio/3rd-portaudio.BUILD b/third_party/portaudio/3rd-portaudio.BUILD deleted file mode 100644 index fe0c61cd..00000000 --- a/third_party/portaudio/3rd-portaudio.BUILD +++ /dev/null @@ -1,18 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -licenses(["notice"]) - -package(default_visibility = ["//visibility:public"]) - -cc_library( - name = "portaudio", - hdrs = glob(["include/**/*"]), - strip_include_prefix = "include", - linkopts = [ - "-lrt", - "-lasound", - "-ljack", - "-lpthread", - "-lportaudio", - ], -) diff --git a/third_party/portaudio/BUILD b/third_party/portaudio/BUILD deleted file mode 100644 index 5595c6ae..00000000 --- a/third_party/portaudio/BUILD +++ /dev/null @@ -1,21 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-portaudio", - data = [ - ":cyberfile.xml", - ":3rd-portaudio.BUILD", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-portaudio/src", - filter = "*", -) \ No newline at end of file diff --git a/third_party/portaudio/portaudio.BUILD b/third_party/portaudio/portaudio.BUILD deleted file mode 100644 index fbe60da6..00000000 --- a/third_party/portaudio/portaudio.BUILD +++ /dev/null @@ -1,18 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -licenses(["notice"]) - -package(default_visibility = ["//visibility:public"]) - -cc_library( - name = "portaudio", - includes = ["."], - hdrs = ["portaudio.h"], - linkopts = [ - "-lrt", - "-lasound", - "-ljack", - "-lpthread", - "-lportaudio", - ], -) diff --git a/third_party/portaudio/workspace.bzl b/third_party/portaudio/workspace.bzl deleted file mode 100644 index e3f4e699..00000000 --- a/third_party/portaudio/workspace.bzl +++ /dev/null @@ -1,13 +0,0 @@ -"""Loads the Portaudio library""" - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -def repo(): - native.new_local_repository( - name = "portaudio", - build_file = clean_dep("//third_party/portaudio:portaudio.BUILD"), - path = "/usr/include", - ) diff --git a/third_party/protobuf/BUILD b/third_party/protobuf/BUILD deleted file mode 100644 index b0cc7c42..00000000 --- a/third_party/protobuf/BUILD +++ /dev/null @@ -1,20 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-protobuf", - data = [ - ":cyberfile.xml", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-protobuf/src", - filter = "*", -) \ No newline at end of file diff --git a/third_party/protobuf/init.bzl b/third_party/protobuf/init.bzl deleted file mode 100644 index cc6ea1f6..00000000 --- a/third_party/protobuf/init.bzl +++ /dev/null @@ -1,6 +0,0 @@ -"""Loads the protobuf library""" -load("//third_party/protobuf:workspace.bzl", "repo") - -def init(): - repo() - diff --git a/third_party/protobuf/protobuf.patch b/third_party/protobuf/protobuf.patch deleted file mode 100644 index 4ae1baf3..00000000 --- a/third_party/protobuf/protobuf.patch +++ /dev/null @@ -1,68 +0,0 @@ ---- BUILD -+++ BUILD -@@ -200,16 +200,32 @@ - includes = ["src/"], - linkopts = LINK_OPTS, - visibility = ["//visibility:public"], -+ alwayslink = True, - ) - - PROTOBUF_DEPS = select({ - ":msvc": [], - "//conditions:default": ZLIB_DEPS, - }) -- - cc_library( - name = "protobuf", - srcs = [ -+ "libprotobuf.so" -+ ], -+ hdrs = glob([ -+ "src/**/*.h", -+ "src/**/*.inc", -+ ]), -+ copts = COPTS, -+ includes = ["src/"], -+ linkopts = LINK_OPTS, -+ visibility = ["//visibility:public"], -+ deps = [":protobuf_lite"] + PROTOBUF_DEPS, -+) -+ -+cc_binary( -+ name = "libprotobuf.so", -+ srcs = glob([ - # AUTOGEN(protobuf_srcs) - "src/google/protobuf/any.cc", - "src/google/protobuf/any.pb.cc", -@@ -263,8 +279,6 @@ - "src/google/protobuf/util/type_resolver_util.cc", - "src/google/protobuf/wire_format.cc", - "src/google/protobuf/wrappers.pb.cc", -- ], -- hdrs = glob([ - "src/**/*.h", - "src/**/*.inc", - ]), -@@ -273,6 +287,7 @@ - linkopts = LINK_OPTS, - visibility = ["//visibility:public"], - deps = [":protobuf_lite"] + PROTOBUF_DEPS, -+ linkshared = True, - ) - - # This provides just the header files for use in projects that need to build -@@ -288,6 +303,14 @@ - includes = ["src/"], - visibility = ["//visibility:public"], - ) -+filegroup( -+ name = "protobuf_hdrs", -+ srcs = glob([ -+ "src/**/*.h", -+ "src/**/*.inc", -+ ]), -+ visibility = ["//visibility:public"], -+) - - # Map of all well known protos. - # name => (include path, imports) \ No newline at end of file diff --git a/third_party/protobuf/workspace.bzl b/third_party/protobuf/workspace.bzl deleted file mode 100644 index e1ac28cc..00000000 --- a/third_party/protobuf/workspace.bzl +++ /dev/null @@ -1,17 +0,0 @@ -"""Loads the protobuf library""" - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -def clean_dep(dep): - return str(Label(dep)) - -def repo(): - http_archive( - name = "com_google_protobuf", - sha256 = "d0f5f605d0d656007ce6c8b5a82df3037e1d8fe8b121ed42e536f569dec16113", - patches = [clean_dep("//third_party/protobuf:protobuf.patch")], - strip_prefix = "protobuf-3.14.0", - urls = [ - "https://apollo-system.cdn.bcebos.com/archive/6.0/v3.14.0.tar.gz", - "https://github.com/protocolbuffers/protobuf/archive/v3.14.0.tar.gz", - ], - ) \ No newline at end of file diff --git a/third_party/sqlite3/3rd-sqlite3.BUILD b/third_party/sqlite3/3rd-sqlite3.BUILD deleted file mode 100644 index 6ec52cdb..00000000 --- a/third_party/sqlite3/3rd-sqlite3.BUILD +++ /dev/null @@ -1,17 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -package(default_visibility = ["//visibility:public"]) - -licenses(["notice"]) - -cc_library( - name = "sqlite3", - includes = [ - "include", - ], - linkopts = [ - "-lsqlite3", - ], - linkstatic = False, - strip_include_prefix = "include", -) diff --git a/third_party/sqlite3/BUILD b/third_party/sqlite3/BUILD deleted file mode 100644 index 03d49ecb..00000000 --- a/third_party/sqlite3/BUILD +++ /dev/null @@ -1,21 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-sqlite3", - data = [ - ":cyberfile.xml", - ":3rd-sqlite3.BUILD", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-sqlite3/src", - filter = "*", -) \ No newline at end of file diff --git a/third_party/sqlite3/sqlite3.BUILD b/third_party/sqlite3/sqlite3.BUILD deleted file mode 100644 index b2f4d819..00000000 --- a/third_party/sqlite3/sqlite3.BUILD +++ /dev/null @@ -1,16 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -package(default_visibility = ["//visibility:public"]) - -licenses(["notice"]) - -cc_library( - name = "sqlite3", - includes = [ - ".", - ], - linkopts = [ - "-lsqlite3", - ], - linkstatic = False, -) diff --git a/third_party/sqlite3/workspace.bzl b/third_party/sqlite3/workspace.bzl deleted file mode 100644 index e4f3f92e..00000000 --- a/third_party/sqlite3/workspace.bzl +++ /dev/null @@ -1,16 +0,0 @@ -"""Loads the sqlite3 library""" - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -# apt-get -y install libsqlite3-dev - -def repo(): - # sqlite3 - native.new_local_repository( - name = "sqlite3", - build_file = clean_dep("//third_party/sqlite3:sqlite3.BUILD"), - path = "/usr/include", - ) diff --git a/third_party/sse2neon/BUILD b/third_party/sse2neon/BUILD deleted file mode 100644 index e69de29b..00000000 diff --git a/third_party/sse2neon/sse2neon.BUILD b/third_party/sse2neon/sse2neon.BUILD deleted file mode 100644 index 56d9fc0e..00000000 --- a/third_party/sse2neon/sse2neon.BUILD +++ /dev/null @@ -1,13 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -package(default_visibility = ["//visibility:public"]) - -licenses(["notice"]) - -cc_library( - name = "sse2neon", - includes = [ - "sse2neon.h", - ], - copts = ["-march=armv8-a+fp+simd+crypto+crc"], -) diff --git a/third_party/sse2neon/workspace.bzl b/third_party/sse2neon/workspace.bzl deleted file mode 100644 index cb136758..00000000 --- a/third_party/sse2neon/workspace.bzl +++ /dev/null @@ -1,19 +0,0 @@ -"""Loads the sse2neon library""" - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -def repo(): - # sse2neon - http_archive( - name = "sse2neon", - build_file = clean_dep("//third_party/sse2neon:sse2neon.BUILD"), - strip_prefix = "sse2neon-1.6.0", - urls = [ - "https://github.com/DLTcollab/sse2neon/archive/refs/tags/v1.6.0.tar.gz", - ], - ) diff --git a/third_party/tinyxml2/3rd-tinyxml2.BUILD b/third_party/tinyxml2/3rd-tinyxml2.BUILD deleted file mode 100644 index 194dde23..00000000 --- a/third_party/tinyxml2/3rd-tinyxml2.BUILD +++ /dev/null @@ -1,13 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -cc_library( - name = "tinyxml2", - includes = [ - "include", - ], - linkopts = [ - "-ltinyxml2", - ], - visibility = ["//visibility:public"], - strip_include_prefix = "include", -) diff --git a/third_party/tinyxml2/BUILD b/third_party/tinyxml2/BUILD deleted file mode 100644 index 114b039a..00000000 --- a/third_party/tinyxml2/BUILD +++ /dev/null @@ -1,20 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) -install( - name = "install", - data_dest = "3rd-tinyxml2", - data = [ - ":cyberfile.xml", - ":3rd-tinyxml2.BUILD", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-tinyxml2/src", - filter = "*", -) \ No newline at end of file diff --git a/third_party/tinyxml2/tinyxml2.BUILD b/third_party/tinyxml2/tinyxml2.BUILD deleted file mode 100644 index 9919006c..00000000 --- a/third_party/tinyxml2/tinyxml2.BUILD +++ /dev/null @@ -1,12 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -cc_library( - name = "tinyxml2", - includes = [ - ".", - ], - linkopts = [ - "-ltinyxml2", - ], - visibility = ["//visibility:public"], -) diff --git a/third_party/tinyxml2/workspace.bzl b/third_party/tinyxml2/workspace.bzl deleted file mode 100644 index 2dbe849e..00000000 --- a/third_party/tinyxml2/workspace.bzl +++ /dev/null @@ -1,14 +0,0 @@ -"""Loads the tinyxml2 library""" - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -def repo(): - # tinyxml2 - native.new_local_repository( - name = "tinyxml2", - build_file = clean_dep("//third_party/tinyxml2:tinyxml2.BUILD"), - path = "/usr/include", - ) diff --git a/third_party/uuid/3rd-uuid.BUILD b/third_party/uuid/3rd-uuid.BUILD deleted file mode 100644 index 8071d8cd..00000000 --- a/third_party/uuid/3rd-uuid.BUILD +++ /dev/null @@ -1,17 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -package(default_visibility = ["//visibility:public"]) - -licenses(["notice"]) - -cc_library( - name = "uuid", - includes = [ - "include", - ], - linkopts = [ - "-luuid", - ], - linkstatic = False, - strip_include_prefix = "include", -) diff --git a/third_party/uuid/BUILD b/third_party/uuid/BUILD deleted file mode 100644 index 31c04548..00000000 --- a/third_party/uuid/BUILD +++ /dev/null @@ -1,21 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-uuid", - data = [ - ":cyberfile.xml", - ":3rd-uuid.BUILD", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-uuid/src", - filter = "*", -) \ No newline at end of file diff --git a/third_party/uuid/uuid.BUILD b/third_party/uuid/uuid.BUILD deleted file mode 100644 index 15c3e78d..00000000 --- a/third_party/uuid/uuid.BUILD +++ /dev/null @@ -1,16 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -package(default_visibility = ["//visibility:public"]) - -licenses(["notice"]) - -cc_library( - name = "uuid", - includes = [ - ".", - ], - linkopts = [ - "-luuid", - ], - linkstatic = False, -) diff --git a/third_party/uuid/workspace.bzl b/third_party/uuid/workspace.bzl deleted file mode 100644 index b8986505..00000000 --- a/third_party/uuid/workspace.bzl +++ /dev/null @@ -1,15 +0,0 @@ -"""Loads the uuid library""" - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -# Installed via uuid-dev -def repo(): - # uuid - native.new_local_repository( - name = "uuid", - build_file = clean_dep("//third_party/uuid:uuid.BUILD"), - path = "/usr/include", - ) diff --git a/third_party/yaml_cpp/BUILD b/third_party/yaml_cpp/BUILD deleted file mode 100644 index 039ba58c..00000000 --- a/third_party/yaml_cpp/BUILD +++ /dev/null @@ -1,20 +0,0 @@ -load("//tools/install:install.bzl", "install", "install_files", "install_src_files") - -package( - default_visibility = ["//visibility:public"], -) - -install( - name = "install", - data_dest = "3rd-yaml-cpp", - data = [ - ":cyberfile.xml", - ], -) - -install_src_files( - name = "install_src", - src_dir = ["."], - dest = "3rd-yaml-cpp/src", - filter = "*", -) diff --git a/third_party/yaml_cpp/init.bzl b/third_party/yaml_cpp/init.bzl deleted file mode 100644 index a476da18..00000000 --- a/third_party/yaml_cpp/init.bzl +++ /dev/null @@ -1,6 +0,0 @@ -"""Loads the yaml_cpp library""" -load("//third_party/yaml_cpp:workspace.bzl", "repo") - -def init(): - repo() - diff --git a/third_party/yaml_cpp/workspace.bzl b/third_party/yaml_cpp/workspace.bzl deleted file mode 100644 index 8d7b1ed7..00000000 --- a/third_party/yaml_cpp/workspace.bzl +++ /dev/null @@ -1,20 +0,0 @@ -"""Loads the yaml-cpp library""" - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -# Sanitize a dependency so that it works correctly from code that includes -# Apollo as a submodule. -def clean_dep(dep): - return str(Label(dep)) - -def repo(): - http_archive( - name = "com_github_jbeder_yaml_cpp", - build_file = clean_dep("//third_party/yaml_cpp:yaml_cpp.BUILD"), - sha256 = "77ea1b90b3718aa0c324207cb29418f5bced2354c2e483a9523d98c3460af1ed", - strip_prefix = "yaml-cpp-yaml-cpp-0.6.3", - urls = [ - "https://apollo-system.cdn.bcebos.com/archive/6.0/yaml-cpp-0.6.3.tar.gz", - "https://github.com/jbeder/yaml-cpp/archive/yaml-cpp-0.6.3.tar.gz", - ], - ) diff --git a/third_party/yaml_cpp/yaml_cpp.BUILD b/third_party/yaml_cpp/yaml_cpp.BUILD deleted file mode 100644 index 8afdfd5d..00000000 --- a/third_party/yaml_cpp/yaml_cpp.BUILD +++ /dev/null @@ -1,35 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_library") - -cc_library( - name = "yaml-cpp", - srcs = glob([ - "src/*.cpp", - ]), - hdrs = glob([ - "include/yaml-cpp/**/*.h", - ]), - includes = [ - "include", - "src", - ], - deps = ["yaml-headers", "yaml-headers-without-prefix"], - strip_include_prefix = "include", - visibility = ["//visibility:public"], -) - -cc_library( - name = "yaml-headers", - hdrs = glob([ - "src/**/*.h", - ]), - include_prefix = "yaml-cpp", - strip_include_prefix = "src", -) - -cc_library( - name = "yaml-headers-without-prefix", - hdrs = glob([ - "src/**/*.h", - ]), - strip_include_prefix = "src", -) diff --git a/tools/workspace.bzl b/tools/workspace.bzl index 4fb5f192..9dd4d177 100644 --- a/tools/workspace.bzl +++ b/tools/workspace.bzl @@ -1,78 +1,44 @@ # Apollo external dependencies that can be loaded in WORKSPACE files. -load("//third_party/absl:workspace.bzl", absl = "repo") load("//third_party/adolc:workspace.bzl", adolc = "repo") load("//third_party/adv_plat:workspace.bzl", adv_plat = "repo") load("//third_party/ad_rss_lib:workspace.bzl", ad_rss_lib = "repo") load("//third_party/atlas:workspace.bzl", atlas = "repo") -load("//third_party/benchmark:workspace.bzl", benchmark = "repo") -load("//third_party/boost:workspace.bzl", boost = "repo") load("//third_party/caddn_infer_op:workspace.bzl", caddn_infer_op = "repo") load("//third_party/centerpoint_infer_op:workspace.bzl", centerpoint_infer_op = "repo") -load("//third_party/civetweb:workspace.bzl", civetweb = "repo") -load("//third_party/cpplint:workspace.bzl", cpplint = "repo") -load("//third_party/eigen3:workspace.bzl", eigen = "repo") load("//third_party/ffmpeg:workspace.bzl", ffmpeg = "repo") load("//third_party/fftw3:workspace.bzl", fftw3 = "repo") -load("//third_party/fastrtps:workspace.bzl", fastrtps = "repo") -load("//third_party/glog:workspace.bzl", glog = "repo") -load("//third_party/gtest:workspace.bzl", gtest = "repo") -load("//third_party/gflags:workspace.bzl", gflags = "repo") load("//third_party/ipopt:workspace.bzl", ipopt = "repo") load("//third_party/libtorch:workspace.bzl", libtorch_cpu = "repo_cpu", libtorch_gpu = "repo_gpu") -load("//third_party/ncurses5:workspace.bzl", ncurses5 = "repo") -load("//third_party/nlohmann_json:workspace.bzl", nlohmann_json = "repo") load("//third_party/npp:workspace.bzl", npp = "repo") load("//third_party/opencv:workspace.bzl", opencv = "repo") load("//third_party/opengl:workspace.bzl", opengl = "repo") load("//third_party/openh264:workspace.bzl", openh264 = "repo") load("//third_party/osqp:workspace.bzl", osqp = "repo") load("//third_party/paddleinference:workspace.bzl", paddleinference = "repo") -load("//third_party/portaudio:workspace.bzl", portaudio = "repo") load("//third_party/proj:workspace.bzl", proj = "repo") -load("//third_party/protobuf:workspace.bzl", protobuf = "repo") load("//third_party/qt5:workspace.bzl", qt5 = "repo") -load("//third_party/sqlite3:workspace.bzl", sqlite3 = "repo") -load("//third_party/tinyxml2:workspace.bzl", tinyxml2 = "repo") -load("//third_party/uuid:workspace.bzl", uuid = "repo") -load("//third_party/yaml_cpp:workspace.bzl", yaml_cpp = "repo") -load("//third_party/sse2neon:workspace.bzl", sse2neon = "repo") load("//third_party/localization_msf:workspace.bzl", localization_msf = "repo") -# load("//third_party/glew:workspace.bzl", glew = "repo") load("//third_party/gpus:cuda_configure.bzl", "cuda_configure") load("//third_party/py:python_configure.bzl", "python_configure") load("//third_party/tensorrt:tensorrt_configure.bzl", "tensorrt_configure") -load("//third_party/vtk:vtk_configure.bzl", "vtk_configure") -load("//third_party/pcl:pcl_configure.bzl", "pcl_configure") load("//third_party/vanjee_driver:workspace.bzl", vanjee_driver = "repo") load("//third_party/rs_driver:workspace.bzl", rs_driver = "repo") def initialize_third_party(): """ Load third party repositories. See above load() statements. """ # TODO(zero): Use bzlmod instead, when test ok will delete later - # absl() adolc() adv_plat() ad_rss_lib() atlas() - # benchmark() - # boost() caddn_infer_op() centerpoint_infer_op() - # cpplint() - # civetweb() - # eigen() - fastrtps() ffmpeg() fftw3() - # gflags() - # glog() - # gtest() ipopt() libtorch_cpu() libtorch_gpu() - # ncurses5() - # nlohmann_json() localization_msf() npp() opencv() @@ -80,15 +46,8 @@ def initialize_third_party(): openh264() osqp() paddleinference() - # portaudio() proj() - # protobuf() qt5() - # sqlite3() - # tinyxml2() - # uuid() - # yaml_cpp() - # sse2neon() vanjee_driver() rs_driver() @@ -99,7 +58,5 @@ def apollo_repositories(): tensorrt_configure(name = "local_config_tensorrt") python_configure(name = "local_config_python") - vtk_configure(name = "local_config_vtk") - # pcl_configure(name = "local_config_pcl") initialize_third_party()