Browse Source

proposed refactored script - still using targets in release/build.xml for now

tags/PRE_ANDY
wisberg 19 years ago
parent
commit
c7e5498d3d
2 changed files with 217 additions and 0 deletions
  1. 156
    0
      eclipse.plugin/build.xml
  2. 61
    0
      eclipse.plugin/diff-build-results.sh

+ 156
- 0
eclipse.plugin/build.xml View File

@@ -0,0 +1,156 @@
<!-- ====================================================================== -->
<!-- Copyright (c) 2005 Contributors -->
<!-- All rights reserved. -->
<!-- This program and the accompanying materials are made available -->
<!-- under the terms of the Eclipse Public License v1.0 -->
<!-- which accompanies this distribution and is available at -->
<!-- http://www.eclipse.org/legal/epl-v10.html -->
<!-- -->
<!-- Contributors: (See CVS checkin's) -->
<!-- ====================================================================== -->

<project name="eclipse.plugins" default="eclipse.plugins" basedir=".">
<import file="${basedir}/../build/build-properties.xml" />

<target name="info">
<echo>
Assembles the Eclipse plugins.
Relies on ../build/build-properties.xml for some definitions, and
the build must have produced the AspectJ distribution already.
Define $${build.version.eclipse.plugins} to avoid "9.9.9" for
"DEVELOPMENT" (the default).
</echo>
</target>

<target name="init-eclipse-plugins" depends="init-properties">
<property name="ep.dir"
location="${aspectj.modules.dir}/eclipse.plugin"
/>

<condition property="build.version.eclipse.plugins"
value="9.9.9"
>
<equals arg1="DEVELOPMENT" arg2="${build.version.long}" />
</condition>
<condition property="build.version.eclipse.plugins"
value="${build.version.long}"
>
<not>
<equals arg1="DEVELOPMENT"
arg2="${build.version.long}"
/>
</not>
</condition>
<jar-property name="ep.aspectjrt.jar"
location="${aj.dist.dir}/tools/lib/aspectjrt.jar"
/>
<property name="ep.eclipse.dist.dir"
location="${aj.dist.dir}/ide/eclipse"
/>
</target>

<target name="eclipse.plugins"
depends="do-rt,do-source,do-ajde,do-doc"
/>

<target name="do-rt" depends="init-eclipse-plugins">

<property name="name.rt" value="org.aspectj.aspectjrt" />
<mkdir dir="${ep.eclipse.dist.dir}/${name.rt}" />
<copy todir="${ep.eclipse.dist.dir}/${name.rt}"
file="${ep.aspectjrt.jar}"
/>
<build-eclipse-plugin name="${name.rt}" />
</target>

<target name="do-source" depends="init-eclipse-plugins">
<property name="name.source"
value="org.aspectj.ajde.source"
/>
<clean-dir dir="${ep.eclipse.dist.dir}/${name.source}/src" />
<copy todir="${ep.eclipse.dist.dir}/${name.source}/src"
file="${aspectj.modules.dir}/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip"
/>
<!-- verify source dirs included:
grep 'kind="src"' */.classpath | sed '/testsrc/d;/path="\//d;s|\/.*path="|\/|;s|".*||'
-->
<zip destfile="${ep.eclipse.dist.dir}/${name.source}/src/aspectjsrc.zip"
>
<fileset dir="${aspectj.modules.dir}/ajbrowser/src" />
<fileset dir="${aspectj.modules.dir}/ajde/src" />
<fileset dir="${aspectj.modules.dir}/ajdoc/src" />
<fileset dir="${aspectj.modules.dir}/asm/src" />
<fileset dir="${aspectj.modules.dir}/aspectj5rt/java5-src"
/>
<fileset dir="${aspectj.modules.dir}/aspectj5rt/src" />
<fileset dir="${aspectj.modules.dir}/bridge/src" />
<fileset dir="${aspectj.modules.dir}/loadtime/src" />
<fileset dir="${aspectj.modules.dir}/loadtime5/java5-src"
/>
<fileset dir="${aspectj.modules.dir}/org.aspectj.ajdt.core/src"
/>
<fileset dir="${aspectj.modules.dir}/org.aspectj.lib/src"
/>
<fileset dir="${aspectj.modules.dir}/runtime/src" />
<fileset dir="${aspectj.modules.dir}/taskdefs/src" />
<fileset dir="${aspectj.modules.dir}/util/src" />
<fileset dir="${aspectj.modules.dir}/weaver/src" />
</zip>
<build-eclipse-plugin name="${name.source}" />
</target>

<target name="do-ajde" depends="init-eclipse-plugins">
<property name="name.ajde" value="org.aspectj.ajde" />
<jar-property name="ep.aspectjtools.jar"
location="${aj.dist.dir}/tools/lib/aspectjtools.jar"
/>
<clean-dir dir="${ep.eclipse.dist.dir}/${name.ajde}" />
<copy todir="${ep.eclipse.dist.dir}/${name.ajde}">
<fileset file="${ep.aspectjrt.jar}" />
<fileset file="${ep.aspectjtools.jar}" />
</copy>
<jar destfile="${ep.eclipse.dist.dir}/${name.ajde}/ajde.jar">
<zipfileset src="${ep.aspectjtools.jar}"
includes="org/aspectj/**"
/>
<!-- TODO dangerous assumption: only org.aspectj? not org.eclipse or org.osgi? -->
</jar>
<build-eclipse-plugin name="${name.ajde}" />
</target>

<target name="do-doc" depends="init-eclipse-plugins">
<available property="ep.docs.available"
file="${aj.dist.dir}/docs/doc/examples/build.xml"
/>
<fail unless="ep.docs.available"
message="no doc in ${aj.dist.dir}"
/>
<property name="name.doc" value="org.aspectj.ajde.doc" />
<clean-dir dir="${ep.eclipse.dist.dir}/${name.doc}/doc" />
<copy todir="${ep.eclipse.dist.dir}/${name.doc}/doc">
<fileset dir="${aj.dist.dir}/docs/doc" />
</copy>
<build-eclipse-plugin name="${name.doc}" />
</target>

<macrodef name="build-eclipse-plugin">
<attribute name="name" />
<sequential>
<mkdir dir="${ep.eclipse.dist.dir}/@{name}" />
<copy todir="${ep.eclipse.dist.dir}/@{name}">
<fileset dir="${ep.dir}/@{name}" />
</copy>
<replace file="${ep.eclipse.dist.dir}/@{name}/plugin.xml"
token="build.version.eclipse.plugins"
value="${build.version.eclipse.plugins}"
/>
<jar destfile="${ep.eclipse.dist.dir}/@{name}_${build.version.eclipse.plugins}.jar"
>
<fileset dir="${ep.eclipse.dist.dir}/@{name}" />
</jar>
</sequential>
</macrodef>

</project>

+ 61
- 0
eclipse.plugin/diff-build-results.sh View File

@@ -0,0 +1,61 @@
#!/bin/bash
# Regression test when changing the build script.
# Compare new.zip and old.zip, assuming they contain build results
# aj-build/dist/ide/eclipse for two different versions of the build script
# (and comparing only the contents of the .jar files).
# [There must be a better way: diff support that recurses into .jar/.zip files]

[ -n "$DEBUG" ] && set -vx

jar="${JAVA_HOME}/bin/jar"

errExit() {
echo "ERROR $1: $2"
exit "$1"
}

# make this empty to avoid unzipping new.zip and old.zip
dozip="yes"
if [ -z "${dozip}" ] ; then
cd temp
else
rm -rf temp
mkdir temp
cd temp
for d in new old; do
[ -f ../$d.zip ] || errExit 2 "make $d.zip";
mkdir $d
cd $d
$jar -xf ../../$d.zip
cd eclipse
ls *.jar | sort > ../../$d-names.txt
cd ../..
done
fi

diff *-names.txt > /dev/null || errExit 3 "expected same products"
for j in `cat new-names.txt`; do
mkdir $j-dir;
cd $j-dir
for d in new old; do
mkdir $d
cd $d
$jar xf ../../$d/eclipse/$j
dirpath=`pwd | sed 's|/cygdrive/c|c:|'`
for z in `find . -type f -name \*.jar -o -name \*.zip`; do
mkdir ${z}-dir
pushd ${z}-dir
$jar -xf $dirpath/${z}
popd
done
cd ..
done
diff -qr new old > diffs.txt
cd ..
done
cat */diffs.txt
wc -l */diffs.txt





Loading…
Cancel
Save