1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

make: manage blacklisted features independently

This commit is contained in:
Alexandre Abadie 2019-10-15 07:55:08 +02:00
parent 63be700fa7
commit 42f9689c7d
No known key found for this signature in database
GPG Key ID: 1C919A403CAE1405
2 changed files with 11 additions and 8 deletions

View File

@ -25,8 +25,7 @@ endif
# Features that are required by the application but not provided by the BSP and # Features that are required by the application but not provided by the BSP and
# features that are used but blacklisted (prepended with "!"). # features that are used but blacklisted (prepended with "!").
# Having features missing may case the build to fail. # Having features missing may case the build to fail.
FEATURES_MISSING = $(sort $(filter-out $(FEATURES_PROVIDED),$(FEATURES_REQUIRED)) \ FEATURES_MISSING = $(sort $(filter-out $(FEATURES_PROVIDED),$(FEATURES_REQUIRED)))
$(call _features_used_blacklisted))
# Features that are only optional and not required at the same time. # Features that are only optional and not required at the same time.
# The policy is to by default use by features if they are provided by the BSP. # The policy is to by default use by features if they are provided by the BSP.
@ -50,6 +49,6 @@ _features_conflicting = $(if $(call _features_used_conflicting,$(subst :, ,$1)),
# Return non empty on error # Return non empty on error
_features_used_conflicting = $(filter $(words $1),$(words $(filter $(FEATURES_USED),$1))) _features_used_conflicting = $(filter $(words $1),$(words $(filter $(FEATURES_USED),$1)))
# Return features that are used but blacklisted as # Features that are used by the application but blacklisted by the BSP.
# "!<feature>" ("not feature") # Having blacklisted features may cause the build to fail.
_features_used_blacklisted = $(addprefix !,$(sort $(filter $(FEATURES_USED), $(FEATURES_BLACKLIST)))) FEATURES_USED_BLACKLISTED = $(sort $(filter $(FEATURES_USED), $(FEATURES_BLACKLIST)))

View File

@ -732,9 +732,6 @@ ifneq (, $(filter all flash, $(if $(MAKECMDGOALS), $(MAKECMDGOALS), all)))
EXPECT_ERRORS := 1 EXPECT_ERRORS := 1
endif endif
# turn provided but blacklisted features into required "!<feature>"
FEATURES_REQUIRED += $(addprefix !,$(sort $(filter $(FEATURES_PROVIDED), $(FEATURES_BLACKLIST))))
# Test if all feature requirements were met by the selected board. # Test if all feature requirements were met by the selected board.
ifneq (,$(FEATURES_MISSING)) ifneq (,$(FEATURES_MISSING))
$(shell $(COLOR_ECHO) "$(COLOR_RED)There are unsatisfied feature requirements:$(COLOR_RESET)"\ $(shell $(COLOR_ECHO) "$(COLOR_RED)There are unsatisfied feature requirements:$(COLOR_RESET)"\
@ -742,6 +739,13 @@ ifneq (, $(filter all flash, $(if $(MAKECMDGOALS), $(MAKECMDGOALS), all)))
EXPECT_ERRORS := 1 EXPECT_ERRORS := 1
endif endif
# Test if no feature in the requirements used is blacklisted for the selected board.
ifneq (,$(FEATURES_USED_BLACKLISTED))
$(shell $(COLOR_ECHO) "$(COLOR_RED)Some feature requirements are blacklisted:$(COLOR_RESET)"\
"$(FEATURES_USED_BLACKLISTED)" 1>&2)
EXPECT_ERRORS := 1
endif
# Test if any used feature conflict with another one. # Test if any used feature conflict with another one.
ifneq (,$(FEATURES_CONFLICTING)) ifneq (,$(FEATURES_CONFLICTING))
$(shell $(COLOR_ECHO) "$(COLOR_YELLOW)The following features may conflict:$(COLOR_RESET)"\ $(shell $(COLOR_ECHO) "$(COLOR_YELLOW)The following features may conflict:$(COLOR_RESET)"\