aboutsummaryrefslogtreecommitdiff
path: root/py/qstr.h
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-04-19 11:30:06 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-04-19 11:37:56 +0300
commitc618f91e22613b2e530f7c21be0be789a7e8eed5 (patch)
tree0711245dae14bbddbead9a6598c8d60deca1ec68 /py/qstr.h
parent8aa3cbf15312987410e2358c4ee93d8bb8cdf715 (diff)
py: Rework QSTR extraction to work in simple and obvious way.
When there're C files to be (re)compiled, they're all passed first to preprocessor. QSTR references are extracted from preprocessed output and split per original C file. Then all available qstr files (including those generated previously) are catenated together. Only if the resulting content has changed, the output file is written (causing almost global rebuild to pick up potentially renumbered qstr's). Otherwise, it's not updated to not cause spurious rebuilds. Related make rules are split to minimize amount of commands executed in the interim case (when some C files were updated, but no qstrs were changed).
Diffstat (limited to 'py/qstr.h')
-rw-r--r--py/qstr.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/py/qstr.h b/py/qstr.h
index b5c261f0d..1989ebe96 100644
--- a/py/qstr.h
+++ b/py/qstr.h
@@ -37,9 +37,11 @@
// first entry in enum will be MP_QSTR_NULL=0, which indicates invalid/no qstr
enum {
+#ifndef __QSTR_EXTRACT
#define QDEF(id, str) id,
#include "genhdr/qstrdefs.generated.h"
#undef QDEF
+#endif
MP_QSTRnumber_of, // no underscore so it can't clash with any of the above
};