Keep vanetza-idf in obu-firmware, so a plain clone builds the firmware

obu-firmware builds against the vanetza-idf C-ITS library, which until now
came from the colleague's microbu-esp32c5 tree beside the repository and was
not tracked here, so a clone of this repository could not build the firmware
it ships. The library alone is now part of obu-firmware, as
obu-firmware/external/vanetza-idf: their external/vanetza-idf at commit
cf4b99f, unchanged (9775 files; see its PROVENANCE.md). CMake takes it from
there by default; -DVANETZA_IDF_DIR still points the build elsewhere.

The rest of the colleague's tree (their own VAM firmware, PKI tooling,
station-link Python tools, the V2X2MAP bridge) stays out of this repository
and gitignored; nothing is pushed to their repository. NOTES.md, docs/06,
TODO.md and the pcap verifier's usage line point at the new location.
This commit is contained in:
Ashin Walpola
2026-09-24 10:56:05 +02:00
parent 2f60623e18
commit d107534eb2
9781 changed files with 1560475 additions and 17 deletions
@@ -0,0 +1,61 @@
ARG DEBIAN_VERSION=stable
ARG UBUNTU_VERSION=resolute
FROM debian:${DEBIAN_VERSION} AS debian
ARG DEBIAN_FRONTEND=noninteractive
SHELL ["/bin/bash", "-c"]
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
capnproto \
clang \
cmake \
git \
libboost-date-time-dev \
libboost-program-options-dev \
libboost-system-dev \
libcapnp-dev \
libcrypto++-dev \
libgeographiclib-dev \
libssl-dev \
ninja-build \
pkg-config \
&& rm -rf /var/lib/apt/lists/*
COPY --chmod=755 build_and_run_tests.sh build_strict_cxx14.sh /usr/local/bin/
RUN useradd -m build-user
USER build-user
WORKDIR /home/build-user
ENTRYPOINT ["build_and_run_tests.sh"]
CMD ["/home/build-user/workspace"]
FROM debian AS strict-cxx14
ENTRYPOINT ["build_strict_cxx14.sh"]
CMD ["/home/build-user/workspace"]
FROM ubuntu:${UBUNTU_VERSION} AS ubuntu
ARG DEBIAN_FRONTEND=noninteractive
SHELL ["/bin/bash", "-c"]
COPY --chmod=755 update_cmake.sh apt_pkg_name.sh /usr/local/bin/
RUN update_cmake.sh && apt-get update && \
apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
capnproto \
cmake \
git \
libboost-date-time-dev \
libboost-program-options-dev \
libboost-system-dev \
libcapnp-dev \
libcrypto++-dev \
$(apt_pkg_name.sh geographiclib) \
libssl-dev \
ninja-build \
pkg-config \
&& rm -rf /var/lib/apt/lists/*
COPY build_and_run_tests.sh /usr/local/bin/build_and_run_tests.sh
RUN useradd -m build-user
USER build-user
WORKDIR /home/build-user
ENTRYPOINT ["build_and_run_tests.sh"]
CMD ["/home/build-user/workspace"]
@@ -0,0 +1,26 @@
#!/bin/bash
set -euo pipefail
source /etc/os-release
case $VERSION_CODENAME in
bionic|focal|jammy)
GEOGRAPHICLIB=libgeographic-dev
;;
noble|resolute)
GEOGRAPHICLIB=libgeographiclib-dev
;;
*)
echo "Unsupported Ubuntu version: $VERSION_CODENAME"
exit 1
;;
esac
case $1 in
geographiclib)
echo $GEOGRAPHICLIB
;;
*)
echo "Unknown package name: $1"
exit 1
;;
esac
@@ -0,0 +1,20 @@
#!/bin/bash
set -e
SCRIPT=$(readlink -f $0)
SCRIPT_PATH=$(dirname $SCRIPT)
ROOT=${1:-$SCRIPT_PATH/../..}
ROOT_PATH=$(readlink -f ${ROOT})
BUILD_DIR=${BUILD_DIR:-$PWD/build}
mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
cmake -G Ninja \
-DVANETZA_WITH_CRYPTOPP=ON \
-DVANETZA_WITH_OPENSSL=ON \
-DBUILD_CERTIFY=ON \
-DBUILD_PKI=ON \
-DBUILD_SOCKTAP=ON \
-DBUILD_TESTS=ON \
-DGTest_BUILD_DIRECTORY_DOWNLOAD=ON \
${ROOT_PATH}
cmake --build .
ctest --output-on-failure
@@ -0,0 +1,24 @@
#!/bin/bash
# Strict C++14 compile check for the Vanetza libraries.
set -e
SCRIPT=$(readlink -f "$0")
SCRIPT_PATH=$(dirname "$SCRIPT")
ROOT=${1:-$SCRIPT_PATH/../..}
ROOT_PATH=$(readlink -f "${ROOT}")
BUILD_DIR=${BUILD_DIR:-$PWD/build}
mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}"
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DCMAKE_CXX_STANDARD=14 \
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
-DCMAKE_CXX_EXTENSIONS=OFF \
-DVANETZA_WITH_CRYPTOPP=ON \
-DVANETZA_WITH_OPENSSL=ON \
-DVANETZA_WITH_GEOGRAPHICLIB=ON \
-DVANETZA_WITH_RPC=OFF \
-DBUILD_TESTS=OFF \
"${ROOT_PATH}"
cmake --build .
@@ -0,0 +1,9 @@
#!/bin/bash
set -e
: ${UBUNTU_VERSION:=resolute}
SCRIPT_DIR=$(dirname ${BASH_SOURCE[0]})
ROOT_DIR=$(readlink -m "${SCRIPT_DIR}/../..")
echo "Compiling Vanetza for Ubuntu ${UBUNTU_VERSION} and running tests..."
docker build --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --tag vanetza/docker-ci:${UBUNTU_VERSION} ${SCRIPT_DIR}
docker run --rm -it -v${ROOT_DIR}:/home/build-user/workspace:ro vanetza/docker-ci:${UBUNTU_VERSION}
@@ -0,0 +1,21 @@
#!/bin/bash
source /etc/os-release
export DEBIAN_FRONTEND=noninteractive
install_kitware_repo() {
GPG_KEYFILE=/usr/share/keyrings/kitware-archive-keyring.gpg
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor > $GPG_KEYFILE
echo "deb [signed-by=$GPG_KEYFILE] https://apt.kitware.com/ubuntu/ ${UBUNTU_CODENAME} main" > /etc/apt/sources.list.d/kitware.list
echo "Added Kitware repository for Ubuntu $UBUNTU_CODENAME"
}
if [[ "${UBUNTU_CODENAME}" == "xenial" ]]; then
apt-get update && apt-get install -y apt-transport-https wget
install_kitware_repo
elif [[ "${UBUNTU_CODENAME}" == "bionic" ]]; then
apt-get update && apt-get install -y gpg wget
install_kitware_repo
else
# Ubuntu focal and later ship with a sufficiently new CMake version
echo "No need to add Kitware repository for Ubuntu $UBUNTU_CODENAME"
fi