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).
This commit is contained in:
@@ -93,9 +93,11 @@ const qstr_pool_t mp_qstr_const_pool = {
|
||||
10, // set so that the first dynamically allocated pool is twice this size; must be <= the len (just below)
|
||||
MP_QSTRnumber_of, // corresponds to number of strings in array just below
|
||||
{
|
||||
#ifndef __QSTR_EXTRACT
|
||||
#define QDEF(id, str) str,
|
||||
#include "genhdr/qstrdefs.generated.h"
|
||||
#undef QDEF
|
||||
#endif
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user