From 35888d1dc654e69b6d436b15483e18b17fe450e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 1 Jul 2014 18:15:27 +0200 Subject: [PATCH] Use build.js for compiling the examples --- build.py | 89 +++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 66 insertions(+), 23 deletions(-) diff --git a/build.py b/build.py index 359be58244..23f91ce884 100755 --- a/build.py +++ b/build.py @@ -267,40 +267,83 @@ def examples_star_json(name, match): # Note that we use the proper way in buildcfg/examples-all.json, which # is only used to check the examples code using the compiler. content = json.dumps({ - 'id': match.group('id'), - 'inherits': '../../buildcfg/base.json', - 'inputs': [ - '../examples/%(id)s.js' % match.groupdict() + "exports": [], + "src": ["src/**/*.js", "examples/%(id)s.js" % match.groupdict()], + "compile": { + "externs": [ + "externs/bingmaps.js", + "externs/bootstrap.js", + "externs/closure-compiler.js", + "externs/example.js", + "externs/geojson.js", + "externs/jquery-1.7.js", + "externs/oli.js", + "externs/olx.js", + "externs/proj4js.js", + "externs/tilejson.js", + "externs/topojson.js", + "externs/vbarray.js" ], - 'externs': [ - '//jquery-1.7.js', - '../externs/bingmaps.js', - '../externs/bootstrap.js', - '../externs/closure-compiler.js', - '../externs/example.js', - '../externs/geojson.js', - '../externs/oli.js', - '../externs/olx.js', - '../externs/proj4js.js', - '../externs/tilejson.js', - '../externs/topojson.js', - '../externs/vbarray.js', + "define": [ + "goog.dom.ASSUME_STANDARDS_MODE=true", + "goog.DEBUG=false" ], + "jscomp_error": [ + "accessControls", + "ambiguousFunctionDecl", + "checkDebuggerStatement", + "checkEventfulObjectDisposal", + "checkProvides", + "checkRegExp", + "checkStructDictInheritance", + "checkTypes", + "checkVars", + "const", + "constantProperty", + "deprecated", + "duplicate", + "duplicateMessage", + "es3", + "externsValidation", + "fileoverviewTags", + "globalThis", + "internetExplorerChecks", + "invalidCasts", + "misplacedTypeAnnotation", + "missingProperties", + "nonStandardJsDocs", + "strictModuleDepCheck", + "suspiciousCode", + "typeInvalidation", + "tweakValidation", + "undefinedNames", + "undefinedVars", + "unknownDefines", + "uselessCode", + "violatedModuleDep", + "visibility" + ], + "jscomp_off": [ + "es5Strict" + ], + "compilation_level": "ADVANCED_OPTIMIZATIONS", + "output_wrapper": "// OpenLayers 3. See http://ol3.js.org/\n(function(){%output%})();", + "use_types_for_optimization": True, + "manage_closure_dependencies": True + } }) with open(t.name, 'wb') as f: f.write(content) - dependencies = [__file__, 'buildcfg/base.json'] - return Target(name, action=action, dependencies=dependencies) + return Target(name, action=action, dependencies=[__file__]) @rule(r'\Abuild/examples/(?P.*).combined.js\Z') def examples_star_combined_js(name, match): def action(t): - t.output('%(JAVA)s', '-server', '-XX:+TieredCompilation', '-jar', - PLOVR_JAR, 'build', 'build/examples/%(id)s.json' % - match.groupdict()) + config = 'build/examples/%(id)s.json' % match.groupdict() + t.run('node', 'tasks/build.js', config, name) report_sizes(t) - dependencies = [PLOVR_JAR, SRC, SHADER_SRC, 'buildcfg/base.json', + dependencies = [SRC, SHADER_SRC, 'examples/%(id)s.js' % match.groupdict(), 'build/examples/%(id)s.json' % match.groupdict()] return Target(name, action=action, dependencies=dependencies)