| <?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"> |
| |
| </antcall> |
| <antcall target="runEclipseBuildStamped"> |
| |
| </antcall> |
| </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> |
| <!-- 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.trial}" 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.trial to true, in runbuild.properties, to avoid erroneous time stamps --> |
| <property name="build.trial" 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.trial=${build.trial}" /> |
| <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}" /> |
| <arg value="-application" /> |
| <arg value="org.eclipse.ant.core.antRunner" /> |
| <arg value="-buildfile" /> |
| <arg value="${ant.file}" /> |
| <arg value="build" /> |
| |
| </java> |
| </target> |
| |
| <target name="runEclipseBuildStamped" unless="buildId"> |
| <java taskname="build-${build.distribution}-${component}" jar="${eclipse.launcher}" fork="true" failonerror="${eclipseBuildFailOnError}"> |
| <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.trial=${build.trial}" /> |
| <jvmarg value="-DbuildType=${buildType}" /> |
| <jvmarg value="-DmapVersionTag=${mapVersionTag}" /> |
| <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}" /> |
| <arg value="-application" /> |
| <arg value="org.eclipse.ant.core.antRunner" /> |
| <arg value="-buildfile" /> |
| <arg value="${ant.file}" /> |
| <arg value="build" /> |
| </java> |
| </target> |
| </project> |