From effc09edd607d7975a01b3652b4932e40fb0f7f9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 10 Oct 2013 16:44:34 +0200 Subject: [PATCH 1/3] Add script to combine examples --- bin/combine-examples.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100755 bin/combine-examples.py diff --git a/bin/combine-examples.py b/bin/combine-examples.py new file mode 100755 index 0000000000..67c02ab2dd --- /dev/null +++ b/bin/combine-examples.py @@ -0,0 +1,27 @@ +#!/usr/bin/python + +import re +import sys + + +def main(argv): + examples = {} + requires = set() + for filename in argv[1:]: + lines = open(filename).readlines() + if len(lines) > 0 and lines[0].startswith('// NOCOMPILE'): + continue + requires.update(line for line in lines if line.startswith('goog.require')) + examples[filename] = [line for line in lines if not line.startswith('goog.require')] + for require in sorted(requires): + print require, + for filename in sorted(examples.keys()): + print '// ', filename + print '(function(){' + for line in examples[filename]: + print line, + print '})();' + + +if __name__ == '__main__': + sys.exit(main(sys.argv)) From e2df5ceacb89597d83d22395db70de3d679cfcc1 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 10 Oct 2013 16:45:05 +0200 Subject: [PATCH 2/3] Add target to concatenate and build all examples --- build.py | 17 ++++++++++++++++- buildcfg/examples-all.json | 20 ++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 buildcfg/examples-all.json diff --git a/build.py b/build.py index 4ababe5b05..eaea8b772e 100755 --- a/build.py +++ b/build.py @@ -283,7 +283,8 @@ def build_src_internal_types_js(t): '--typedef', 'src/objectliterals.jsdoc') -virtual('build-examples', 'examples', EXAMPLES_COMBINED) +virtual('build-examples', 'examples', 'build/examples/all.combined.js', + EXAMPLES_COMBINED) virtual('examples', 'examples/example-list.xml', EXAMPLES_JSON) @@ -299,6 +300,20 @@ def examples_examples_list_js(t): t.run('%(PYTHON)s', 'bin/exampleparser.py', 'examples', 'examples') +@target('build/examples/all.combined.js', 'build/examples/all.js', PLOVR_JAR, + SRC, INTERNAL_SRC, SHADER_SRC, LIBTESS_JS_SRC, + 'buildcfg/base.json', 'build/examples/all.json') +def build_examples_all_combined_js(t): + t.output('%(JAVA)s', '-jar', PLOVR_JAR, 'build', + 'buildcfg/examples-all.json') + report_sizes(t) + + +@target('build/examples/all.js', EXAMPLES_SRC) +def build_examples_all_js(t): + t.output('bin/combine-examples.py', t.dependencies) + + @rule(r'\Abuild/examples/(?P.*).json\Z') def examples_star_json(name, match): def action(t): diff --git a/buildcfg/examples-all.json b/buildcfg/examples-all.json new file mode 100644 index 0000000000..32af55283e --- /dev/null +++ b/buildcfg/examples-all.json @@ -0,0 +1,20 @@ +{ + "externs": [ + "//json.js", + "//jquery-1.7.js", + "../externs/bingmaps.js", + "../externs/bootstrap.js", + "../externs/geojson.js", + "../externs/topojson.js", + "../externs/oli.js", + "../externs/proj4js.js", + "../externs/tilejson.js", + "../externs/closure-compiler.js" + ], + "id": "simple", + "inherits": "base.json", + "inputs": [ + "../build/examples/all.js", + "../build/src/internal/src/types.js" + ] +} From 3f1ae87eee07f9ff6f4af9fa5ccad680ac68004f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 10 Oct 2013 16:45:24 +0200 Subject: [PATCH 3/3] Only build combined examples in integration tests --- build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.py b/build.py index eaea8b772e..63ec5199d4 100755 --- a/build.py +++ b/build.py @@ -169,7 +169,7 @@ virtual('default', 'build') virtual('integration-test', 'lint', 'build', 'build-all', - 'test', 'build-examples', 'check-examples', 'apidoc') + 'test', 'build/examples/all.combined.js', 'check-examples', 'apidoc') virtual('build', 'build/ol.css', 'build/ol.js',