Better handling of library.properties "architectures" meta data

This commit is contained in:
Ivan Kravets
2019-06-23 21:21:34 +03:00
parent 4b7916c2af
commit c0a9ae5c70

View File

@@ -507,22 +507,23 @@ class ArduinoLibBuilder(LibBuilderBase):
def is_platforms_compatible(self, platforms): def is_platforms_compatible(self, platforms):
platforms_map = { platforms_map = {
"avr": "atmelavr", "avr": ["atmelavr"],
"sam": "atmelsam", "sam": ["atmelsam"],
"samd": "atmelsam", "samd": ["atmelsam"],
"esp8266": "espressif8266", "esp8266": ["espressif8266"],
"esp32": "espressif32", "esp32": ["espressif32"],
"arc32": "intel_arc32", "arc32": ["intel_arc32"],
"stm32": "ststm32" "stm32": ["ststm32"],
"nrf5": ["nordicnrf51", "nordicnrf52"]
} }
items = [] items = []
for arch in self._manifest.get("architectures", "").split(","): for arch in self._manifest.get("architectures", "").split(","):
arch = arch.strip() arch = arch.strip().lower()
if arch == "*": if arch == "*":
items = "*" items = "*"
break break
if arch in platforms_map: if arch in platforms_map:
items.append(platforms_map[arch]) items.extend(platforms_map[arch])
if not items: if not items:
return LibBuilderBase.is_platforms_compatible(self, platforms) return LibBuilderBase.is_platforms_compatible(self, platforms)
return util.items_in_list(platforms, items) return util.items_in_list(platforms, items)