mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-31 10:37:13 +02:00
Sync flags parser with PlatformIO 3.0 branch // Resolve #738
This commit is contained in:
@ -115,6 +115,8 @@ def BuildProgram(env):
|
|||||||
def ProcessFlags(env, flags):
|
def ProcessFlags(env, flags):
|
||||||
if not flags:
|
if not flags:
|
||||||
return
|
return
|
||||||
|
if isinstance(flags, list):
|
||||||
|
flags = " ".join(flags)
|
||||||
parsed_flags = env.ParseFlags(str(flags))
|
parsed_flags = env.ParseFlags(str(flags))
|
||||||
for flag in parsed_flags.pop("CPPDEFINES"):
|
for flag in parsed_flags.pop("CPPDEFINES"):
|
||||||
if not isinstance(flag, list):
|
if not isinstance(flag, list):
|
||||||
@ -148,14 +150,16 @@ def ProcessFlags(env, flags):
|
|||||||
def ProcessUnFlags(env, flags):
|
def ProcessUnFlags(env, flags):
|
||||||
if not flags:
|
if not flags:
|
||||||
return
|
return
|
||||||
parsed_flags = env.ParseFlags(flags)
|
if isinstance(flags, list):
|
||||||
|
flags = " ".join(flags)
|
||||||
|
parsed_flags = env.ParseFlags(str(flags))
|
||||||
all_flags = []
|
all_flags = []
|
||||||
for items in parsed_flags.values():
|
for items in parsed_flags.values():
|
||||||
all_flags.extend(items)
|
all_flags.extend(items)
|
||||||
all_flags = set(all_flags)
|
all_flags = set(all_flags)
|
||||||
|
|
||||||
for key in parsed_flags:
|
for key in parsed_flags:
|
||||||
cur_flags = set(env.get(key, []))
|
cur_flags = set(env.Flatten(env.get(key, [])))
|
||||||
for item in cur_flags & all_flags:
|
for item in cur_flags & all_flags:
|
||||||
while item in env[key]:
|
while item in env[key]:
|
||||||
env[key].remove(item)
|
env[key].remove(item)
|
||||||
|
Reference in New Issue
Block a user