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

Merge pull request #20408 from maribu/makefiles/features_check.inc.mk

build system: Improve failure mode for FEAUTRES_REQUIRED_ANY
This commit is contained in:
Marian Buschsieweke 2024-02-22 14:08:49 +00:00 committed by GitHub
commit 7ddae48408
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 11 additions and 10 deletions

View File

@ -44,17 +44,18 @@ FEATURES_USED_SO_FAR := $(sort $(FEATURES_REQUIRED) $(FEATURES_OPTIONAL_USED))
# ==> If one (or more) already used features is listed in item, this (or
# one of these) will be in the front of "tmp" and be taken
# ==> If one (or more) usable features is listed in item, this will come
# afterwards. If no no feature in item is used so for, one of the
# afterwards. If no feature in item is used so far, one of the
# features supported and listed in item will be picked
# ==> At the end of the list item itself (with pipes between features) is the
# last item in "tmp". If no feature is item is supported or used, this
# will be the only item in "tmp" and be picked
# ==> At the end of the list, feature alternatives in item itself are added.
# If no feature in item is already used or usable, the first alternative is
# just added, triggering a warning about a feature being missing or
# conflicting later on.
FEATURES_REQUIRED_ONE_OUT_OF := $(foreach item,\
$(FEATURES_REQUIRED_ANY),\
$(word 1,\
$(filter $(FEATURES_USED_SO_FAR),$(subst |, ,$(item)))\
$(filter $(FEATURES_USABLE),$(subst |, ,$(item)))\
$(item)))
$(subst |, ,$(item))))
# Features that are required by the application but not provided by the BSP
# Having features missing may case the build to fail.

View File

@ -7,9 +7,9 @@ FEATURES_BLACKLIST := a
FEATURES_CONFLICT := f:e c:d
# expected results
EXPECTED_FEATURES_USED := a|h|i b c d
EXPECTED_FEATURES_MISSING := a|h|i
EXPECTED_FEATURES_USED_BLACKLISTED :=
EXPECTED_FEATURES_USED := a b c d
EXPECTED_FEATURES_MISSING :=
EXPECTED_FEATURES_USED_BLACKLISTED := a
EXPECTED_FEATURES_CONFLICTING := c d
include Makefile.test

View File

@ -7,8 +7,8 @@ FEATURES_BLACKLIST :=
FEATURES_CONFLICT :=
# expected results
EXPECTED_FEATURES_USED := d|b|a
EXPECTED_FEATURES_MISSING := d|b|a
EXPECTED_FEATURES_USED := d
EXPECTED_FEATURES_MISSING := d
EXPECTED_FEATURES_USED_BLACKLISTED :=
EXPECTED_FEATURES_CONFLICTING :=