Generate project for IDEs with information about installed libraries

This commit is contained in:
Ivan Kravets
2016-01-27 01:37:20 +02:00
parent 5c2ba90edf
commit de43166257
3 changed files with 25 additions and 4 deletions

View File

@@ -24,6 +24,7 @@ PlatformIO 2.0
* Set 1Mb SPIFFS for Espressif boards by default * Set 1Mb SPIFFS for Espressif boards by default
(`issue #458 <https://github.com/platformio/platformio/issues/458>`_) (`issue #458 <https://github.com/platformio/platformio/issues/458>`_)
* Exclude ``test*`` folder by default from build process * Exclude ``test*`` folder by default from build process
* Generate project for IDEs with information about installed libraries
* Fixed builder for mbed framework and ST STM32 platform * Fixed builder for mbed framework and ST STM32 platform

View File

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

View File

@@ -17,8 +17,8 @@ from __future__ import absolute_import
import atexit import atexit
import re import re
from glob import glob from glob import glob
from os import environ, remove from os import environ, listdir, remove
from os.path import basename, isfile, join from os.path import basename, isdir, isfile, join
from platformio.util import exec_command, where_is_program from platformio.util import exec_command, where_is_program
@@ -143,12 +143,32 @@ def DumpIDEData(env):
env.subst("$CXX"), env.subst("${ENV['PATH']}")) env.subst("$CXX"), env.subst("${ENV['PATH']}"))
} }
# includes from framework and libs # includes from used framework and libs
for item in env.get("VARIANT_DIRS", []): for item in env.get("VARIANT_DIRS", []):
if "$BUILDSRC_DIR" in item[0]: if "$BUILDSRC_DIR" in item[0]:
continue continue
data['includes'].append(env.subst(item[1])) data['includes'].append(env.subst(item[1]))
# custom includes
for item in env.get("CPPPATH", []):
if item.startswith("$BUILD_DIR"):
continue
data['includes'].append(env.subst(item))
# 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
if isdir(join(lsd_dir, name, "src")):
data['includes'].append(join(lsd_dir, name, "src"))
else:
data['includes'].append(join(lsd_dir, name))
# includes from toolchain # includes from toolchain
toolchain_dir = env.subst( toolchain_dir = env.subst(
join("$PIOPACKAGES_DIR", "$PIOPACKAGE_TOOLCHAIN")) join("$PIOPACKAGES_DIR", "$PIOPACKAGE_TOOLCHAIN"))