Fix incorrect parsing of GCC "-include" flag // Resolve #552

This commit is contained in:
Ivan Kravets
2016-03-04 01:45:04 +02:00
parent 614a736eff
commit 4c4682f457
3 changed files with 12 additions and 3 deletions

View File

@ -4,7 +4,7 @@ Release Notes
PlatformIO 2.0 PlatformIO 2.0
-------------- --------------
2.8.5 (2016-02-??) 2.8.5 (2016-03-??)
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
* Project generator for `NetBeans IDE <http://docs.platformio.org/en/latest/ide/netbeans.html>`__ * Project generator for `NetBeans IDE <http://docs.platformio.org/en/latest/ide/netbeans.html>`__
@ -31,6 +31,10 @@ PlatformIO 2.0
(`issue #550 <https://github.com/platformio/platformio/issues/550>`_) (`issue #550 <https://github.com/platformio/platformio/issues/550>`_)
* Fixed issue with updating package which was deleted manually by user * Fixed issue with updating package which was deleted manually by user
(`issue #555 <https://github.com/platformio/platformio/issues/555>`_) (`issue #555 <https://github.com/platformio/platformio/issues/555>`_)
* Fixed incorrect parsing of GCC ``-include`` flag
(`issue #552 <https://github.com/platformio/platformio/issues/552>`_)
-include
2.8.4 (2016-02-17) 2.8.4 (2016-02-17)

View File

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

View File

@ -113,10 +113,15 @@ def ProcessFlags(env, flags):
for i, p in enumerate(env.get("CPPPATH", [])): for i, p in enumerate(env.get("CPPPATH", [])):
if isdir(p): if isdir(p):
env['CPPPATH'][i] = realpath(p) env['CPPPATH'][i] = realpath(p)
# fix relative path for "-include"
for i, f in enumerate(env.get("CCFLAGS", [])):
if isinstance(f, tuple) and f[0] == "-include":
env['CCFLAGS'][i] = (f[0], env.File(realpath(f[1].get_path())))
# Cancel any previous definition of name, either built in or # Cancel any previous definition of name, either built in or
# provided with a -D option // Issue #191 # provided with a -D option // Issue #191
undefines = [u for u in env.get("CCFLAGS", []) if u.startswith("-U")] undefines = [u for u in env.get("CCFLAGS", [])
if isinstance(u, basestring) and u.startswith("-U")]
if undefines: if undefines:
for undef in undefines: for undef in undefines:
env['CCFLAGS'].remove(undef) env['CCFLAGS'].remove(undef)