Changeset 7768

Show
Ignore:
Timestamp:
03/22/07 21:51:19 (16 months ago)
Author:
jburke
Message:

Refs #2607. Building out knowledge of all top level module prefix dirs.

Location:
util/trunk/buildscripts
Files:
2 modified

Legend:

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

    r7764 r7768  
    55load("jslib/buildUtil.js"); 
    66 
    7 //Constants 
    8 var releaseDir = "release/"; 
    9  
    107//Convert arguments to keyword arguments. 
    118var kwArgs = buildUtil.convertArrayToObject(arguments); 
     
    1310//Set some defaults for some args if they are missing. 
    1411kwArgs.releaseName = kwArgs["releaseName"] || "dojo"; 
    15 releaseDir += kwArgs.releaseName; 
     12kwArgs.releaseDir = "release/" + kwArgs["releaseName"] || "dojo"; 
    1613kwArgs.version = kwArgs["version"] || "0.0.0.dev"; 
    1714kwArgs.actions = (kwArgs["action"] || "release").split(","); 
     15kwArgs.loader = kwArgs["loader"] || "default"; 
    1816if(!kwArgs["profileFile"] && kwArgs["profile"]){ 
    1917        kwArgs.profileFile = "profiles/" + kwArgs.profile + ".profile.js"; 
     
    2624} 
    2725 
    28 //*** Start clean *** 
     26//********* Start clean ************ 
    2927function clean(){ 
    3028        fileUtil.deleteFile(releaseDir); 
    3129} 
    32 //*** End clean *** 
     30//********* End clean ********* 
    3331 
    34 //*** Start release *** 
     32//********* Start release ********* 
    3533function release(){ 
    3634        logger.info("Using version number: " + kwArgs.version + " for the release."); 
     35        logger.info("profileFile: " + kwArgs.profileFile); 
    3736         
    3837        clean(); 
    3938         
    4039        //Get the list of module directories we need to process. 
     40        //They will be in the dependencies.prefixes array. 
     41        var dependencies = buildUtil.evalProfile(kwArgs.profileFile); 
     42        var prefixes = dependencies.prefixes; 
     43        var dojoPrefixPath = null; 
     44        for(var i = 0; i < prefixes.length; i++){ 
     45                var prefixName = prefixes[i][0]; 
     46                var prefixPath = prefixes[i][1]; 
     47                 
     48                //Save dojo for last. 
     49                if(prefixName == "dojo"){ 
     50                        dojoPrefixPath = prefixPath; 
     51                }else{ 
     52                        _releasePrefixPath(prefixName, prefixPath, kwArgs); 
     53                } 
     54        } 
    4155         
    42         //Copy each module directory. 
     56        //Now process Dojo core. Special things for that one. 
     57        if(dojoPrefixPath){ 
     58                //xxx 
     59                 
     60                //-flatten-resources 
     61                //              <replaceregexp match="/\*\*\*BUILD:localesGenerated\*\*\*/" byline="false" replace="=${generatedLocales}" 
     62                //      file="${dstFile}"/> 
     63                 
     64                //remove dojo.requireLocalization calls. 
     65                 
     66                //Make a compressed and uncompressed version of the layer files. 
     67                 
     68                //add build_notice and copyright to module files. 
     69 
     70        } 
     71} 
     72//********* End release ********* 
     73 
     74//********* Start _releasePrefixPath ********* 
     75function _releasePrefixPath(prefixName, prefixPath, kwArgs){ 
     76        //Copy prefixPath to release dir. 
     77        //Skip tests if requested. 
     78        //xxx 
    4379         
     80        //makeDojoJs.js 
     81        //xxx 
    4482         
    45          
     83        //Run xdgen if an xdomain build. 
     84        //xxx 
    4685} 
    47 //*** End release *** 
     86//********* End _releasePrefixPath ********* 
     87 
  • util/trunk/buildscripts/jslib/buildUtil.js

    r7764 r7768  
    296296        //Find prefixes that are used. 
    297297        var usedPrefixes = ["dojo"]; 
    298         xxx 
    299          
     298        usePrefixes._entries { dojo: true }; 
     299         
     300        //Check normal dependencies. 
     301        buildUtil.addPrefixesFromDependencies(usedPrefixes, dependencies); 
     302 
     303        //Check layer dependencies 
     304        var layerDeps = dependencies.layers; 
     305        for(var i = 0; i < layerDeps.length; i++){ 
     306                buildUtil.addPrefixesFromDependencies(usedPrefixes, layerDeps[i].dependencies); 
     307        } 
     308 
     309        //Now add to the real prefix array. 
     310        //If not already in the prefix array, assume the default 
     311        //location, as a sibling to dojo (and util). 
     312        for(var i = 0; i < usedPrefixes.length; i++){ 
     313                if(!buildUtil.isValueInArray(usedPrefixes[i], dependencies.prefixes){ 
     314                        dependencies.prefixes.push([usedPrefixes[i], "../../" + usedPrefixes[i]]); 
     315                } 
     316        } 
     317 
    300318        return { 
    301319                dependencies: dependencies, 
    302320                hostenvType: hostenvType 
    303321        }; 
     322} 
     323 
     324buildUtil.addPrefixesFromDependencies = function(/*Array*/prefixStore, /*Array*/dependencies){ 
     325        //summary: finds the top level prefixes in the build process that 
     326        //we need to track for the build process.  
     327        for(var i = 0; i < dependencies.length; i++){ 
     328                var topPrefix = dependencies[i].split(".")[0]; 
     329                if(!prefixStore._entries[topPrefix]){ 
     330                        prefixStore.push(topPrefix); 
     331                        prefixStore._entries[topPrefix] = true; 
     332                } 
     333        } 
    304334} 
    305335 
     
    873903        var result = {}; 
    874904        for(var i = 0; i < ary.length; i++){ 
    875                 var parts = ary[i].split("="); 
    876                 if(parts.length != 2){ 
     905                var separatorIndex = ary[i].indexOf("="); 
     906                if(separatorIndex == -1){ 
    877907                        throw "Malformed name/value pair: [" + ary[i] + "]. Format should be name=value"; 
    878908                } 
    879                 result[parts[0]] = parts[1]; 
     909                result[ary[i].substring(0, separatorIndex)] = ary[i].substring(separatorIndex + 1, ary[i].length); 
    880910        } 
    881911        return result; //Object