Support combining multiple small directories into one compilation unit but don't turn it on yet.
This commit is contained in:
parent
1e6fe65e51
commit
82cf0c594f
21
Makefile
21
Makefile
@ -33,16 +33,15 @@ distBranch := $(call pkg,meta.distBranch)
|
||||
awsBucket := $(call pkg,meta.awsBucket)
|
||||
version = $(shell node -p "JSON.parse(require('fs').readFileSync('version.json')).version")
|
||||
|
||||
capitalized = $(filter-out a,$(foreach x,$1,$(subst a $(x),,$(sort a $(x)))))
|
||||
|
||||
parts := \
|
||||
globals config css platform classes \
|
||||
$(sort $(call capitalized, \
|
||||
$(subst src/,,$(wildcard src/*)) \
|
||||
)) \
|
||||
main
|
||||
globals config css platform classes Archive Filtering General Images Linkification Menu Miscellaneous Monitoring Posting Quotelinks main
|
||||
|
||||
lang = $(if $(filter globals css,$1),js,coffee)
|
||||
lang = $(if $(filter globals css,$(subst -, ,$1)),js,coffee)
|
||||
|
||||
map = \
|
||||
$(foreach x, \
|
||||
$(subst -, ,$2) \
|
||||
,$(call $1,$(x)))
|
||||
|
||||
# remove extension when sorting so X.coffee comes before X.Y.coffee
|
||||
sources_lang = \
|
||||
@ -116,8 +115,8 @@ tmp/declaration.js : .events/declare
|
||||
$(if $(wildcard $@),,node tools/declare.js && echo -> $^)
|
||||
|
||||
define concatenate
|
||||
tmp/$1.jst : $$(call sources,$1) $(cat_deps) | tmp
|
||||
$(cat) $$(subst $$$$,$$(ESC_DOLLAR),$$(call sources,$1)) $$@
|
||||
tmp/$1.jst : $$(call map,sources,$1) $(cat_deps) | tmp
|
||||
$(cat) $$(subst $$$$,$$(ESC_DOLLAR),$$(call map,sources,$1)) $$@
|
||||
endef
|
||||
|
||||
$(foreach p, \
|
||||
@ -126,7 +125,7 @@ $(foreach p, \
|
||||
)
|
||||
|
||||
define interpolate
|
||||
tmp/$1.$$(call lang,$1) : tmp/$1.jst $$(call imports,$1) $(template_deps)
|
||||
tmp/$1.$$(call lang,$1) : tmp/$1.jst $$(call map,imports,$1) $(template_deps)
|
||||
$(template) $$< $$@
|
||||
endef
|
||||
|
||||
|
||||
@ -1,16 +1,18 @@
|
||||
var fs = require('fs');
|
||||
|
||||
var filename = `tmp/${process.argv[2]}.js`;
|
||||
var basename = process.argv[2].split('_')[0]; // e.g. template_crx -> template
|
||||
var sources = fs.readdirSync(`src/${basename}`);
|
||||
|
||||
// Extract variables to be made global from source file list
|
||||
// e.g. ImageExpand from src/Images/ImageExpand.coffee
|
||||
// but not QR.post or eventPage
|
||||
var names = [];
|
||||
for (var f of sources) {
|
||||
var m = f.match(/^([$A-Z][$\w]*)\.coffee$/);
|
||||
if (m) names.push(m[1]);
|
||||
for (var word of process.argv[2].split('-')) {
|
||||
var base = word.split('_')[0]; // e.g. template_crx -> template
|
||||
var sources = fs.readdirSync(`src/${base}`);
|
||||
for (var f of sources) {
|
||||
var m = f.match(/^([$A-Z][$\w]*)\.coffee$/);
|
||||
if (m) names.push(m[1]);
|
||||
}
|
||||
}
|
||||
|
||||
var script = fs.readFileSync(filename, 'utf8').replace(/\r\n/g, '\n');
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user