diff --git a/Makefile b/Makefile index ff62fe3..0ac1b8c 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,8 @@ BUILD_TESTING = VERBOSE = 0 USE_PROJ = USE_FFMPEG = +C_COMPILER = +CXX_COMPILER = # User vars -include config.mk @@ -28,7 +30,7 @@ else ifeq ($(ROS_VERSION),2) endif # A unique ID for this exact config we're using -configuid=$(shell echo "$(BUILD_TYPE) $(INSTALL_PREFIX) $(BUILD_TESTING) $(USE_PROJ) $(USE_FFMPEG) $(FPSDK_VERSION_STRING) $(CC) $(CXX) $$(uname -a)" | md5sum | cut -d " " -f1) +configuid=$(shell echo "$(BUILD_TYPE) $(INSTALL_PREFIX) $(BUILD_TESTING) $(USE_PROJ) $(USE_FFMPEG) $(FPSDK_VERSION_STRING) $(C_COMPILER) $(CXX_COMPILER) $$(uname -a)" | md5sum | cut -d " " -f1) .PHONY: help help: @@ -139,6 +141,12 @@ endif ifneq ($(FPSDK_VERSION_STRING),) CMAKE_ARGS += -DVERSION_STRING=$(FPSDK_VERSION_STRING) endif +ifneq ($(C_COMPILER),) + CMAKE_ARGS += -DCMAKE_C_COMPILER=$(C_COMPILER) +endif +ifneq ($(CXX_COMPILER),) + CMAKE_ARGS += -DCMAKE_CXX_COMPILER=$(CXX_COMPILER) +endif ifeq ($(BUILD_TYPE),Release) CMAKE_ARGS_INSTALL += --strip @@ -188,7 +196,7 @@ cmake: $(BUILD_DIR)/.make-cmake deps_cmake := Makefile $(wildcard config.mk) $(wildcard $(sort $(wildcard CMakeLists.txt */CMakeLists.txt */cmake/*))) $(BUILD_DIR)/.make-cmake: $(deps_cmake) $(BUILD_DIR)/.make-configuid-$(configuid) - @echo "$(HLW)***** Configure ($(BUILD_TYPE)) *****$(HLO)" + @echo "$(HLW)***** Configure ($(CMAKE_ARGS)) *****$(HLO)" $(V)$(CMAKE) -B $(BUILD_DIR) $(CMAKE_ARGS) $(V)$(TOUCH) $@ diff --git a/docker/ci.sh b/docker/ci.sh index 28e3238..a1459fd 100755 --- a/docker/ci.sh +++ b/docker/ci.sh @@ -207,7 +207,7 @@ function build_toplevel_release_clang cd ${FPSDK_SRC_DIR} rm -rf build/${buildname} make install \ - CC=clang CXX=clang++ \ + C_COMPILER=clang CXX_COMPILER=clang++ \ INSTALL_PREFIX=install/${buildname} \ BUILD_TYPE=Release \ BUILD_DIR=build/${buildname} || return 1 @@ -222,7 +222,7 @@ function build_toplevel_debug_clang cd ${FPSDK_SRC_DIR} rm -rf build/${buildname} make install \ - CC=clang CXX=clang++ \ + C_COMPILER=clang CXX_COMPILER=clang++ \ INSTALL_PREFIX=install/${buildname} \ BUILD_TYPE=Debug \ BUILD_DIR=build/${buildname} || return 1 @@ -555,9 +555,9 @@ do_step build_projs_release_noros_mindeps || true # continue do_step build_examples || true # continue -# Some minimal checks with clang +# Some minimal checks with clang on the reference system (Trixie) and a more recent Ubuntu 26 (= ROS2 Lyrical) echo "===== clang =====" -if [ "${FPSDK_IMAGE%-*}" = "trixie" ]; then +if [ "${FPSDK_IMAGE%-*}" = "trixie" -o "${FPSDK_IMAGE%-*}" = "lyrical" ]; then do_step build_toplevel_release_clang || true # continue do_step build_toplevel_debug_clang || true # continue fi diff --git a/docker/scripts/install_apt_base.sh b/docker/scripts/install_apt_base.sh index 75fe8a6..df54b96 100755 --- a/docker/scripts/install_apt_base.sh +++ b/docker/scripts/install_apt_base.sh @@ -44,6 +44,7 @@ packages=$(awk -v filt=${FPSDK_IMAGE%-*} '$1 ~ filt { print $2 }' <