diff --git a/.gitlab/templates/build-test.yml b/.gitlab/templates/build-test.yml index ad82ba1fb0adc90fbea5aee65f3d0667920c39f1..3bbc4a30d45d95d2037f75271bbdc0a337fe88e6 100644 --- a/.gitlab/templates/build-test.yml +++ b/.gitlab/templates/build-test.yml @@ -30,7 +30,7 @@ when: on_failure expire_in: 2 days paths: - - build/*.txt + - build/**/*.log .build-products-all-products: extends: .build-products diff --git a/Makefile.cmake b/Makefile.cmake index 569833b9ce9ce01a2ec778608e92c62bff657c20..2b9552f6e7915880185cafd36cdcd80731a9dccf 100644 --- a/Makefile.cmake +++ b/Makefile.cmake @@ -59,6 +59,7 @@ DEFAULT_BUILD_SYSTEM := Ninja export CMSIS_DIR := $(TOP_DIR)/contrib/cmsis/git/CMSIS/Core DEFAULT_LOG_LEVEL_debug := INFO DEFAULT_LOG_LEVEL_release := WARN +DEFAULT_DIRECT_BUILD := n DEFAULT_CMAKE_TOOL_LOG_LEVEL := NOTICE @@ -110,6 +111,10 @@ else MAKEFLAGS += --no-print-directory endif +# Build directly to build directory +DIRECT_BUILD ?= $(DEFAULT_DIRECT_BUILD) +export DIRECT_BUILD + # Include debugger library: y/n DEBUGGER ?= $(DEFAULT_DEBUGGER) ifeq ($(DEBUGGER),y) @@ -155,10 +160,12 @@ ifneq ($(filter-out $(PRODUCT_INDEPENDENT_GOALS), $(MAKECMDGOALS)),) FIRMWARE_TARGETS := $(addprefix firmware-, $(BS_FIRMWARE_LIST)) -ifndef PLATFORM_VARIANT - PRODUCT_BUILD_PATH := $(BUILD_PATH)/$(BS_PRODUCT_NAME)/$(TOOLCHAIN)/$(MODE) -else - PRODUCT_BUILD_PATH := $(BUILD_PATH)/$(BS_PRODUCT_NAME)/platform_variant_$(PLATFORM_VARIANT)/$(TOOLCHAIN)/$(MODE) +ifeq ($(DIRECT_BUILD), n) + ifndef PLATFORM_VARIANT + BUILD_PATH := $(BUILD_PATH)/$(BS_PRODUCT_NAME)/$(TOOLCHAIN)/$(MODE) + else + BUILD_PATH := $(BUILD_PATH)/$(BS_PRODUCT_NAME)/platform_variant_$(PLATFORM_VARIANT)/$(TOOLCHAIN)/$(MODE) + endif endif define msg_start @@ -298,19 +305,23 @@ help: @echo " Enable or disable generation of code coverage reports for unit tests." @echo " Use ENABLE_COVERAGE=y to enable coverage for 'fwk_test' and 'mod_test' targets." @echo "" - + @echo " DIRECT_BUILD" + @echo " Value: " + @echo " Default: n" + @echo " Build directly to the specified build path without modifying it." + @echo "" .SECONDEXPANSION: .PHONY: all all: $(FIRMWARE_TARGETS) -firmware-%: $(PRODUCT_BUILD_PATH)/$$@/CMakeCache.txt +firmware-%: $(BUILD_PATH)/$$@/CMakeCache.txt $(CMAKE) --build $(