diff --git a/HISTORY.rst b/HISTORY.rst index 72aa6086..21c9e01d 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -20,6 +20,8 @@ PlatformIO 3.0 * Don't export ``CPPPATH`` of project dependent libraries to frameworks (`issue #1665 `_) +* Handle "architectures" data from "library.properties" manifest in + `lib_compat_mode = strict `__ * Fixed issue with invalid LD script if path contains space 3.5.3 (2018-06-01) diff --git a/docs b/docs index 63bb3e44..83d669ae 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit 63bb3e4420cc99de452ee94f91989600eb12d304 +Subproject commit 83d669ae03daeef595843e6dd47316f636d958b3 diff --git a/platformio/builder/tools/piolib.py b/platformio/builder/tools/piolib.py index 76798b8e..2523287e 100644 --- a/platformio/builder/tools/piolib.py +++ b/platformio/builder/tools/piolib.py @@ -501,6 +501,28 @@ class ArduinoLibBuilder(LibBuilderBase): def is_frameworks_compatible(self, frameworks): return util.items_in_list(frameworks, ["arduino", "energia"]) + def is_platforms_compatible(self, platforms): + platforms_map = { + "avr": "atmelavr", + "sam": "atmelsam", + "samd": "atmelsam", + "esp8266": "espressif8266", + "esp32": "espressif32", + "arc32": "intel_arc32", + "stm32": "ststm32" + } + items = [] + for arch in self._manifest.get("architectures", "").split(","): + arch = arch.strip() + if arch == "*": + items = "*" + break + if arch in platforms_map: + items.append(platforms_map[arch]) + if not items: + return LibBuilderBase.is_platforms_compatible(self, platforms) + return util.items_in_list(platforms, items) + class MbedLibBuilder(LibBuilderBase):