From 61c33ca24ebcc6308a92728f06c326ff5dea26bc Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Thu, 9 Mar 2017 19:42:46 +0800 Subject: [PATCH] =?UTF-8?q?make:=20don=E2=80=99t=20override=20TEST=5FCOMPO?= =?UTF-8?q?NENTS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When idf_monitor is launched from make, it gets modified TEST_COMPONENTS variable which contains full paths to the test components instead of the names. This causes TEST_COMPONENT_PATHS to be empty and the unit test app gets built without any test components. This change introduces an internal TEST_COMPONENTS_LIST variable which gets set either from $(COMPONENTS) if TESTS_ALL is 1, and from TEST_COMOPONENTS otherwise. Bootloader makefile is also fixed to avoid propagating TESTS_ALL to the bootloader build step. --- components/bootloader/Makefile.projbuild | 2 +- make/project.mk | 15 +++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/components/bootloader/Makefile.projbuild b/components/bootloader/Makefile.projbuild index 9e7b17b65f..be3ec5f88f 100644 --- a/components/bootloader/Makefile.projbuild +++ b/components/bootloader/Makefile.projbuild @@ -23,7 +23,7 @@ BOOTLOADER_OFFSET := 0x1000 # Custom recursive make for bootloader sub-project BOOTLOADER_MAKE=+$(MAKE) -C $(BOOTLOADER_COMPONENT_PATH)/src \ - V=$(V) BUILD_DIR_BASE=$(BOOTLOADER_BUILD_DIR) TEST_COMPONENTS= + V=$(V) BUILD_DIR_BASE=$(BOOTLOADER_BUILD_DIR) TEST_COMPONENTS= TESTS_ALL= .PHONY: bootloader-clean bootloader-flash bootloader $(BOOTLOADER_BIN) diff --git a/make/project.mk b/make/project.mk index d5a72c5d1c..c2158b89d5 100644 --- a/make/project.mk +++ b/make/project.mk @@ -127,17 +127,16 @@ COMPONENT_PATHS += $(abspath $(SRCDIRS)) # A component is buildable if it has a component.mk makefile in it COMPONENT_PATHS_BUILDABLE := $(foreach cp,$(COMPONENT_PATHS),$(if $(wildcard $(cp)/component.mk),$(cp))) -# If TESTS_ALL set to 1, set TEST_COMPONENTS to all components +# If TESTS_ALL set to 1, set TEST_COMPONENTS_LIST to all components ifeq ($(TESTS_ALL),1) -TEST_COMPONENTS := $(COMPONENTS) +TEST_COMPONENTS_LIST := $(COMPONENTS) +else +# otherwise, use TEST_COMPONENTS +TEST_COMPONENTS_LIST := $(TEST_COMPONENTS) endif +TEST_COMPONENT_PATHS := $(foreach comp,$(TEST_COMPONENTS_LIST),$(firstword $(foreach dir,$(COMPONENT_DIRS),$(wildcard $(dir)/$(comp)/test)))) +TEST_COMPONENT_NAMES := $(foreach comp,$(TEST_COMPONENT_PATHS),$(lastword $(subst /, ,$(dir $(comp))))_test) -# If TEST_COMPONENTS is set, create variables for building unit tests -ifdef TEST_COMPONENTS -override TEST_COMPONENTS := $(foreach comp,$(TEST_COMPONENTS),$(firstword $(foreach dir,$(COMPONENT_DIRS),$(wildcard $(dir)/$(comp)/test)))) -TEST_COMPONENT_PATHS := $(TEST_COMPONENTS) -TEST_COMPONENT_NAMES := $(foreach comp,$(TEST_COMPONENTS),$(lastword $(subst /, ,$(dir $(comp))))_test) -endif # Initialise project-wide variables which can be added to by # each component.