Changeset 33629d0


Ignore:
Timestamp:
May 1, 2016 8:19:56 PM (4 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
7a49b09
Parents:
2fe1f97
Message:

Build: Compile resource bundles from ant, not msgfmt,
speeding up builds with translations by 20x

Location:
apps
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • apps/desktopgui/build.xml

    r2fe1f97 r33629d0  
    77        <property name="jar" value="desktopgui.jar"/>
    88        <property name="resources" value="resources"/>
    9     <property name="javadoc" value="javadoc"/>
     9        <property name="javadoc" value="javadoc"/>
    1010        <property name="javac.compilerargs" value=""/>
    1111        <property name="javac.version" value="1.6" />
     
    1818        <target name="init">
    1919        <mkdir dir="${build}"/>
    20         <mkdir dir="${build}/${resources}"/>
    21         <mkdir dir="${build}/${javadoc}"/>
    22                 <mkdir dir="${dist}"/>
     20        <mkdir dir="${dist}"/>
    2321        </target>
    2422
     
    2826        </target>
    2927
    30         <target name="compile" depends="init">
     28        <target name="compile" depends="init">
    3129            <javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
    3230                       includeAntRuntime="false"
    3331                       srcdir="${src}" destdir="${build}">
    34             <compilerarg line="${javac.compilerargs}" />
    35             <classpath>
    36                 <pathelement location="../../core/java/build/i2p.jar" />
    37                 <pathelement location="../../installer/lib/wrapper/all/wrapper.jar" />
    38                 <pathelement location="../../router/java/build/router.jar" />
    39             </classpath>
    40                 </javac>
    41         <copy todir="${build}/desktopgui/${resources}">
    42             <fileset dir="${resources}" />
    43         </copy>
    44         </target>
     32                <compilerarg line="${javac.compilerargs}" />
     33                <classpath>
     34                    <pathelement location="../../core/java/build/i2p.jar" />
     35                    <pathelement location="../../installer/lib/wrapper/all/wrapper.jar" />
     36                    <pathelement location="../../router/java/build/router.jar" />
     37                </classpath>
     38            </javac>
     39            <copy todir="${build}/desktopgui/${resources}">
     40                <fileset dir="${resources}" />
     41            </copy>
     42        </target>
    4543
    46         <target name="bundle" unless="no.bundle">
    47         <exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="${require.gettext}" >
    48             <env key="JAVA_HOME" value="${java.home}" />
    49             <arg value="./bundle-messages.sh" />
    50         </exec>
    51         <exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="${require.gettext}" >
    52             <arg value="./bundle-messages.sh" />
    53         </exec>
    54                 <!-- multi-lang is optional -->
    55         <exec executable="sh" osfamily="windows" failifexecutionfails="false" >
    56             <arg value="./bundle-messages.sh" />
    57         </exec>
    58         </target>
     44        <target name="bundle" unless="no.bundle">
     45            <exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="${require.gettext}" >
     46                <env key="JAVA_HOME" value="${java.home}" />
     47                <arg value="./bundle-messages.sh" />
     48            </exec>
     49            <exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="${require.gettext}" >
     50                <arg value="./bundle-messages.sh" />
     51            </exec>
     52            <exec executable="sh" osfamily="windows" failifexecutionfails="false" >
     53                <arg value="./bundle-messages.sh" />
     54            </exec>
     55            <javac source="${javac.version}" target="${javac.version}"
     56                   includeAntRuntime="false"
     57                   srcdir="${build}/messages-src" destdir="${build}">
     58                <compilerarg line="${javac.compilerargs}" />
     59            </javac>
     60        </target>
    5961
    6062        <target name="listChangedFiles" depends="jarUpToDate" if="shouldListChanges" >
     
    7577                <!-- set if unset -->
    7678                <property name="workspace.changes.tr" value="" />
    77                 <jar basedir="${build}" destfile="${dist}/${jar}">
     79                <jar basedir="${build}" excludes="messages-src/**" destfile="${dist}/${jar}">
    7880                        <manifest>
    7981                                <attribute name="Main-Class" value="net.i2p.desktopgui.Main"/>
  • apps/desktopgui/bundle-messages.sh

    r2fe1f97 r33629d0  
    107107
    108108        # convert to class files in build
    109         msgfmt --java --statistics -r $CLASS -l $LG -d build $i
     109        TD=build/messages-src-tmp
     110        TDX=$TD/net/i2p/desktopgui
     111        TD2=build/messages-src
     112        TDY=$TD2/net/i2p/desktopgui
     113        rm -rf $TD
     114        mkdir -p $TD $TDY
     115        msgfmt --java --statistics --source -r $CLASS -l $LG -d $TD $i
    110116        if [ $? -ne 0 ]
    111117        then
     
    116122            break
    117123        fi
     124        mv $TDX/messages_$LG.java $TDY
     125        rm -rf $TD
    118126    fi
    119127done
  • apps/i2psnark/java/build.xml

    r2fe1f97 r33629d0  
    151151            <arg value="./bundle-messages.sh" />
    152152        </exec>
     153        <javac source="${javac.version}" target="${javac.version}"
     154               includeAntRuntime="false"
     155               srcdir="build/messages-src" destdir="build/obj">
     156            <compilerarg line="${javac.compilerargs}" />
     157        </javac>
    153158    </target>
    154159
  • apps/i2psnark/java/bundle-messages.sh

    r2fe1f97 r33629d0  
    9898
    9999        # convert to class files in build/obj
    100         msgfmt --java --statistics -r $CLASS -l $LG -d build/obj $i
     100        TD=build/messages-src-tmp
     101        TDX=$TD/org/klomp/snark/web
     102        TD2=build/messages-src
     103        TDY=$TD2/org/klomp/snark/web
     104        rm -rf $TD
     105        mkdir -p $TD $TDY
     106        msgfmt --java --statistics --source -r $CLASS -l $LG -d $TD $i
    101107        if [ $? -ne 0 ]
    102108        then
     
    107113            break
    108114        fi
     115        mv $TDX/messages_$LG.java $TDY
     116        rm -rf $TD
    109117    fi
    110118done
  • apps/i2ptunnel/java/build.xml

    r2fe1f97 r33629d0  
    137137            <arg value="./bundle-messages.sh" />
    138138        </exec>
     139        <javac source="${javac.version}" target="${javac.version}"
     140               includeAntRuntime="false"
     141               srcdir="build/messages-src" destdir="../jsp/WEB-INF/classes">
     142            <compilerarg line="${javac.compilerargs}" />
     143        </javac>
    139144    </target>
    140145
     
    170175            <arg value="./bundle-messages-proxy.sh" />
    171176        </exec>
     177        <javac source="${javac.version}" target="${javac.version}"
     178               includeAntRuntime="false"
     179               srcdir="build/messages-proxy-src" destdir="build/obj">
     180            <compilerarg line="${javac.compilerargs}" />
     181        </javac>
    172182    </target>
    173183
  • apps/i2ptunnel/java/bundle-messages-proxy.sh

    r2fe1f97 r33629d0  
    100100
    101101        # convert to class files in build/obj
    102         msgfmt --java --statistics -r $CLASS -l $LG -d build/obj $i
     102        TD=build/messages-proxy-src-tmp
     103        TDX=$TD/net/i2p/i2ptunnel/proxy
     104        TD2=build/messages-proxy-src
     105        TDY=$TD2/net/i2p/i2ptunnel/proxy
     106        rm -rf $TD
     107        mkdir -p $TD $TDY
     108        msgfmt --java --statistics --source -r $CLASS -l $LG -d $TD $i
    103109        if [ $? -ne 0 ]
    104110        then
     
    109115            break
    110116        fi
     117        mv $TDX/messages_$LG.java $TDY
     118        rm -rf $TD
    111119    fi
    112120done
  • apps/i2ptunnel/java/bundle-messages.sh

    r2fe1f97 r33629d0  
    9999
    100100        # convert to class files in build/obj
    101         msgfmt --java --statistics -r $CLASS -l $LG -d ../jsp/WEB-INF/classes $i
     101        TD=build/messages-src-tmp
     102        TDX=$TD/net/i2p/i2ptunnel/web
     103        TD2=build/messages-src
     104        TDY=$TD2/net/i2p/i2ptunnel/web
     105        rm -rf $TD
     106        mkdir -p $TD $TDY
     107        msgfmt --java --statistics --source -r $CLASS -l $LG -d $TD $i
    102108        if [ $? -ne 0 ]
    103109        then
     
    108114            break
    109115        fi
     116        mv $TDX/messages_$LG.java $TDY
     117        rm -rf $TD
    110118    fi
    111119done
  • apps/ministreaming/java/build.xml

    r2fe1f97 r33629d0  
    111111            <arg value="./bundle-messages.sh" />
    112112        </exec>
     113        <javac source="${javac.version}" target="${javac.version}"
     114               includeAntRuntime="false"
     115               srcdir="build/messages-src" destdir="build/obj">
     116            <compilerarg line="${javac.compilerargs}" />
     117        </javac>
    113118    </target>
    114119
  • apps/ministreaming/java/bundle-messages.sh

    r2fe1f97 r33629d0  
    9898
    9999        # convert to class files in build/obj
    100         msgfmt --java --statistics -r $CLASS -l $LG -d build/obj $i
     100        TD=build/messages-src-tmp
     101        TDX=$TD/net/i2p/client/streaming
     102        TD2=build/messages-src
     103        TDY=$TD2/net/i2p/client/streaming
     104        rm -rf $TD
     105        mkdir -p $TD $TDY
     106        msgfmt --java --statistics --source -r $CLASS -l $LG -d $TD $i
    101107        if [ $? -ne 0 ]
    102108        then
     
    107113            break
    108114        fi
     115        mv $TDX/messages_$LG.java $TDY
     116        rm -rf $TD
    109117    fi
    110118done
  • apps/routerconsole/java/build.xml

    r2fe1f97 r33629d0  
    159159            <arg value="./bundle-messages.sh" />
    160160        </exec>
     161        <javac source="${javac.version}" target="${javac.version}"
     162               includeAntRuntime="false"
     163               srcdir="build/messages-src" destdir="build/obj">
     164            <compilerarg line="${javac.compilerargs}" />
     165        </javac>
    161166        <!-- jar again to get the latest messages_*.class files -->
    162167        <jar destfile="./build/routerconsole.jar" basedir="./build/obj" includes="**/*.class" update="true" />
     
    205210            <arg value="./bundle-messages-news.sh" />
    206211        </exec>
     212        <javac source="${javac.version}" target="${javac.version}"
     213               includeAntRuntime="false"
     214               srcdir="build/messages-news-src" destdir="build/obj">
     215            <compilerarg line="${javac.compilerargs}" />
     216        </javac>
    207217    </target>
    208218
     
    218228            <arg value="./bundle-messages-countries.sh" />
    219229        </exec>
     230        <javac source="${javac.version}" target="${javac.version}"
     231               includeAntRuntime="false"
     232               srcdir="build/messages-countries-src" destdir="build/obj">
     233            <compilerarg line="${javac.compilerargs}" />
     234        </javac>
    220235    </target>
    221236
  • apps/routerconsole/java/bundle-messages-countries.sh

    r2fe1f97 r33629d0  
    114114
    115115        # convert to class files in build/obj
    116         msgfmt --java --statistics -r $CLASS -l $LG -d build/obj $i
     116        TD=build/messages-countries-src-tmp
     117        TDX=$TD/net/i2p/router/countries
     118        TD2=build/messages-countries-src
     119        TDY=$TD2/net/i2p/router/countries
     120        rm -rf $TD
     121        mkdir -p $TD $TDY
     122        msgfmt --java --statistics --source -r $CLASS -l $LG -d $TD $i
    117123        if [ $? -ne 0 ]
    118124        then
     
    123129            break
    124130        fi
     131        mv $TDX/messages_$LG.java $TDY
     132        rm -rf $TD
    125133    fi
    126134done
  • apps/routerconsole/java/bundle-messages-news.sh

    r2fe1f97 r33629d0  
    100100
    101101        # convert to class files in build/obj
    102         msgfmt --java --statistics -r $CLASS -l $LG -d build/obj $i
     102        TD=build/messages-news-src-tmp
     103        TDX=$TD/net/i2p/router/news
     104        TD2=build/messages-news-src
     105        TDY=$TD2/net/i2p/router/news
     106        rm -rf $TD
     107        mkdir -p $TD $TDY
     108        msgfmt --java --statistics --source -r $CLASS -l $LG -d $TD $i
    103109        if [ $? -ne 0 ]
    104110        then
     
    109115            break
    110116        fi
     117        mv $TDX/messages_$LG.java $TDY
     118        rm -rf $TD
    111119    fi
    112120done
  • apps/routerconsole/java/bundle-messages.sh

    r2fe1f97 r33629d0  
    127127
    128128        # convert to class files in build/obj
    129         msgfmt --java --statistics -r $CLASS -l $LG -d build/obj $i
     129        TD=build/messages-src-tmp
     130        TDX=$TD/net/i2p/router/web
     131        TD2=build/messages-src
     132        TDY=$TD2/net/i2p/router/web
     133        rm -rf $TD
     134        mkdir -p $TD $TDY
     135        msgfmt --java --statistics --source -r $CLASS -l $LG -d $TD $i
    130136        if [ $? -ne 0 ]
    131137        then
     
    136142            break
    137143        fi
     144        mv $TDX/messages_$LG.java $TDY
     145        rm -rf $TD
    138146    fi
    139147done
  • apps/susidns/src/build.xml

    r2fe1f97 r33629d0  
    150150            <arg value="./bundle-messages.sh" />
    151151        </exec>
     152        <javac source="${javac.version}" target="${javac.version}"
     153               includeAntRuntime="false"
     154               srcdir="build/messages-src" destdir="${bin}">
     155            <compilerarg line="${javac.compilerargs}" />
     156        </javac>
    152157    </target>
    153158
     
    172177      <delete>
    173178        <fileset dir="." includes="**/*.class" />
    174         <fileset dir="." includes="tmp" />
     179        <fileset dir="." includes="tmp, build" />
    175180        <fileset dir="WEB-INF" includes="web-fragment.xml, web-out.xml" />
    176181      </delete>
  • apps/susidns/src/bundle-messages.sh

    r2fe1f97 r33629d0  
    100100
    101101        # convert to class files in build/obj
    102         msgfmt --java --statistics -r $CLASS -l $LG -d WEB-INF/classes $i
     102        TD=build/messages-src-tmp
     103        TDX=$TD/i2p/susi/dns
     104        TD2=build/messages-src
     105        TDY=$TD2/i2p/susi/dns
     106        rm -rf $TD
     107        mkdir -p $TD $TDY
     108        msgfmt --java --statistics --source -r $CLASS -l $LG -d $TD $i
    103109        if [ $? -ne 0 ]
    104110        then
     
    109115            break
    110116        fi
     117        mv $TDX/messages_$LG.java $TDY
     118        rm -rf $TD
    111119    fi
    112120done
  • apps/susimail/build.xml

    r2fe1f97 r33629d0  
    114114            <arg value="./bundle-messages.sh" />
    115115        </exec>
     116        <javac source="${javac.version}" target="${javac.version}"
     117               includeAntRuntime="false"
     118               srcdir="build/messages-src" destdir="src/WEB-INF/classes">
     119            <compilerarg line="${javac.compilerargs}" />
     120        </javac>
    116121    </target>
    117122
  • apps/susimail/bundle-messages.sh

    r2fe1f97 r33629d0  
    9898
    9999        # convert to class files in build/obj
    100         msgfmt --java --statistics -r $CLASS -l $LG -d src/WEB-INF/classes $i
     100        TD=build/messages-src-tmp
     101        TDX=$TD/i2p/susi/webmail
     102        TD2=build/messages-src
     103        TDY=$TD2/i2p/susi/webmail
     104        rm -rf $TD
     105        mkdir -p $TD $TDY
     106        msgfmt --java --statistics --source -r $CLASS -l $LG -d $TD $i
    101107        if [ $? -ne 0 ]
    102108        then
     
    107113            break
    108114        fi
     115        mv $TDX/messages_$LG.java $TDY
     116        rm -rf $TD
    109117    fi
    110118done
Note: See TracChangeset for help on using the changeset viewer.