Commit db52fd8e authored by Damien George's avatar Damien George
Browse files

py: Wrap qstr defs in quotes to protect from C preprocessor.

This patch converts Q(abc) to "Q(abc)" to protect the abc from the
C preprocessor, then converts back after the preprocessor is finished.
So now we can safely put includes in mpconfig(port).h, and also
preprocess qstrdefsport.h (latter is now done also in this patch).

Addresses issue #1252.
parent 0ec8cf8e
......@@ -135,11 +135,12 @@ $(HEADER_BUILD)/mpversion.h: FORCE | $(HEADER_BUILD)
# Adding an order only dependency on $(HEADER_BUILD) causes $(HEADER_BUILD) to get
# created before we run the script to generate the .h
# Note: we need to protect the qstr names from the preprocessor, so we wrap
# the lines in "" and then unwrap after the preprocessor is finished.
$(HEADER_BUILD)/qstrdefs.generated.h: $(PY_QSTR_DEFS) $(QSTR_DEFS) $(PY_SRC)/ mpconfigport.h $(PY_SRC)/mpconfig.h | $(HEADER_BUILD)
$(ECHO) "CPP $<"
$(Q)$(CPP) $(CFLAGS) $(PY_QSTR_DEFS) -o $(HEADER_BUILD)/qstrdefs.preprocessed.h
$(ECHO) "makeqstrdata $(PY_QSTR_DEFS) $(QSTR_DEFS)"
$(Q)$(PYTHON) $(PY_SRC)/ $(HEADER_BUILD)/qstrdefs.preprocessed.h $(QSTR_DEFS) > $@
$(ECHO) "GEN $@"
$(Q)cat $(PY_QSTR_DEFS) $(QSTR_DEFS) | $(SED) 's/^Q(.*)/"&"/' | $(CPP) $(CFLAGS) - | sed 's/^"\(Q(.*)\)"/\1/' > $(HEADER_BUILD)/qstrdefs.preprocessed.h
$(Q)$(PYTHON) $(PY_SRC)/ $(HEADER_BUILD)/qstrdefs.preprocessed.h > $@
# emitters
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment