Changeset 1175

Show
Ignore:
Timestamp:
11/21/08 22:19:58 (2 months ago)
Author:
laurentj
Message:

improved jbuildtools to consume less memory
added a VERBOSE flag in buildjelix

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/build/buildapp.php

    r826 r1175  
    7676 
    7777//... execution des manifests 
    78 jManifest::process('build/manifests/'.$APPNAME.'.mn', '.', $MAIN_TARGET_PATH, ENV::getAll()); 
     78jManifest::process('build/manifests/'.$APPNAME.'.mn', '.', $MAIN_TARGET_PATH, ENV::getAll(), true); 
    7979 
    8080 
  • trunk/build/buildjelix.php

    r1169 r1175  
    118118    '', 
    119119    ), 
     120'VERBOSE'=> array( 
     121    "show messages", 
     122    false 
     123), 
    120124/*''=> array( 
    121125    "", 
     
    207211 
    208212//... execution des manifests 
    209 jManifest::process('build/manifests/jelix-lib.mn', '.', $BUILD_TARGET_PATH, ENV::getAll(), $STRIP_COMMENT); 
    210 jManifest::process('build/manifests/jelix-www.mn', '.', $BUILD_TARGET_PATH, ENV::getAll(), $STRIP_COMMENT); 
     213jManifest::process('build/manifests/jelix-lib.mn', '.', $BUILD_TARGET_PATH, ENV::getAll(), $STRIP_COMMENT, $VERBOSE); 
     214jManifest::process('build/manifests/jelix-www.mn', '.', $BUILD_TARGET_PATH, ENV::getAll(), $STRIP_COMMENT, $VERBOSE); 
    211215 
    212216if( ! $ENABLE_OPTIMIZED_SOURCE){ 
    213     jManifest::process('build/manifests/jelix-no-opt.mn', '.', $BUILD_TARGET_PATH , ENV::getAll(), $STRIP_COMMENT); 
     217    jManifest::process('build/manifests/jelix-no-opt.mn', '.', $BUILD_TARGET_PATH , ENV::getAll(), $STRIP_COMMENT, $VERBOSE); 
    214218} 
    215219if( ! $ENABLE_PHP_JELIX && ! $ENABLE_OPTIMIZED_SOURCE){ 
    216     jManifest::process('build/manifests/jelix-no-ext.mn', '.', $BUILD_TARGET_PATH , ENV::getAll(), $STRIP_COMMENT); 
     220    jManifest::process('build/manifests/jelix-no-ext.mn', '.', $BUILD_TARGET_PATH , ENV::getAll(), $STRIP_COMMENT, $VERBOSE); 
    217221} 
    218222 
    219223if($ENABLE_DEVELOPER){ 
    220     jManifest::process('build/manifests/jelix-dev.mn', '.', $BUILD_TARGET_PATH , ENV::getAll()); 
     224    jManifest::process('build/manifests/jelix-dev.mn', '.', $BUILD_TARGET_PATH , ENV::getAll(), false, $VERBOSE); 
    221225} 
    222226if(!$ENABLE_PHP_JSON){ 
    223     jManifest::process('build/manifests/lib-json.mn', '.', $BUILD_TARGET_PATH , ENV::getAll()); 
    224 } 
    225 jManifest::process('build/manifests/jelix-others.mn','.', $BUILD_TARGET_PATH , ENV::getAll()); 
    226 jManifest::process('build/manifests/jelix-modules.mn', '.', $BUILD_TARGET_PATH, ENV::getAll()); 
    227 jManifest::process('build/manifests/jelix-admin-modules.mn', '.', $BUILD_TARGET_PATH, ENV::getAll()); 
     227    jManifest::process('build/manifests/lib-json.mn', '.', $BUILD_TARGET_PATH , ENV::getAll(), false, $VERBOSE); 
     228} 
     229jManifest::process('build/manifests/jelix-others.mn','.', $BUILD_TARGET_PATH , ENV::getAll(), false, $VERBOSE); 
     230jManifest::process('build/manifests/jelix-modules.mn', '.', $BUILD_TARGET_PATH, ENV::getAll(), false, $VERBOSE); 
     231jManifest::process('build/manifests/jelix-admin-modules.mn', '.', $BUILD_TARGET_PATH, ENV::getAll(), false, $VERBOSE); 
    228232 
    229233if($INCLUDE_ALL_FONTS){ 
    230     jManifest::process('build/manifests/fonts.mn', '.', $BUILD_TARGET_PATH , ENV::getAll()); 
     234    jManifest::process('build/manifests/fonts.mn', '.', $BUILD_TARGET_PATH , ENV::getAll(), false, $VERBOSE); 
    231235} 
    232236 
    233237if($ENABLE_PHP_JELIX && ($PACKAGE_TAR_GZ || $PACKAGE_ZIP)){ 
    234    jManifest::process('build/manifests/jelix-ext-php.mn', '.', $BUILD_TARGET_PATH , ENV::getAll()); 
     238   jManifest::process('build/manifests/jelix-ext-php.mn', '.', $BUILD_TARGET_PATH , ENV::getAll(), false, $VERBOSE); 
    235239} 
    236240 
  • trunk/build/lib/jManifest.class.php

    r995 r1175  
    7070                        if($doCompression) { 
    7171                            if( preg_match("/\.php$/",$destfile)) { 
     72                                if($verbose) echo "     strip php comment "; 
    7273                                $contents = self::stripPhpComments($contents); 
     74                                if($verbose) echo "OK\n"; 
    7375                            } 
    7476                            else if(preg_match("/\.js$/",$destfile)) { 
     77                                if($verbose) echo "compress javascript file \n"; 
    7578                                $packer = new JavaScriptPacker($contents, 0, true, false); 
    7679                                $contents = $packer->pack(); 
     
    142145        $currentWhistpace =''; 
    143146        $firstPHPfound = false; 
    144         foreach ($tokens as $token) { 
     147        foreach($tokens as $token) { 
    145148            if (is_string($token)) { 
    146149                if(in_array($token, array('(',')','{','}')) && strpos($currentWhitespace, "\n") === false) { 
  • trunk/build/lib/preprocessor.lib.php

    r933 r1175  
    101101 
    102102        $result=''; 
     103        $nb = -1; 
    103104        // on parcours chaque ligne du source 
    104         foreach($source as $nb=>$line){ 
     105        while(count($source)){ 
     106            $nb++; 
     107            $sline = array_shift($source); 
     108            $tline = $sline; 
    105109            $isOpen = !(end($this->_blockstack) & self::BLOCK_NO); 
    106110 
    107             if(preg_match('/^\#(ifdef|define|ifndef|elifdef|undef)\s+(\w+)\s*$/m',$line,$m)){ 
     111            if(preg_match('/^\#(ifdef|define|ifndef|elifdef|undef)\s+(\w+)\s*$/m',$sline,$m)){ 
    108112                switch($m[1]){ 
    109113                    case 'ifdef': 
     
    117121                            } 
    118122                        } 
    119                         $source[$nb]=false; 
     123                        $tline=false; 
    120124                        break; 
    121125                    case 'define': // define avec un seul argument. 
     
    123127                            $this->_variables[$m[2]] = true; 
    124128                        } 
    125                         $source[$nb]=false; 
     129                        $tline=false; 
    126130                        break; 
    127131                    case 'undef': 
     
    129133                            unset($this->_variables[$m[2]]); 
    130134                        } 
    131                         $source[$nb]=false; 
     135                        $tline=false; 
    132136                        break; 
    133137                    case 'ifndef': 
     
    141145                            } 
    142146                        } 
    143                         $source[$nb]=false; 
     147                        $tline=false; 
    144148                        break; 
    145149                    case 'elifdef': 
     
    159163                            } 
    160164                        } 
    161                         $source[$nb]=false; 
     165                        $tline=false; 
    162166                        break; 
    163167                } 
     
    166170                echo "\n";*/ 
    167171 
    168             }elseif(preg_match('/^\#(define)\s+(\w+)\s+(.+)$/m',$line,$m)){ 
     172            }elseif(preg_match('/^\#(define)\s+(\w+)\s+(.+)$/m',$sline,$m)){ 
    169173                // define avec deux arguments 
    170174                if($isOpen){ 
    171175                    $this->_variables[$m[2]] = trim($m[3]); 
    172176                } 
    173                 $source[$nb]=false; 
    174  
    175             }elseif(preg_match('/^\#(expand)\s(.*)$/m',$line,$m)){ 
     177                $tline=false; 
     178 
     179            }elseif(preg_match('/^\#(expand)\s(.*)$/m',$sline,$m)){ 
    176180                if($isOpen){ 
    177                     $source[$nb]=preg_replace('/\_\_(\w*)\_\_/e', '(isset($this->_variables["\\1"])&&$this->_variables["\\1"]!==\'\'?$this->_variables["\\1"]:"__\\1__")',$m[2]); 
    178                 }else{ 
    179                     $source[$nb]=false; 
    180                 } 
    181             }elseif(preg_match('/^\#if\s(.*)$/m',$line,$m)){ 
     181                    $tline=preg_replace('/\_\_(\w*)\_\_/e', '(isset($this->_variables["\\1"])&&$this->_variables["\\1"]!==\'\'?$this->_variables["\\1"]:"__\\1__")',$m[2]); 
     182                }else{ 
     183                    $tline=false; 
     184                } 
     185            }elseif(preg_match('/^\#if\s(.*)$/m',$sline,$m)){ 
    182186                if( !$isOpen ){ 
    183187                    array_push($this->_blockstack, self::BLOCK_IF_NO); 
     
    190194                    } 
    191195                } 
    192                 $source[$nb]=false; 
    193  
    194             }elseif(preg_match('/^\#ifnot\s(.*)$/m',$line,$m)){ 
     196                $tline=false; 
     197 
     198            }elseif(preg_match('/^\#ifnot\s(.*)$/m',$sline,$m)){ 
    195199                if( !$isOpen ){ 
    196200                    array_push($this->_blockstack, self::BLOCK_IF_NO); 
     
    203207                    } 
    204208                } 
    205                 $source[$nb]=false; 
    206             }elseif(preg_match('/^\#elseif\s(.*)$/m',$line,$m)){ 
     209                $tline=false; 
     210            }elseif(preg_match('/^\#elseif\s(.*)$/m',$sline,$m)){ 
    207211                $end = array_pop($this->_blockstack); 
    208212                if(!($end & self::BLOCK_IF)){ 
     
    221225                    } 
    222226                } 
    223                 $source[$nb]=false; 
    224             }elseif(preg_match('/^\#(endif|else)\s*$/m',$line,$m)){ 
     227                $tline=false; 
     228            }elseif(preg_match('/^\#(endif|else)\s*$/m',$sline,$m)){ 
    225229                if($m[1] == 'endif'){ 
    226230                    $end = array_pop($this->_blockstack); 
     
    228232                        throw new jExceptionPreProc($filename,$nb,self::ERR_IF_MISSING); 
    229233                    } 
    230                     $source[$nb]=false; 
     234                    $tline=false; 
    231235                }elseif($m[1]=='else'){ 
    232236                    $end = array_pop($this->_blockstack); 
     
    246250                        throw new jExceptionPreProc($filename,$nb,self::ERR_IF_MISSING); 
    247251                    } 
    248                     $source[$nb]=false; 
    249                 } 
    250             }elseif(preg_match('/^\#include(php)?\s+([\w\/\.\:]+)\s*$/m',$line,$m)){ 
     252                    $tline=false; 
     253                } 
     254            }elseif(preg_match('/^\#include(php)?\s+([\w\/\.\:]+)\s*$/m',$sline,$m)){ 
    251255                if($isOpen){ 
    252256                    $path = $m[2]; 
     
    261265                        $preproc->_doSaveVariables = false; 
    262266                        $preproc->setVars($this->_variables); 
    263                         $source[$nb] = $preproc->parseFile($path); 
     267                        $tline = $preproc->parseFile($path); 
    264268                        $this->_variables = $preproc->_variables; 
     269                        $preproc = null; 
    265270                    }else{ 
    266271                        throw new jExceptionPreProc($filename,$nb,self::ERR_INVALID_FILENAME,$m[2] ); 
    267272                    } 
    268273                    if($m[1] == 'php'){ 
    269                         if(preg_match('/^\s*\<\?(?:php)?(.*)/sm',$source[$nb],$ms)){ 
    270                             $source[$nb] = $ms[1]; 
    271                         } 
    272                         if(preg_match('/(.*)\?\>\s*$/sm',$source[$nb],$ms)){ 
    273                             $source[$nb] = $ms[1]; 
     274                        if(preg_match('/^\s*\<\?(?:php)?(.*)/sm',$tline,$ms)){ 
     275                            $tline = $ms[1]; 
     276                        } 
     277                        if(preg_match('/(.*)\?\>\s*$/sm',$tline,$ms)){ 
     278                            $tline = $ms[1]; 
    274279                        } 
    275280                    } 
    276281               }else{ 
    277                     $source[$nb]=false; 
    278                 } 
    279             }elseif(strlen($line) && $line{0} == '#'){ 
    280                 if(strlen($line)>1 && $line{1} == '#'){ 
     282                    $tline=false; 
     283                } 
     284            }elseif(strlen($sline) && $sline{0} == '#'){ 
     285                if(strlen($sline)>1 && $sline{1} == '#'){ 
    281286                    if(!$isOpen){ 
    282                         $source[$nb]=false; 
    283                     }else{ 
    284                         $source[$nb] = substr($line,1); 
     287                        $tline=false; 
     288                    }else{ 
     289                        $tline = substr($sline,1); 
    285290                    } 
    286291                }else{ 
     
    289294            }else{ 
    290295                if(!$isOpen){ 
    291                     $source[$nb]=false; 
     296                    $tline=false; 
    292297                } 
    293298            } 
    294             if($source[$nb]!==false){ 
     299            if($tline!==false){ 
    295300                if($result == '') 
    296                     $result.=$source[$nb]
     301                    $result.=$tline
    297302                else 
    298                     $result.="\n".$source[$nb]
     303                    $result.="\n".$tline
    299304            } 
    300305        } 
  • trunk/build/manifests/jelix-lib.mn

    r1169 r1175  
    463463! wr3_to_text.php 
    464464! wr3_to_docbook.php 
     465! dokuwiki_to_xhtml.php 
     466! dokuwiki_to_docbook.php 
     467! trac_to_xhtml.php 
     468 
    465469 
    466470cd lib/tcpdf 
  • trunk/build/tests/testpreprocess.php

    r386 r1175  
    198198 
    199199            if($e->sourceLine != $datas[2]){ 
    200                 $this->fail($source . ' : mauvais numero de ligne du source ('.$e->sourceLine.')'); 
     200                $this->fail($source . ' : mauvais numero de ligne du source ('.$e->sourceLine.'!='.$datas[2].')'); 
    201201                $err=true; 
    202202            } 
Download in other formats: Unified Diff Zip Archive