diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2023-05-05 14:41:20 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2023-05-08 21:58:56 +0200 |
commit | e9d386f7f51148d0c0796eee246dcacf691e46ea (patch) | |
tree | 0de75b5e2519bdf25eee1cdb30f8d4e054d285be | |
parent | build: Gather only enabled test headers (diff) | |
download | rtems-central-e9d386f7f51148d0c0796eee246dcacf691e46ea.tar.bz2 |
build: Use custom enabled set
-rw-r--r-- | rtemsspec/build.py | 17 | ||||
-rw-r--r-- | rtemsspec/tests/spec-build/bsp.yml | 4 |
2 files changed, 15 insertions, 6 deletions
diff --git a/rtemsspec/build.py b/rtemsspec/build.py index 4ae93390..19af49e2 100644 --- a/rtemsspec/build.py +++ b/rtemsspec/build.py @@ -26,7 +26,7 @@ from typing import Dict, List -from rtemsspec.items import is_enabled, Item, ItemCache +from rtemsspec.items import is_enabled, Item, ItemCache, Link BSPMap = Dict[str, Dict[str, Item]] ItemMap = Dict[str, Item] @@ -69,11 +69,16 @@ _BUILD_ROLES = ["build-dependency", "build-dependency-conditional"] def _gather_source_files(item: Item, enabled: List[str], source_files: List[str]) -> None: - for link in item.links_to_parents(_BUILD_ROLES): - if (link.role == "build-dependency" or is_enabled( - enabled, - link["enabled-by"])) and link.item.is_enabled(enabled): - _gather_source_files(link.item, enabled, source_files) + + def _is_enabled(link: Link) -> bool: + if not link.item.is_enabled(enabled): + return False + if link.role == "build-dependency": + return True + return is_enabled(enabled, link["enabled-by"]) + + for parent in item.parents(_BUILD_ROLES, is_link_enabled=_is_enabled): + _gather_source_files(parent, enabled, source_files) _EXTEND_SOURCE_FILES[item["build-type"]](item, source_files) diff --git a/rtemsspec/tests/spec-build/bsp.yml b/rtemsspec/tests/spec-build/bsp.yml index d622b71b..075639c8 100644 --- a/rtemsspec/tests/spec-build/bsp.yml +++ b/rtemsspec/tests/spec-build/bsp.yml @@ -10,6 +10,10 @@ links: not: false role: build-dependency-conditional uid: o +- enabled-by: + not: A + role: build-dependency-conditional + uid: x - role: build-dependency uid: op - role: build-dependency |