Changeset 7775

Show
Ignore:
Timestamp:
03/23/07 19:21:50 (20 months ago)
Author:
jburke
Message:

Refs #2607. Got something to actually build. No compression, i18n flattening or xdomain, but you can build base, and run the test harness afterward.

Location:
util/trunk/buildscripts
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • util/trunk/buildscripts/build.js

    r7773 r7775  
    2727var action = kwArgs.action; 
    2828for(var i = 0; i < action.length; i ++){ 
     29        logger.logPrefix = action[i] + ": "; 
    2930        this[action[i]](); 
     31        logger.logPrefix = ""; 
    3032} 
    3133 
     
    3335//********* Start clean ************ 
    3436function clean(){ 
     37        logger.info("Deleting: " + kwArgs.releaseDir); 
    3538        fileUtil.deleteFile(kwArgs.releaseDir); 
    3639} 
     
    5053        var prefixes = dependencies.prefixes; 
    5154        var dojoPrefixPath = null; 
    52          
     55        var lineSeparator = fileUtil.getLineSeparator(); 
     56 
    5357        //Copy each prefix dir to the releases and 
    5458        //operate on that copy. 
     
    6771        //Now process Dojo core. Special things for that one. 
    6872        if(dojoPrefixPath){ 
    69                 //xxx 
     73                 _prefixPathRelease("dojo", dojoPrefixPath, kwArgs); 
    7074                 
     75                //FIXME: loadDependency list reparses profile file, but we've already done that. 
     76                var result = buildUtil.makeDojoJs(buildUtil.loadDependencyList(kwArgs.profileFile), kwArgs.version); 
     77 
     78                //Save the dojo.js contents. It is always the first result. 
     79                fileUtil.saveFile(kwArgs.releaseDir + "/dojo/dojo.js", result[0].contents); 
     80 
     81                //Save the other layers, if there are any. 
     82                for(var i = 1; i < result.length; i++){ 
     83                        fileUtil.saveFile(kwArgs.releaseDir + "/dojo/" + result[i].layerName, result[i].contents); 
     84                } 
     85 
     86                //Save the dependency list to build.txt 
     87                var buildText = "Files baked into this build:" + lineSeparator; 
     88                for(var i = 0; i < result.length; i++){ 
     89                        buildText += lineSeparator + result[i].layerName + ":" + lineSeparator; 
     90                        buildText += result[i].depList.join(lineSeparator) + lineSeparator; 
     91                } 
     92 
     93                fileUtil.saveFile(kwArgs.releaseDir + "/dojo/build.txt", buildText); 
     94 
     95                logger.info(buildText); 
     96 
     97 
    7198                //-flatten-resources 
    7299                //              <replaceregexp match="/\*\*\*BUILD:localesGenerated\*\*\*/" byline="false" replace="=${generatedLocales}" 
     
    89116         
    90117        //Use the copyRegExp to filter out tests if requested. 
    91         if(kwArgs.copyTests){ 
    92                 copyRegExp = new RegExp(prefixName.replace(/\\/g, "/") + "/(?!tests/)"); 
     118        if(!kwArgs.copyTests){ 
     119                copyRegExp = new RegExp(prefixName.replace(/\\/g, "/") + "/(?!tests)"); 
    93120        } 
    94121 
  • util/trunk/buildscripts/jslib/buildUtil.js

    r7773 r7775  
    1010        if(!isWebBuild){ 
    1111                djConfig = { 
    12                         baseRelativePath: "../" 
     12                        baseRelativePath: "../../dojo/" 
    1313                        // isDebug: true 
    1414                }; 
     
    3232        } 
    3333 
    34         if(!isWebBuild){ 
    35                 dj_global = {}; 
    36                  
    37                 load("../src/bootstrap1.js"); 
    38                 load("../src/loader.js"); 
    39                 load("../src/hostenv_rhino.js"); 
    40          
    41                 // FIXME: is this really what we want to say? 
    42                 dojo.render.html.capable = true; 
    43         } 
    44  
    45         dojo.hostenv.loadedUris.push("dojoGuardStart.js"); 
    46         dojo.hostenv.loadedUris.push("../src/bootstrap1.js"); 
     34        if(!isWebBuild){                 
     35                load("../../dojo/_base/_loader/bootstrap.js"); 
     36                load("../../dojo/_base/_loader/loader.js"); 
     37                load("../../dojo/_base/_loader/hostenv_rhino.js"); 
     38                dojo._currentContext = {}; 
     39        } 
     40 
     41        dojo._loadedUrls.push("jslib/dojoGuardStart.js"); 
     42        dojo._loadedUrls.push("../../dojo/_base/_loader/bootstrap.js"); 
    4743         
    4844        if(dojoLoader == "default"){ 
    49                 dojo.hostenv.loadedUris.push("../src/loader.js"); 
     45                dojo._loadedUrls.push("../../dojo/_base/_loader/loader.js"); 
    5046        }else if(dojoLoader=="xdomain"){ 
    51                 dojo.hostenv.loadedUris.push("../src/loader.js"); 
    52                 dojo.hostenv.loadedUris.push("../src/loader_xd.js"); 
    53         } 
    54         dojo.hostenv.loadedUris.push("dojoGuardEnd.js"); 
     47                dojo._loadedUrls.push("../../dojo/_base/_loader/loader.js"); 
     48                dojo._loadedUrls.push("../../dojo/_base/_loader/loader_xd.js"); 
     49        } 
     50        dojo._loadedUrls.push("jslib/dojoGuardEnd.js"); 
    5551         
    5652        if(!hostenvType){ 
     
    6056        if(hostenvType.constructor == Array){ 
    6157                for(var x=0; x<hostenvType.length; x++){ 
    62                         dojo.hostenv.loadedUris.push("../src/hostenv_"+hostenvType[x]+".js"); 
     58                        dojo._loadedUrls.push("../../dojo/_base/_loader/hostenv_"+hostenvType[x]+".js"); 
    6359                } 
    6460                hostenvType = hostenvType.pop(); 
    6561        }else{ 
    66                 dojo.hostenv.loadedUris.push("../src/hostenv_"+hostenvType+".js"); 
     62                dojo._loadedUrls.push("../../dojo/_base/_loader/hostenv_"+hostenvType+".js"); 
    6763        } 
    6864         
     
    7470        } 
    7571         
    76         dojo.hostenv.name_ = hostenvType; 
     72        dojo._name = hostenvType; 
    7773         
    7874        //Override dojo.provide to get a list of resource providers. 
     
    9692        } 
    9793         
    98         // over-write dj_eval to prevent actual loading of subsequent files 
    99         var old_eval = dj_eval; 
    100         dj_eval = function(){ return true; } 
     94        // over-write dojo.eval to prevent actual loading of subsequent files 
     95        dojo._oldEval = dojo["eval"]; 
     96        dojo["eval"] = function(){ return true; } 
    10197        var old_load = load; 
    10298        load = function(uri){ 
    10399                try{ 
    104                         var text = removeComments((isWebBuild ? dojo.hostenv.getText(uri) : readText(uri))); 
    105                         var requires = dojo.hostenv.getRequiresAndProvides(text); 
     100                        var text = removeComments((isWebBuild ? dojo._getText(uri) : readText(uri))); 
     101                        var requires = dojo._getRequiresAndProvides(text); 
    106102                        eval(requires.join(";")); 
    107                         dojo.hostenv.loadedUris.push(uri); 
    108                         dojo.hostenv.loadedUris[uri] = true; 
    109                         var delayRequires = dojo.hostenv.getDelayRequiresAndProvides(text); 
     103                        dojo._loadedUrls.push(uri); 
     104                        dojo._loadedUrls[uri] = true; 
     105                        var delayRequires = dojo._getDelayRequiresAndProvides(text); 
    110106                        eval(delayRequires.join(";")); 
    111107                }catch(e){ 
     
    121117         
    122118        if(isWebBuild){ 
    123                 dojo.hostenv.oldLoadUri = dojo.hostenv.loadUri; 
    124                 dojo.hostenv.loadUri = load; 
    125         } 
    126          
    127         dojo.hostenv.getRequiresAndProvides = function(contents){ 
     119                dojo._oldLoadUri = dojo._loadUri; 
     120                dojo._loadUri = load; 
     121        } 
     122         
     123        dojo._getRequiresAndProvides = function(contents){ 
    128124                // FIXME: should probably memoize this! 
    129125                if(!contents){ return []; } 
     
    133129                var tmp; 
    134130                RegExp.lastIndex = 0; 
    135                 var testExp = /dojo.(hostenv.loadModule|hostenv.require|require|kwCompoundRequire|hostenv.conditionalLoadModule|hostenv.startPackage|provide)\([\w\W]*?\)/mg; 
     131                var testExp = /dojo.(require|platformRequire|provide)\([\w\W]*?\)/mg; 
    136132                while((tmp = testExp.exec(contents)) != null){ 
    137133                        deps.push(tmp[0]); 
     
    140136        } 
    141137         
    142         dojo.hostenv.getDelayRequiresAndProvides = function(contents){ 
     138        dojo._getDelayRequiresAndProvides = function(contents){ 
    143139                // FIXME: should probably memoize this! 
    144140                if(!contents){ return []; } 
     
    213209 
    214210        if(isWebBuild){ 
    215                 dojo.hostenv.loadUri = dojo.hostenv.oldLoadUri; 
     211                dojo._loadUri = dojo._oldLoadUri; 
    216212        }else{ 
    217213                load = old_load; // restore the original load function 
    218                 dj_eval = old_eval; // restore the original dj_eval function 
    219  
    220                 dj_global['dojo'] = undefined; 
    221                 dj_global['djConfig'] = undefined; 
    222                 delete dj_global; 
     214                dojo["eval"] = dojo._oldEval; // restore the original dojo.eval function 
     215 
     216                var djGlobal = dojo._currentContext; 
     217                djGlobal['djConfig'] = undefined; 
     218 
     219                delete dojo; 
    223220        } 
    224221 
     
    231228                try{ 
    232229                        var dep = dependencies[x]; 
    233                         if(dep.indexOf("(") != -1){ 
    234                                 dep = dojo.hostenv.getDepsForEval(dep)[0]; 
    235                         } 
     230 
    236231                        //Don't process loader_xd.js since it has some regexps  
    237232                        //and mentions of dojo.require/provide, which will cause  
    238                         //havoc in the dojo.hostenv.loadModule() method. 
     233                        //havoc in the dojo._loadModule() method. 
    239234                        if(dep.indexOf("loader_xd.js") == -1){ 
    240                                 dojo.hostenv.loadModule(dep, null, true); 
     235                                dojo._loadModule(dep, null, true); 
    241236                        } 
    242237                }catch(e){ 
     
    248243        var depList = []; 
    249244        var seen = {}; 
    250         uris: for(var x=0; x<dojo.hostenv.loadedUris.length; x++){ 
    251                 var curi = dojo.hostenv.loadedUris[x]; 
     245        uris: for(var x=0; x<dojo._loadedUrls.length; x++){ 
     246                var curi = dojo._loadedUrls[x]; 
    252247                if(!seen[curi]){ 
    253248                        seen[curi] = true; 
     
    274269         
    275270        //Clear out the loadedUris for the next run.  
    276         dojo.hostenv.loadedUris = [];  
     271        dojo._loadedUrls = [];  
    277272        return depList;  
    278273} 
     
    361356        // dojo.requireLocalization is a special case as it pulls in dojo.i18n.loader at runtime 
    362357        if(dojoContents.match(buildUtil.globalRequireLocalizationRegExp)){ 
    363                 depList.push("../src/i18n/loader.js"); 
     358                //FIXME: Uncomment this line with i18n gets ported to 0.9 
     359                //depList.push("../src/i18n/loader.js"); 
    364360                dojoContents += new String(fileUtil.readFile(depList[depList.length-1])); 
    365361        } 
     
    508504 
    509505//The regular expressions that will help find dependencies in the file contents. 
    510 buildUtil.masterDependencyRegExpString = "dojo.(requireLocalization|require|requireIf|requireAll|provide|requireAfterIf|requireAfter|kwCompoundRequire|conditionalRequire|hostenv\\.conditionalLoadModule|.hostenv\\.loadModule|hostenv\\.moduleLoaded)\\(([\\w\\W]*?)\\)"; 
     506buildUtil.masterDependencyRegExpString = "dojo.(requireLocalization|require|requireIf|provide|requireAfterIf|requireAfter|platformRequire)\\(([\\w\\W]*?)\\)"; 
    511507buildUtil.globalDependencyRegExp = new RegExp(buildUtil.masterDependencyRegExpString, "mg"); 
    512508buildUtil.dependencyPartsRegExp = new RegExp(buildUtil.masterDependencyRegExpString); 
  • util/trunk/buildscripts/jslib/fileUtil.js

    r7773 r7775  
    5555                var destFileName = srcFileName.replace(srcDir, destDir); 
    5656 
    57                 logger.trace("Src filename: " + srcFileName); 
    58                 logger.trace("Dest filename: " + destFileName); 
     57                //logger.trace("Src filename: " + srcFileName); 
     58                //logger.trace("Dest filename: " + destFileName); 
    5959 
    6060                //Make sure destination dir exists. 
     
    118118} 
    119119 
    120 fileUtil.deleteFile = function(fileName){ 
    121         //summary: deletes a file if it exists. 
     120fileUtil.deleteFile = function(/*String*/fileName){ 
     121        //summary: deletes a file or directory if it exists. 
    122122        var file = new java.io.File(fileName); 
    123123        if(file.exists()){ 
     124                if(file.isDirectory()){ 
     125                        var files = file.listFiles(); 
     126                        for(var i = 0; i < files.length; i++){ 
     127                                this.deleteFile(files[i]); 
     128                        } 
     129                } 
    124130                file["delete"](); 
    125131        } 
  • util/trunk/buildscripts/jslib/logger.js

    r7773 r7775  
    88 
    99        trace: function(message){ 
    10                 if(this.level >= this.TRACE){ 
     10                if(this.level <= this.TRACE){ 
    1111                        this._print(message); 
    1212                } 
     
    1414 
    1515        info: function(message){ 
    16                 if(this.level >= this.INFO){ 
     16                if(this.level <= this.INFO){ 
    1717                        this._print(message); 
    1818                } 
     
    2020 
    2121        warn: function(message){ 
    22                 if(this.level >= this.WARN){ 
     22                if(this.level <= this.WARN){ 
    2323                        this._print(message); 
    2424                } 
     
    2626 
    2727        error: function(message){ 
    28                 if(this.level >= this.ERROR){ 
     28                if(this.level <= this.ERROR){ 
    2929                        this._print(message); 
    3030                }