awips2/edexOsgi/build.edex/edex/customTargets.xml

353 lines
15 KiB
XML
Raw Normal View History

2022-05-05 12:34:50 -05:00
<project name="Build specific targets and properties" default="noDefault">
<!-- ===================================================================== -->
<!-- Run a given ${target} on all elements being built -->
<!-- Add on <ant> task for each top level element being built. -->
<!-- ===================================================================== -->
<property name="allElementsFile" value="${builder}/allElements.xml"/>
<import file="${allElementsFile}" />
<target name="allElements">
<antcall target="allElementsDelegator" />
</target>
<!-- ===================================================================== -->
<!-- ===================================================================== -->
<target name="getBaseComponents" depends="checkLocalBase" unless="skipBase">
<get src="${eclipseBaseURL}" dest="${buildDirectory}/../temp-base.zip" />
<unzip dest="${base}" overwrite="true" src="${buildDirectory}/../temp-base.zip" />
</target>
<target name="checkLocalBase">
<available file="${base}" property="skipBase" />
</target>
<!-- ===================================================================== -->
<!-- Check out map files from correct repository -->
<!-- Replace values for mapsCheckoutTag as desired. -->
<!-- ===================================================================== -->
<target name="getMapFiles" depends="checkLocalMaps" unless="skipMaps">
</target>
<target name="checkLocalMaps">
</target>
<target name="tagMapFiles" if="tagMaps">
</target>
<!-- ===================================================================== -->
<target name="clean" unless="noclean">
<antcall target="allElements">
<param name="target" value="cleanElement" />
</antcall>
</target>
<target name="gatherLogs">
<mkdir dir="${buildDirectory}/${buildLabel}/compilelogs" />
<antcall target="allElements">
<param name="target" value="gatherLogs" />
</antcall>
<unzip dest="${buildDirectory}/${buildLabel}/compilelogs" overwrite="true">
<fileset dir="${buildDirectory}/features">
<include name="**/*.log.zip" />
</fileset>
</unzip>
</target>
<!-- ===================================================================== -->
<!-- Steps to do before setup -->
<!-- ===================================================================== -->
<target name="preSetup">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after setup but before starting the build proper -->
<!-- ===================================================================== -->
<target name="postSetup">
<antcall target="getBaseComponents" />
</target>
<!-- ===================================================================== -->
<!-- Steps to do before fetching the build elements -->
<!-- ===================================================================== -->
<target name="preFetch">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after fetching the build elements -->
<!-- ===================================================================== -->
<target name="postFetch">
</target>
<!-- ===================================================================== -->
<!-- Steps to do before generating the build scripts. -->
<!-- ===================================================================== -->
<target name="preGenerate">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after generating the build scripts. -->
<!-- ===================================================================== -->
<target name="postGenerate">
<antcall target="clean" />
</target>
<!-- ===================================================================== -->
<!-- Steps to do before running the build.xmls for the elements being built. -->
<!-- ===================================================================== -->
<target name="preProcess">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after running the build.xmls for the elements being built. -->
<!-- ===================================================================== -->
<target name="postProcess">
</target>
<!-- ===================================================================== -->
<!-- Steps to do before running assemble. -->
<!-- ===================================================================== -->
<target name="preAssemble">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after running assemble. -->
<!-- ===================================================================== -->
<target name="postAssemble">
</target>
<!-- ===================================================================== -->
<!-- Steps to do before running package. -->
<!-- ===================================================================== -->
<target name="prePackage">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after running package. -->
<!-- ===================================================================== -->
<target name="postPackage">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after the build is done. -->
<!-- ===================================================================== -->
<target name="postBuild">
<path id="ant.contrib.path">
<fileset dir="/awips2/ant/lib/">
<include name="ant-contrib-*.jar" />
</fileset>
</path>
<taskdef resource="net/sf/antcontrib/antlib.xml"
classpathref="ant.contrib.path" />
<property file="${builder}/common.properties" />
<property name="build.output.directory"
value="${buildDirectory}/tmp/edex" />
<if>
<available file="${build.output.directory}/data" type="dir" />
<then>
<mkdir dir="${builder}/postBuild/${edex.root.directory}/data" />
<copy todir="${builder}/postBuild/${edex.root.directory}/data">
<fileset dir="${build.output.directory}/data">
<include name="utility/**" />
</fileset>
</copy>
</then>
</if>
<if>
<available file="${build.output.directory}/conf" type="dir" />
<then>
<mkdir dir="${builder}/postBuild/${edex.root.directory}/conf" />
<copy todir="${builder}/postBuild/${edex.root.directory}/conf">
<fileset dir="${build.output.directory}/conf">
<include name="resources/**" />
<include name="modes/**" />
</fileset>
</copy>
</then>
</if>
<if>
<available file="${build.output.directory}/etc" type="dir" />
<then>
<mkdir dir="${builder}/postBuild/${edex.root.directory}/etc" />
<copy todir="${builder}/postBuild/${edex.root.directory}/etc">
<fileset dir="${build.output.directory}/etc" />
</copy>
</then>
</if>
<if>
<available file="${build.output.directory}/webapps" type="dir" />
<then>
<mkdir dir="${builder}/postBuild/${edex.root.directory}" />
<copy todir="${builder}/postBuild/${edex.root.directory}"
verbose="true">
<fileset dir="${build.output.directory}">
<include name="webapps/**" />
</fileset>
</copy>
</then>
</if>
<mkdir dir="${builder}/postBuild/${edex.root.directory}/lib" />
<copy todir="${builder}/postBuild/${edex.root.directory}/lib">
<fileset dir="${build.output.directory}">
<include name="plugins/**" />
</fileset>
</copy>
<shellscript shell="bash"
dir="${builder}/postBuild/${edex.root.directory}/lib">
cd plugins
for directory in `find -type d -maxdepth 1`;
do
if [ ${directory} != "." ]; then
cd ${directory}
/awips2/java/bin/jar cmf \
META-INF/MANIFEST.MF \
../${directory}.jar \
*
cd ..
rm -rf ${directory}
fi
done
</shellscript>
<move todir="${builder}/postBuild/${edex.root.directory}/lib">
<fileset dir="${builder}/postBuild/${edex.root.directory}/lib">
<include name="**/*.jar" />
</fileset>
<mapper type="regexp" from="^(.+?)_(.+).jar" to="\1.jar" />
</move>
<!-- copy the dependency stash -->
<mkdir
dir="${builder}/postBuild/${edex.root.directory}/lib/dependencies" />
<copy todir="${builder}/postBuild/${edex.root.directory}/lib/dependencies">
<fileset dir="${builder}/dependencies-stash">
<include name="*/**" />
</fileset>
</copy>
<delete includeemptydirs="true">
<fileset dir="${builder}"
includes="dependencies-stash/**" />
</delete>
<!--
Remove all PDE-generated FOSS artifacts from the
plugins directory.
-->
<loadfile property="includefile.foss"
srcfile="${builder}/includes/cots.includes" />
<var name="index" value="1" />
<for param="line" list="${includefile.foss}"
delimiter="${line.separator}">
<sequential>
<!-- skip the first line -->
<if>
<not>
<equals arg1="${index}" arg2="1" />
</not>
<then>
<!--
First, determine if the plugin has a source directory.
-->
<if>
<not>
<available file="${buildDirectory}/plugins/@{line}/src"
type="dir" />
</not>
<then>
<!--
Remove the empty FOSS jar from plugins.
-->
<delete file="${builder}/postBuild/${edex.root.directory}/lib/plugins/@{line}.jar" />
</then>
</if>
</then>
</if>
<math result="index"
operand1="${index}"
operation="+"
operand2="1"
datatype="int" />
</sequential>
</for>
<!-- manipulate the topLevelElementId - the feature -->
<propertyregex property="edex.component"
override="true"
input="${topLevelElementId}"
regexp="\."
replace="-" />
<propertyregex property="edex.component"
override="true"
input="${edex.component}"
regexp="com-raytheon-uf-(.+)-feature"
select="\1" />
<propertyregex property="edex.component"
override="true"
input="${edex.component}"
regexp="^(?:edu|gov)-.*(edex-.+)-feature"
select="\1" />
<!-- Create the distribution directory. -->
<mkdir dir="${builder}/dist" />
<zip destfile="${builder}/dist/${edex.component}.zip"
basedir="${builder}/postBuild"
includes="*/**">
</zip>
<delete includeemptydirs="true">
<fileset dir="${build.output.directory}">
<include name="**/**"/>
</fileset>
</delete>
<delete includeemptydirs="true">
<fileset dir="${builder}/postBuild">
<include name="**/**"/>
</fileset>
</delete>
</target>
<!-- ===================================================================== -->
<!-- Steps to do to test the build results -->
<!-- ===================================================================== -->
<target name="test">
</target>
<target name="checkJUnitTestResults">
</target>
<!-- ===================================================================== -->
<!-- Steps to do to publish the build results -->
<!-- ===================================================================== -->
<target name="publish">
</target>
<!-- ===================================================================== -->
<!-- Default target -->
<!-- ===================================================================== -->
<target name="noDefault">
<echo message="You must specify a target when invoking this file" />
</target>
</project>