Upgrade to ExtJS 4.0.1 - Released 05/18/2011
[extjs.git] / build / build-ext-all-jsb3.js
1 function addJS(jsfile, onready) {
2     var script = document.createElement('script'),
3         head = document.head || document.getElementsByTagName('head')[0];
4
5     script.type = 'text/javascript';
6     script.src = jsfile;
7     if (onready !== undefined) {
8         script.onload = function() {
9             onready();
10         }
11     }
12
13     head.appendChild(script);
14 }
15
16 var extclasses = [];
17 var excludes = [
18         "legacy",
19         "tree/",
20         "scaffold/",
21         "data/ideas.js",
22         ".old.js",
23         "/broken",
24         "src/View.js",
25         "src/ViewManager.js",
26         "src/grid/CellModel.js",
27         "src/grid/CheckboxSelectionModel.js"
28     ];
29 var root = 'src';
30
31 function rxescape(text) {
32     return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
33 }
34 excludes = excludes.map(rxescape);
35 var excludesrx = new RegExp(excludes.join("|"), "i");
36
37 var traverse;
38 traverse = function(directory) {
39     var dirs = phantom.fs.entryList(directory, phantom.fs.DIRECTORIES);
40     for (var d = 0; d < dirs.length; ++d) {
41         var dir = dirs[d];
42         if (dir === '.' || dir === '..')
43             continue;
44         traverse(directory + "/" + dir);
45     }
46
47     var files = phantom.fs.entryList(directory, phantom.fs.FILES);
48     for (var f = 0; f < files.length; ++f) {
49         var file = directory + "/" + files[f];
50         if (file.substr(-3) === '.js' && !file.match(excludesrx)) {
51             file = file.substr(0, file.length - 3).replace(new RegExp('^' + root + '/'), '').replace(/\//g, '.');
52             extclasses.push('Ext.' + file);
53         }
54     }
55 };
56
57 traverse(root);
58
59 function extCoreLoaded() {
60     Ext.Loader.setConfig({ enabled: true, basePath: root });
61     Ext.Loader.require(extclasses);
62     addJS('build-all-jsb/JSBGenerator.js', function() {
63         Ext.Loader.onReady(function() {
64             console.log('Done: ' + Ext.ClassManager.dependencyOrder.length + ' files');
65             phantom.fs.writeFile('ext-all.jsb3', JSON.stringify(Ext.JSBGenerator.getJsbConfig(), null, 4));
66
67             Ext.ClassManager.dependencyOrder.forEach(function(name) {
68                 console.log(name)
69             });
70
71             phantom.exit();
72         }, Ext.global, false);
73     });
74 }
75
76 addJS('ext-core-debug.js', extCoreLoaded);