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 platform = atmelavr
framework = arduino framework = arduino
board = engduinov3 board = engduinov3
lib_install = 574

View File

@@ -14,7 +14,7 @@
import sys import sys
VERSION = (2, 8, "0.dev6") VERSION = (2, 8, "0.dev7")
__version__ = ".".join([str(s) for s in VERSION]) __version__ = ".".join([str(s) for s in VERSION])
__title__ = "platformio" __title__ = "platformio"

View File

@@ -137,6 +137,8 @@ def ConvertInoToCpp(env):
def DumpIDEData(env): def DumpIDEData(env):
BOARD_CORE = env.get("BOARD_OPTIONS", {}).get("build", {}).get("core")
def get_includes(): def get_includes():
includes = [] includes = []
# includes from used framework and libs # includes from used framework and libs
@@ -154,19 +156,7 @@ def DumpIDEData(env):
# installed libs # installed libs
for d in env.get("LIBSOURCE_DIRS", []): for d in env.get("LIBSOURCE_DIRS", []):
lsd_dir = env.subst(d) lsd_dir = env.subst(d)
for name in env.get("LIB_USE", []) + sorted(listdir(lsd_dir)): _append_lib_includes(lsd_dir, includes)
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)
# includes from toolchain # includes from toolchain
toolchain_dir = env.subst( toolchain_dir = env.subst(
@@ -180,6 +170,25 @@ def DumpIDEData(env):
return includes 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(): def get_defines():
defines = [] defines = []
# global symbols # global symbols

View File

@@ -98,6 +98,8 @@ class MeasurementProtocol(TelemetryBase):
dpdata.append("Click/%s" % click.__version__) dpdata.append("Click/%s" % click.__version__)
if app.get_session_var("caller_id"): if app.get_session_var("caller_id"):
dpdata.append("Caller/%s" % 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) self['an'] = " ".join(dpdata)
def _prefill_custom_data(self): def _prefill_custom_data(self):