Merge pull request #1118 from twpayne/build-examples-together

Build examples together
This commit is contained in:
Tom Payne
2013-10-15 03:48:34 -07:00
3 changed files with 64 additions and 2 deletions

27
bin/combine-examples.py Executable file
View File

@@ -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))

View File

@@ -166,7 +166,7 @@ virtual('default', 'build')
virtual('integration-test', 'lint', 'build', 'build-all', 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', virtual('build', 'build/ol.css', 'build/ol.js',
@@ -280,7 +280,8 @@ def build_src_internal_types_js(t):
'--typedef', 'src/objectliterals.jsdoc') '--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) virtual('examples', 'examples/example-list.xml', EXAMPLES_JSON)
@@ -296,6 +297,20 @@ def examples_examples_list_js(t):
t.run('%(PYTHON)s', 'bin/exampleparser.py', 'examples', 'examples') 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<id>.*).json\Z') @rule(r'\Abuild/examples/(?P<id>.*).json\Z')
def examples_star_json(name, match): def examples_star_json(name, match):
def action(t): def action(t):

View File

@@ -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"
]
}