Skip to content

Commit 2988da9

Browse files
committed
Better handling of macros exported from IDF
Issue #1080
1 parent d9939d9 commit 2988da9

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

builder/frameworks/espidf.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -302,16 +302,25 @@ def get_app_includes(app_config):
302302

303303

304304
def extract_defines(compile_group):
305-
result = []
306-
result.extend(
307-
[
308-
d.get("define").replace('"', '\\"').strip()
309-
for d in compile_group.get("defines", [])
310-
]
311-
)
305+
def _normalize_define(define_string):
306+
define_string = define_string.strip()
307+
if "=" in define_string:
308+
define, value = define_string.split("=", maxsplit=1)
309+
if '"' in value and not value.startswith("\\"):
310+
# Escape only raw values
311+
value = value.replace('"', '\\"')
312+
return (define, value)
313+
return define_string
314+
315+
result = [
316+
_normalize_define(d.get("define", ""))
317+
for d in compile_group.get("defines", []) if d
318+
]
319+
312320
for f in compile_group.get("compileCommandFragments", []):
313321
if f.get("fragment", "").startswith("-D"):
314-
result.append(f["fragment"][2:])
322+
result.append(_normalize_define(f["fragment"][2:]))
323+
315324
return result
316325

317326

0 commit comments

Comments
 (0)