| <?xml version="1.0" encoding="UTF-8"?> |
| <project |
| name="runbuild" |
| default="runbuild" |
| basedir="."> |
| |
| <!-- = = = standard properties pattern = = = --> |
| <!-- |
| Note to be cross-platform, "environment variables" are only appropriate for |
| some variables, e.g. ones we set, since properties are case sensitive, even if |
| the environment variables on your operating system are not, e.g. it will |
| be ${env.Path} not ${env.PATH} on Windows --> |
| <property |
| environment="env" /> |
| |
| <!-- |
| Let users override standard properties, if desired. |
| If directory, file, or some properties do not exist, |
| then standard properties will be used. |
| --> |
| <property |
| file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties" /> |
| |
| <!-- = = = end standard properties pattern = = = --> |
| <fail |
| unless="env.BUILD_HOME" |
| message="all scripts need a BUILD_HOME" /> |
| <echo |
| level="info" |
| message="buildDirectory: ${buildDirectory}" /> |
| <property |
| name="keyCfgFile" |
| value="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/maps/build.cfg" /> |
| <echo |
| message="keyCfgFile: ${keyCfgFile}" /> |
| <property |
| file="${keyCfgFile}" /> |
| <fail |
| unless="builderVersion" |
| message="Could not get builderVersion. Probably could not checkout build.cfg?" /> |
| <fail |
| unless="eclipse.builder.version" |
| message="Could not get eclipse.builder.version. Perhaps an old format build.cfg?" /> |
| <property |
| name="basebuilder.path" |
| value="${env.BASE_BUILDERS}/${eclipse.builder.version}" /> |
| |
| |
| |
| <!-- if not explicitly set by caller, we'll assume we should fail |
| here on errors. In some cases, such as JUnit test compiles, or |
| even leaf components, the caller may want to set to false, so that |
| some part of the build is still made available --> |
| <property |
| name="eclipseBuildFailOnError" |
| value="true" /> |
| <target |
| name="runbuild"> |
| <dirname |
| file="${ant.file}" |
| property="scripts.build.dir" /> |
| <property |
| name="wtp.builder.home" |
| value="${scripts.build.dir}/../../.." /> |
| <antcall |
| target="runEclipseBuild" /> |
| </target> |
| <target |
| name="build" |
| depends="init"> |
| |
| <!--this property required as of Eclipse 3.0 stream builds > 20031126 --> |
| <property |
| name="buildingOSGi" |
| value="true" /> |
| |
| <!-- this generateFeatureVersionSuffix property causes feature |
| suffixes to be calcuated based on their |
| own CVS tag, plus the qualifier of their contained plugins --> |
| <!-- |
| https://bugs.eclipse.org/bugs/show_bug.cgi?id=138825 |
| false for builds intended for 3.1.2, since can generate underscores |
| true for builds instended for 3.2 |
| --> |
| <property |
| name="generateFeatureVersionSuffix" |
| value="true" /> |
| <property |
| name="outputUpdateJars" |
| value="true" /> |
| <property |
| name="runPackager" |
| value="true" /> |
| |
| <!--run the build for the specified component--> |
| <echo |
| level="debug" |
| message="basedir: ${basedir}" /> |
| <echo |
| level="debug" |
| message="component: ${component}" /> |
| <echo |
| level="debug" |
| message="buildDirectory: ${buildDirectory}" /> |
| <echo |
| level="debug" |
| message="wtp.builder.home: ${wtp.builder.home}" /> |
| <echo |
| level="debug" |
| message="buildBranch: ${buildBranch}" /> |
| <fail |
| unless="buildBranch" /> |
| <ant |
| antfile="build.xml" |
| dir="${pde.build.scripts}"> |
| <property |
| name="builder" |
| value="${wtp.builder.home}/components/${component}" /> |
| <property |
| name="wtp.builder.home" |
| value="${wtp.builder.home}" /> |
| <property |
| name="buildBranch" |
| value="${buildBranch}" /> |
| <property |
| name="dependencyTargets" |
| value="${wtp.builder.home}/scripts/dependency/build.xml" /> |
| <property |
| name="local.cache.dir" |
| value="${env.LOCAL_PREREQS_CACHE}" /> |
| <property |
| name="baseLocation" |
| value="${env.PROJECT_PROJECTS}/${projectname}/eclipse" /> |
| <property |
| name="buildRoot" |
| value="${env.PROJECT_PROJECTS}/${projectname}" /> |
| <property |
| name="testRoot" |
| value="${env.PROJECT_TESTS}/${projectname}" /> |
| <property |
| name="performanceRoot" |
| value="${env.BUILD_HOME}/${build.perf.tests}-${buildType}" /> |
| </ant> |
| </target> |
| <target |
| name="checkBaseBuilder" |
| depends="checkWTPBaseBuilder"> |
| |
| <!-- we just check if both base, and our wtp specific one are current, if |
| either is not, we'll get them both --> |
| <condition |
| property="basebuilderlocal"> |
| <and> |
| <available |
| file="${pde.builder.path}" /> |
| <!-- should we check explicitly for "true" instead of just isset? |
| either should work for this case, but which is better ant style? --> |
| <isset |
| property="wtpBuilderPresent" /> |
| </and> |
| </condition> |
| <echo |
| message="basebuilderlocal: ${basebuilderlocal}" /> |
| <echo |
| message="wtpBuilderPresent: ${wtpBuilderPresent}" /> |
| </target> |
| <target |
| name="getBaseBuilder" |
| depends="init,checkBaseBuilder" |
| unless="basebuilderlocal"> |
| <!-- *** change the repo info --> |
| <property |
| name="builderCvsRoot" |
| value=":pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse" /> |
| |
| <!-- note: untagged or some default version of base builder is not good to use. |
| in some cases, won't run at all, in the best of cases, will simply |
| be unstable, so we'll fail if we forgot to specify it --> |
| <fail |
| unless="eclipse.builder.version" /> |
| <mkdir |
| dir="${env.BASE_BUILDERS}/${eclipse.builder.version}" /> |
| <cvs |
| quiet="${env.CVS_QUIET}" |
| reallyquiet="${env.CVS_REALLY_QUIET}" |
| cvsRoot="${builderCvsRoot}" |
| package="${eclipse.builder}" |
| dest="${basebuilder.path}" |
| tag="${eclipse.builder.version}" /> |
| <fail |
| unless="wtpBuildTools.url" /> |
| <!-- now add our WTP base builder if not there --> |
| <antcall |
| target="getWTPBaseBuilder" /> |
| </target> |
| <target |
| name="getWTPBaseBuilder" |
| depends="checkWTPBaseBuilder" |
| unless="wtpBuilderPresent"> |
| <get |
| dest="${basebuilder.path}/org.eclipse.releng.basebuilder/plugins/${wtpBuildTools.file}" |
| src="${wtpBuildTools.url}/${wtpBuildTools.file}" |
| usetimestamp="true" /> |
| </target> |
| <target |
| name="checkWTPBaseBuilder"> |
| <condition |
| property="wtpBuilderPresent"> |
| <available |
| file="${basebuilder.path}/org.eclipse.releng.basebuilder/plugins/${wtpBuildTools.file}" /> |
| </condition> |
| </target> |
| <target |
| name="init"> |
| <condition |
| property="buildBranch" |
| value="R3.0"> |
| <equals |
| arg1="${mapVersionTag}" |
| arg2="HEAD" /> |
| </condition> |
| <condition |
| property="buildBranch" |
| value="R0.7"> |
| <equals |
| arg1="${mapVersionTag}" |
| arg2="R0_7_maintenance" /> |
| </condition> |
| <condition |
| property="buildBranch" |
| value="R1.0"> |
| <equals |
| arg1="${mapVersionTag}" |
| arg2="R1_0_maintenance" /> |
| </condition> |
| <condition |
| property="buildBranch" |
| value="R1.5"> |
| <equals |
| arg1="${mapVersionTag}" |
| arg2="R1_5_maintenance" /> |
| </condition> |
| <condition |
| property="buildBranch" |
| value="R1.5"> |
| <equals |
| arg1="${mapVersionTag}" |
| arg2="R1_5_5_patches" /> |
| </condition> |
| <condition |
| property="buildBranch" |
| value="R2.0"> |
| <equals |
| arg1="${mapVersionTag}" |
| arg2="R2_0_maintenance" /> |
| </condition> |
| <condition |
| property="buildBranch" |
| value="R2.0"> |
| <equals |
| arg1="${mapVersionTag}" |
| arg2="R2_0_2_patches" /> |
| </condition> |
| <!-- if not set above, assume R3.0 --> |
| <!-- this happens, for example, when using a "tempTest" branch --> |
| <property |
| name="buildBranch" |
| value="R3.0" /> |
| |
| <!-- strip trailing blanks. Seems either Eclipse, or CVS make it hard to not have trailing spaces --> |
| <replaceregexp |
| flags="gm" |
| file="${wtp.builder.home}/build.properties" |
| match=" *$" |
| replace="" /> |
| <property |
| file="${wtp.builder.home}/build.properties" /> |
| <ant |
| antfile="${wtp.builder.home}/scripts/build/label.xml" /> |
| <property |
| file="${buildDirectory}/label.properties" /> |
| |
| <!--fetch the HEAD stream of all projects if build type specified as N--> |
| <condition |
| property="fetchTag" |
| value="HEAD"> |
| <equals |
| arg1="${buildType}" |
| arg2="N" /> |
| </condition> |
| <condition |
| property="tagMaps"> |
| <equals |
| arg1="${build.donottagmaps}" |
| arg2="false" /> |
| </condition> |
| </target> |
| <target |
| name="runEclipseBuild" |
| if="buildId"> |
| <fail |
| unless="eclipse.builder.version" /> |
| |
| <!-- if not otherwise set "externally", set the classpath jars for |
| the Execution Envirnonments we need in WTP. |
| And other parameters we need set. |
| To successfully do local builds, most of these do have to be provided |
| externally, such as in "localbuildproperties" directory --> |
| <property |
| name="J2SE-1.4" |
| value="${env.JAVA_4_HOME}/jre/lib/core.jar:${env.JAVA_4_HOME}/jre/lib/xml.jar:${env.JAVA_4_HOME}/jre/lib/graphics.jar:${env.JAVA_4_HOME}/jre/lib/server.jar:${env.JAVA_4_HOME}/jre/lib/ibmorbapi.jar:${env.JAVA_4_HOME}/jre/lib/security.jar" /> |
| <property |
| name="J2SE-1.5" |
| value="${env.JAVA_5_HOME}/jre/lib/core.jar:${env.JAVA_5_HOME}/jre/lib/vm.jar:${env.JAVA_5_HOME}/jre/lib/xml.jar:${env.JAVA_5_HOME}/jre/lib/graphics.jar:${env.JAVA_5_HOME}/jre/lib/server.jar:${env.JAVA_5_HOME}/jre/lib/ibmorbapi.jar:${env.JAVA_5_HOME}/jre/lib/security.jar" /> |
| |
| <!-- local builds must set build.donottagmaps to true, in runbuild.properties, to avoid erroneous time stamps --> |
| <property |
| name="build.donottagmaps" |
| value="false" /> |
| <fail |
| unless="J2SE-1.5" |
| message="classpath to J2SE-1.5 Execution Environment must be set" /> |
| <fail |
| unless="J2SE-1.4" |
| message="classpath to J2SE-1.4 Execution Environment must be set" /> |
| |
| <!-- we read these in as ant properties, so in java call below, we convert |
| them to system (environment) properties, which is where PDE expects to find them --> |
| <echo |
| message="J2SE-1.5=${J2SE-1.5}" /> |
| <echo |
| message="J2SE-1.4=${J2SE-1.4}" /> |
| <java |
| taskname="build-${build.distribution}-${component}" |
| jar="${eclipse.launcher}" |
| fork="true" |
| failonerror="${eclipseBuildFailOnError}"> |
| <jvmarg |
| value="-Djava.protocol.handler.pkgs=com.ibm.etools.www.protocol" /> |
| <jvmarg |
| value="-DurlLogLocation=${buildDirectory}/outgoinghttplogfromcodebuild.log" /> |
| <jvmarg |
| value="-Dosgi.ws=${env.BASEWS}" /> |
| <jvmarg |
| value="-Dosgi.os=${env.BASEOS}" /> |
| <jvmarg |
| value="-Dosgi.arch=${env.BASEARCH}" /> |
| <jvmarg |
| value="-Dbuild.home=${env.BUILD_HOME}" /> |
| <jvmarg |
| value="-DJAVA_5_HOME=${env.JAVA_5_HOME}" /> |
| <jvmarg |
| value="-DJAVA_4_HOME=${env.JAVA_4_HOME}" /> |
| <jvmarg |
| value="-DJ2SE-1.5=${J2SE-1.5}" /> |
| <jvmarg |
| value="-DJ2SE-1.4=${J2SE-1.4}" /> |
| <jvmarg |
| value="-Dbuild.donottagmaps=${build.donottagmaps}" /> |
| <jvmarg |
| value="-DbuildType=${buildType}" /> |
| <jvmarg |
| value="-DbuildId=${buildId}" /> |
| <jvmarg |
| value="-Dosgi.clean=true" /> |
| <jvmarg |
| value="-DmapVersionTag=${mapVersionTag}" /> |
| <jvmarg |
| value="-Declipse.builder.version=${eclipse.builder.version}" /> |
| <jvmarg |
| value="-Declipse.builder=${eclipse.builder}" /> |
| <jvmarg |
| value="-Dprojectname=${projectname}" /> |
| <jvmarg |
| value="-Dreleng.jsf-mapVersionTag=${releng.jsf-mapVersionTag}" /> |
| <jvmarg |
| value="-Dreleng.dali-mapVersionTag=${releng.dali-mapVersionTag}" /> |
| <jvmarg |
| value="-Dwtp.builder.home=${wtp.builder.home}" /> |
| <jvmarg |
| value="-Dbuild.distribution=${build.distribution}" /> |
| <jvmarg |
| value="-Dcomponent=${component}" /> |
| <jvmarg |
| value="-Dbasebiulder.path=${basebuilder.path}" /> |
| <jvmarg |
| value="-DwtpBuildTools.file=${wtpBuildTools.file}" /> |
| <jvmarg value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}" /> |
| <jvmarg value="-DSKIP_JAR_SIGNING=${SKIP_JAR_SIGNING}" /> |
| <arg |
| value="-application" /> |
| <arg |
| value="org.eclipse.ant.core.antRunner" /> |
| <arg |
| value="-buildfile" /> |
| <arg |
| value="${ant.file}" /> |
| <arg |
| value="build" /> |
| </java> |
| </target> |
| </project> |