diff --git a/examples/atmelavr-and-arduino/engduino-magnetometer/platformio.ini b/examples/atmelavr-and-arduino/engduino-magnetometer/platformio.ini index fcd5f14e..c75d3321 100644 --- a/examples/atmelavr-and-arduino/engduino-magnetometer/platformio.ini +++ b/examples/atmelavr-and-arduino/engduino-magnetometer/platformio.ini @@ -21,3 +21,4 @@ platform = atmelavr framework = arduino board = engduinov3 +lib_install = 574 diff --git a/platformio/__init__.py b/platformio/__init__.py index 63321439..4444c58e 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -14,7 +14,7 @@ import sys -VERSION = (2, 8, "0.dev6") +VERSION = (2, 8, "0.dev7") __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" diff --git a/platformio/builder/tools/piomisc.py b/platformio/builder/tools/piomisc.py index 758f45b5..8339a22d 100644 --- a/platformio/builder/tools/piomisc.py +++ b/platformio/builder/tools/piomisc.py @@ -137,6 +137,8 @@ def ConvertInoToCpp(env): def DumpIDEData(env): + BOARD_CORE = env.get("BOARD_OPTIONS", {}).get("build", {}).get("core") + def get_includes(): includes = [] # includes from used framework and libs @@ -154,19 +156,7 @@ def DumpIDEData(env): # installed libs for d in env.get("LIBSOURCE_DIRS", []): lsd_dir = env.subst(d) - for name in env.get("LIB_USE", []) + sorted(listdir(lsd_dir)): - if not isdir(join(lsd_dir, name)): - continue - # ignore user's specified libs - if name in env.get("LIB_IGNORE", []): - continue - include = ( - join(lsd_dir, name, "src") - if isdir(join(lsd_dir, name, "src")) - else join(lsd_dir, name) - ) - if include not in includes: - includes.append(include) + _append_lib_includes(lsd_dir, includes) # includes from toolchain toolchain_dir = env.subst( @@ -180,6 +170,25 @@ def DumpIDEData(env): return includes + def _append_lib_includes(libs_dir, includes): + for name in env.get("LIB_USE", []) + sorted(listdir(libs_dir)): + if not isdir(join(libs_dir, name)): + continue + # ignore user's specified libs + if name in env.get("LIB_IGNORE", []): + continue + if name == "__cores__" and isdir(join(libs_dir, name, BOARD_CORE)): + return _append_lib_includes( + join(libs_dir, name, BOARD_CORE), includes) + + include = ( + join(libs_dir, name, "src") + if isdir(join(libs_dir, name, "src")) + else join(libs_dir, name) + ) + if include not in includes: + includes.append(include) + def get_defines(): defines = [] # global symbols diff --git a/platformio/telemetry.py b/platformio/telemetry.py index 0a528669..cabda599 100644 --- a/platformio/telemetry.py +++ b/platformio/telemetry.py @@ -98,6 +98,8 @@ class MeasurementProtocol(TelemetryBase): dpdata.append("Click/%s" % click.__version__) if app.get_session_var("caller_id"): dpdata.append("Caller/%s" % app.get_session_var("caller_id")) + if getenv("PLATFORMIO_IDE"): + dpdata.append("IDE/%s" % getenv("PLATFORMIO_IDE")) self['an'] = " ".join(dpdata) def _prefill_custom_data(self):