Skip to content
Snippets Groups Projects
build.xml 7.17 KiB
Newer Older
<project
    name="build"
    default="build"
    basedir=".">

    <!-- = = = standard properties pattern = = = -->
    <!-- 
david_williams's avatar
david_williams committed
        Note to be cross-platform, "environment variables" are only appropriate for 
david_williams's avatar
david_williams committed
        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 -->
david_williams's avatar
david_williams committed
    <property
        environment="env" />
david_williams's avatar
david_williams committed

david_williams's avatar
david_williams committed
        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" />
	
  <property name="keyCfgFile" value="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/maps/build.cfg" />
  <echo message="keyCfgFile: ${keyCfgFile}" />
  <property
      file="${keyCfgFile}" />
	
david_williams's avatar
david_williams committed
    <property
        file="${ant.project.name}.properties" />

    <!-- = = = end standard properties pattern = = = -->
david_williams's avatar
david_williams committed
	
     <fail unless="build.distribution" message="distribution must be specified" />
	   <echo message="build.distribution: ${build.distribution}" />

        name="build"
        depends="init"
        if="build_distro_target_exists">
        <property
            name="buildfile"
            value="${wtp.builder.home}/distribution/${build.distribution}.build/build.xml" />		
david_williams's avatar
david_williams committed
            level="info"
            message="buildfile: ${buildfile}" />
		<!-- build -->
david_williams's avatar
david_williams committed
        <ant
            antfile="${buildfile}" />
    <target
        name="site"
        depends="init"
        if="site_distro_target_exists">
david_williams's avatar
david_williams committed
        <ant
            antfile="${wtp.builder.home}/distribution/${build.distribution}.site/build.xml">
    <target
        name="test"
        depends="init"
        if="tests_distro_target_exists">
david_williams's avatar
david_williams committed
        <ant
            antfile="${wtp.builder.home}/distribution/${build.distribution}.tests/build.xml">
            <property
                name="testRoot"
david_williams's avatar
david_williams committed
                value="${env.PROJECT_TESTS}/${projectname}" />
            <property
                name="dependencyTargets"
                value="${wtp.builder.home}/scripts/dependency/build.xml" />
            <property
                name="local.cache.dir"
                value="${env.LOCAL_PREREQS_CACHE}" />
        </ant>
    </target>
    <target
        name="upload"
        depends="init"
        if="upload_distro_target_exists">
david_williams's avatar
david_williams committed
        <ant
            antfile="${wtp.builder.home}/distribution/${build.distribution}.upload/build.xml" />
    <target
        name="copyArtifacts"
        depends="init">
david_williams's avatar
david_williams committed
        <mkdir
            dir="${localStampedArtifactsDirectory}" />
        <mkdir
            dir="${localStampedArtifactsDirectory}/${buildLabel}" />
        <copy
            todir="${localStampedArtifactsDirectory}/${buildLabel}"
            overwrite="true">
david_williams's avatar
david_williams committed
            <fileset
                dir="${buildDirectory}/${buildLabel}" />
	
	<!--
		init: 
		1) set buildBranch property
		2) call label.xml to create label.properties file in <BUILD HOME>/projects/<project>/workdir	
		3) check for existence of build.xml file for each of the build, test, upload, site distribution locations and set properties
	-->		
david_williams's avatar
david_williams committed
    <target
        name="init">
        <dirname
            file="${ant.file}"
            property="wtp.builder.home" />
        <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>
david_williams's avatar
david_williams committed
        <condition
            property="buildBranch"
david_williams's avatar
david_williams committed
            value="R1.5.5">
david_williams's avatar
david_williams committed
            <equals
                arg1="${mapVersionTag}"
                arg2="R1_5_5_patches" />
david_williams's avatar
david_williams committed
        </condition>
        <condition
            property="buildBranch"
            value="R2.0">
            <equals
                arg1="${mapVersionTag}"
                arg2="R2_0_maintenance" />
        </condition>
david_williams's avatar
david_williams committed
                  <condition
                     property="buildBranch"
david_williams's avatar
david_williams committed
                     value="R2.0.2">
david_williams's avatar
david_williams committed
                  <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" />
david_williams's avatar
david_williams committed
        <touch
            file="${user.home}/.cvspass" />

        <!-- 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="" />
david_williams's avatar
david_williams committed
        <property
            file="${wtp.builder.home}/build.properties" />
        
    	<!-- creating label.properties file -->
    	<ant
david_williams's avatar
david_williams committed
            antfile="${wtp.builder.home}/scripts/build/label.xml" />
        <property
            file="${buildDirectory}/label.properties" />    	    	
        <echo
            level="info"
            message="label: ${buildDirectory}/label.properties" />

            name="build.distribution"
            value="${wtp.builder.home}/distribution/${wtp.builder.home}/distribution/${build.distribution}" />
            file="${wtp.builder.home}/distribution/${build.distribution}.build/build.xml"
david_williams's avatar
david_williams committed
            type="file"
            property="build_distro_target_exists" />
            file="${wtp.builder.home}/distribution/${build.distribution}.site/build.xml"
david_williams's avatar
david_williams committed
            type="file"
            property="site_distro_target_exists" />
            file="${wtp.builder.home}/distribution/${build.distribution}.tests/build.xml"
david_williams's avatar
david_williams committed
            type="file"
            property="tests_distro_target_exists" />
            file="${wtp.builder.home}/distribution/${build.distribution}.upload/build.xml"
david_williams's avatar
david_williams committed
            type="file"
            property="upload_distro_target_exists" />

        <!--fetch the HEAD stream of all projects if build type specified as N-->
        <condition
            property="fetchTag"
            value="HEAD">
            <equals
                arg1="${buildType}"
                arg2="N" />
        </condition>
david_williams's avatar
david_williams committed
        <condition
            property="tagMaps">
                arg1="${build.donottagmaps}"
                arg2="false" />
        </condition>
    </target>
david_williams's avatar
david_williams committed
</project>