From f3e085da62615b79e51f6b52b954a018f9876eb6 Mon Sep 17 00:00:00 2001 From: Scott Hunter Date: Fri, 11 May 2012 11:27:10 -0400 Subject: [PATCH] Add a makeZipFile build target. Refactor build script to get the "build" target even faster by running steps in parallel, and only re-write generated files if the content is different. Separate out the generated file that builds the complete Cesium object from the main.js used with Almond to simply require the complete object and assign it globally. --- .gitignore | 1 + .project | 19 +++-- Source/.gitignore | 2 +- Source/main.js | 7 ++ build.xml | 159 +++++++++++++++++++++++++----------- launches/makeZipFile.launch | 19 +++++ 6 files changed, 153 insertions(+), 54 deletions(-) create mode 100755 Source/main.js create mode 100755 launches/makeZipFile.launch diff --git a/.gitignore b/.gitignore index 8762d4d6bb73..a59303e2b371 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /.metadata /Build /Instrumented +/Cesium-*.zip diff --git a/.project b/.project index c53540d16330..041c1d61c441 100644 --- a/.project +++ b/.project @@ -32,7 +32,7 @@ - 1335454855938 + 1336749948404 10 @@ -41,7 +41,7 @@ - 1335454855938 + 1336749948413 10 @@ -50,7 +50,7 @@ - 1335454855948 + 1336749948416 10 @@ -59,12 +59,21 @@ - 1335299856539 + 1336749948422 + + 6 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-Cesium-*.zip + + + + 1336749023862 Source 6 org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-main.js + 1.0-name-matches-false-false-Cesium.js diff --git a/Source/.gitignore b/Source/.gitignore index 2992332b154b..c066e13cb9f3 100755 --- a/Source/.gitignore +++ b/Source/.gitignore @@ -1 +1 @@ -/main.js +/Cesium.js diff --git a/Source/main.js b/Source/main.js new file mode 100755 index 000000000000..4136a3fc73c6 --- /dev/null +++ b/Source/main.js @@ -0,0 +1,7 @@ +/*global require*/ +// require in the complete Cesium object and reassign it globally. +// This is meant for use with the Almond loader. +require(['Cesium'], function(Cesium) { + "use strict"; + window.Cesium = Cesium; +}, undefined, true); \ No newline at end of file diff --git a/build.xml b/build.xml index 5d4176f0da6c..b04c4f98bbc8 100644 --- a/build.xml +++ b/build.xml @@ -1,5 +1,19 @@ - + + + + + + + + + + + + + + + @@ -22,12 +36,28 @@ + + + + + + + + + + + + + + + + @@ -35,6 +65,7 @@ + @@ -63,7 +94,6 @@ - +]]> - + +var contents = '/*global define*/\n' + + 'define([' + moduleIDs.join(', ') + '], function (' + parameters.join(', ') + ') {\n' + + ' "use strict";\n' + + ' var Cesium = { _shaders : {} };\n ' + + assignments.join('\n ') + '\n' + + ' return Cesium;\n' + + '});'; + +if (oldContents !== contents) { + var writer = new FileWriter(output); + writer.write(contents); + writer.close(); +} +]]> - + + + + - - - - +var specs = []; - - - - - - - +var filesets = elements.get("fileset"); +for (var i = 0, len = filesets.size(); i < len; i++) { + var fileset = filesets.get(i); + var basedir = fileset.getDir(project); + var filenames = fileset.getDirectoryScanner(project).getIncludedFiles(); - - - - - + for (var j = 0, len2 = filenames.length; j < len2; j++) { + var relativePath = filenames[j]; + var spec = relativePath.substring(0, relativePath.lastIndexOf('.')).replace('\\', '/'); + specs.push("'" + spec + "'"); + } +} + +var output = attributes.get("output"); +if (new File(output).exists()) { + var reader = new FileReader(output); + var oldContents = String(FileUtils.readFully(reader)); + reader.close(); +} + +var contents = 'var specs = [' + specs.join(',') + '];'; + +if (oldContents !== contents) { + var writer = new FileWriter(output); + writer.write(contents); + writer.close(); +} +]]> + @@ -251,14 +314,14 @@ writer.close(); - + - + @@ -281,9 +344,9 @@ writer.close(); diff --git a/launches/makeZipFile.launch b/launches/makeZipFile.launch new file mode 100755 index 000000000000..e42377388366 --- /dev/null +++ b/launches/makeZipFile.launch @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + +