Better handling of installed libs for Project Generator

This commit is contained in:
Ivan Kravets
2016-01-28 00:20:01 +02:00
parent c74f122426
commit df8fda5b69
4 changed files with 26 additions and 14 deletions

View File

@ -21,3 +21,4 @@
platform = atmelavr
framework = arduino
board = engduinov3
lib_install = 574

View File

@ -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"

View File

@ -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

View File

@ -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):