Skip to content

Commit 6e36905

Browse files
committed
Enhance build scripts to check for up-to-date artifacts before creation
Don't rebuild jars if nothing changed! See eclipse-pde/eclipse.pde#2233
1 parent 189e8e5 commit 6e36905

9 files changed

Lines changed: 107 additions & 44 deletions

File tree

ant/org.eclipse.ant.core/buildfiles/buildExtraJAR.xml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,29 @@
88
https://www.eclipse.org/legal/epl-2.0/
99
1010
SPDX-License-Identifier: EPL-2.0
11-
11+
1212
Contributors:
1313
IBM Corporation - initial API and implementation
1414
-->
1515

1616
<project name="Build Ant support JAR" default="build" basedir="..">
1717

18-
<target name="build" description="Cleans, builds and refreshes the impacted resources" depends="clean, lib/antsupportlib.jar"/>
18+
<target name="build" description="Builds and refreshes the impacted resources" depends="lib/antsupportlib.jar"/>
1919

2020
<target name="init">
2121
<property name="temp.folder" value="${basedir}/temp.folder"/>
2222
<property name="build.result.folder" value="${basedir}"/>
2323
</target>
2424

25-
<target name="lib/antsupportlib.jar" depends="init" description="Creates the lib/antsupportlib.jar">
25+
<target name="checkSourceUpToDate" depends="init">
26+
<uptodate property="jarUpToDate" targetfile="${build.result.folder}/lib/antsupportlib.jar">
27+
<srcfiles dir="${basedir}/src_ant/" includes="**/*"/>
28+
</uptodate>
29+
</target>
30+
31+
<target name="lib/antsupportlib.jar" depends="init, checkSourceUpToDate" unless="jarUpToDate" description="Creates the lib/antsupportlib.jar">
2632
<property name="destdir" value="${temp.folder}/lib/antsupportlib.jar.bin"/>
33+
<delete dir="${temp.folder}"/>
2734
<delete dir="${destdir}"/>
2835
<mkdir dir="${destdir}"/>
2936
<!-- copy necessary resources -->

ant/org.eclipse.ant.launching/buildfiles/buildCommonDebug.xml

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,27 @@
88
https://www.eclipse.org/legal/epl-2.0/
99
1010
SPDX-License-Identifier: EPL-2.0
11-
11+
1212
Contributors:
1313
IBM Corporation - initial API and implementation
1414
-->
1515

1616
<project name="Build Ant common debug support JAR" default="build" basedir="..">
17-
18-
<target name="build" description="Cleans, builds and refreshes" depends="clean, lib/antdebuglib.jar"/>
17+
18+
<target name="build" description="Builds and refreshes" depends="lib/antdebuglib.jar"/>
1919

2020
<target name="init" depends="properties">
2121
<property name="temp.folder" value="${basedir}/temp.folder"/>
2222
<property name="build.result.folder" value="${basedir}"/>
2323
</target>
24-
24+
2525
<target name="properties" if="eclipse.running">
2626
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
2727
</target>
28-
29-
<target name="lib/antdebuglib.jar" description= "Creates the antdebug.jar" depends="init">
28+
29+
<target name="lib/antdebuglib.jar" description= "Creates the antdebug.jar" depends="init, checkSourceUpToDate" unless="jarUpToDate">
3030
<property name="destdir" value="${temp.folder}/lib/antdebug.jar.bin"/>
31+
<delete dir="${temp.folder}"/>
3132
<delete dir="${destdir}"/>
3233
<mkdir dir="${destdir}"/>
3334
<javac release="17" destdir="${destdir}" failonerror="true" verbose="false" debug="on" includeAntRuntime="yes"
@@ -36,7 +37,7 @@
3637
<compilerarg value="-Xlint"/>
3738
</javac>
3839
<copy file="${basedir}/common_bin/META-INF/eclipse.inf" tofile="${destdir}/META-INF/eclipse.inf"/>
39-
40+
4041
<mkdir dir="${build.result.folder}/lib"/>
4142
<jar destfile="${build.result.folder}/lib/antdebug.jar" basedir="${destdir}"/>
4243
<delete dir="${temp.folder}"/>
@@ -46,7 +47,13 @@
4647
<delete file="${build.result.folder}/lib/antdebug.jar"/>
4748
<delete dir="${temp.folder}"/>
4849
</target>
49-
50+
51+
<target name="checkSourceUpToDate" depends="init">
52+
<uptodate property="jarUpToDate" targetfile="${build.result.folder}/lib/antdebug.jar">
53+
<srcfiles dir="${basedir}/common" includes="**/*"/>
54+
</uptodate>
55+
</target>
56+
5057
<!-- Empty target for "After a Clean" task (we don't want to rebuild the Jar here, e.g. on checkout). -->
5158
<target name="after_clean"/>
52-
</project>
59+
</project>

ant/org.eclipse.ant.launching/buildfiles/buildLoggers.xml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,29 @@
88
https://www.eclipse.org/legal/epl-2.0/
99
1010
SPDX-License-Identifier: EPL-2.0
11-
11+
1212
Contributors:
1313
IBM Corporation - initial API and implementation
1414
-->
1515

1616
<project name="Build Ant loggers support JAR" default="build" basedir="..">
17-
18-
<target name="build" description="Cleans, builds and refreshes" depends="clean, lib/loggerslib.jar"/>
17+
18+
<target name="build" description="Cleans, builds and refreshes" depends="lib/loggerslib.jar"/>
1919

2020
<target name="init">
2121
<property name="temp.folder" value="${basedir}/temp.folder"/>
2222
<property name="build.result.folder" value="${basedir}"/>
2323
</target>
2424

25-
<target name="lib/loggerslib.jar" description= "Creates the loggers.jar" depends="init">
25+
<target name="checkSourceUpToDate">
26+
<uptodate property="jarUpToDate" targetfile="${build.result.folder}/lib/loggers.jar">
27+
<srcfiles dir="${basedir}/loggers/" includes="**/*"/>
28+
</uptodate>
29+
</target>
30+
31+
<target name="lib/loggerslib.jar" description= "Creates the loggers.jar" depends="init, checkSourceUpToDate" unless="jarUpToDate">
2632
<property name="destdir" value="${temp.folder}/lib/loggers.jar.bin"/>
33+
<delete dir="${temp.folder}"/>
2734
<delete dir="${destdir}"/>
2835
<mkdir dir="${destdir}"/>
2936
<!-- copy necessary class files resources -->
@@ -39,4 +46,4 @@
3946
<delete file="${build.result.folder}/lib/loggers.jar"/>
4047
<delete dir="${temp.folder}"/>
4148
</target>
42-
</project>
49+
</project>

ant/org.eclipse.ant.launching/buildfiles/buildRemote.xml

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,33 @@
88
https://www.eclipse.org/legal/epl-2.0/
99
1010
SPDX-License-Identifier: EPL-2.0
11-
11+
1212
Contributors:
1313
IBM Corporation - initial API and implementation
1414
-->
1515

1616
<project name="Build Ant remote support JAR" default="build" basedir="..">
17-
18-
<target name="build" description="Cleans, builds and refreshes" depends="clean, lib/remotelib.jar"/>
17+
18+
<target name="build" description="Builds and refreshes" depends="lib/remotelib.jar"/>
1919

2020
<target name="init" depends="properties">
2121
<property name="temp.folder" value="${basedir}/temp.folder"/>
2222
<property name="build.result.folder" value="${basedir}"/>
2323
</target>
24-
24+
2525
<target name="properties" if="eclipse.running">
2626
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
2727
</target>
28-
29-
<target name="lib/remotelib.jar" description= "Creates the remote.jar" depends="init">
28+
29+
<target name="checkSourceUpToDate">
30+
<uptodate property="jarUpToDate" targetfile="${build.result.folder}/lib/remote.jar">
31+
<srcfiles dir="${basedir}/remote" includes="**/*"/>
32+
</uptodate>
33+
</target>
34+
35+
<target name="lib/remotelib.jar" description="Creates the remote.jar" depends="init, checkSourceUpToDate" unless="jarUpToDate">
3036
<property name="destdir" value="${temp.folder}/lib/remote.jar.bin"/>
37+
<delete dir="${temp.folder}"/>
3138
<delete dir="${destdir}"/>
3239
<mkdir dir="${destdir}"/>
3340
<javac release="17" destdir="${destdir}" failonerror="true" verbose="false" debug="on" includeAntRuntime="yes"
@@ -46,7 +53,7 @@
4653
<delete file="${build.result.folder}/lib/remote.jar"/>
4754
<delete dir="${temp.folder}"/>
4855
</target>
49-
56+
5057
<!-- Empty target for "After a Clean" task (we don't want to rebuild the Jar here, e.g. on checkout). -->
5158
<target name="after_clean"/>
52-
</project>
59+
</project>

ant/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,29 @@
88
https://www.eclipse.org/legal/epl-2.0/
99
1010
SPDX-License-Identifier: EPL-2.0
11-
11+
1212
Contributors:
1313
IBM Corporation - initial API and implementation
1414
-->
1515

1616
<project name="build tests support jar" default="build" basedir="..">
1717

18-
<target name="build" description="Removes all build artifacts, recreates the support jar, and refreshes this plugin's resources" depends="clean, lib/antTestsSupport.jar"/>
18+
<target name="build" description="Builds the support jar if needed" depends="lib/antTestsSupport.jar"/>
1919

2020
<target name="init">
2121
<property name="temp.folder" value="${basedir}/temp.folder"/>
2222
<property name="build.result.folder" value="${basedir}"/>
2323
</target>
2424

25-
<target name="lib/antTestsSupport.jar" depends="init" description= "Builds the support JAR">
25+
<target name="checkSourceUpToDate" depends="init">
26+
<uptodate property="jarUpToDate" targetfile="${build.result.folder}/lib/antTestsSupport.jar">
27+
<srcfiles dir="${basedir}/test support/" includes="**/*"/>
28+
</uptodate>
29+
</target>
30+
31+
<target name="lib/antTestsSupport.jar" depends="checkSourceUpToDate" unless="jarUpToDate" description="Builds the support JAR">
2632
<property name="destdir" value="${temp.folder}/lib/antTestsSupport.jar.bin"/>
33+
<delete dir="${temp.folder}"/>
2734
<delete dir="${destdir}"/>
2835
<mkdir dir="${destdir}"/>
2936
<!-- copy necessary resources -->
@@ -39,4 +46,4 @@
3946
<delete file="${build.result.folder}/lib/antTestsSupport.jar"/>
4047
<delete dir="${temp.folder}"/>
4148
</target>
42-
</project>
49+
</project>

ant/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,29 @@
88
https://www.eclipse.org/legal/epl-2.0/
99
1010
SPDX-License-Identifier: EPL-2.0
11-
11+
1212
Contributors:
1313
IBM Corporation - initial API and implementation
1414
-->
1515

1616
<project name="build tests support jar" default="build" basedir="..">
1717

18-
<target name="build" description="Removes all build artifacts, recreates the support jar, and refreshes this plugin's resources" depends="clean, lib/antUITestsSupport.jar"/>
18+
<target name="build" description="Builds the support jar if needed" depends="lib/antUITestsSupport.jar"/>
1919

2020
<target name="init">
2121
<property name="temp.folder" value="${basedir}/temp.folder"/>
2222
<property name="build.result.folder" value="${basedir}"/>
2323
</target>
2424

25-
<target name="lib/antUITestsSupport.jar" depends="init" description= "Builds the support JAR">
25+
<target name="checkSourceUpToDate" depends="init" description="Checks if the JAR is up to date with the source">
26+
<uptodate property="jarUpToDate" targetfile="${build.result.folder}/lib/antUITestsSupport.jar">
27+
<srcfiles dir="${basedir}/test support/" includes="**/*"/>
28+
</uptodate>
29+
</target>
30+
31+
<target name="lib/antUITestsSupport.jar" depends="init, checkSourceUpToDate" unless="jarUpToDate" description="Builds the support JAR">
2632
<property name="destdir" value="${temp.folder}/lib/antUITestsSupport.jar.bin"/>
33+
<delete dir="${temp.folder}"/>
2734
<delete dir="${destdir}"/>
2835
<mkdir dir="${destdir}"/>
2936
<!-- copy necessary resources -->
@@ -39,4 +46,4 @@
3946
<delete file="${build.result.folder}/lib/antUITestsSupport.jar"/>
4047
<delete dir="${temp.folder}"/>
4148
</target>
42-
</project>
49+
</project>

ant/org.eclipse.ant.ui/buildfiles/buildExtraJAR.xml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,29 @@
88
https://www.eclipse.org/legal/epl-2.0/
99
1010
SPDX-License-Identifier: EPL-2.0
11-
11+
1212
Contributors:
1313
IBM Corporation - initial API and implementation
1414
-->
1515

1616
<project name="Build AntUI Ant support JAR" default="build" basedir="..">
17-
18-
<target name="build" description="Cleans, builds and refreshes" depends="clean, lib/antrunnerlib.jar"/>
17+
18+
<target name="build" description="Builds the JAR if needed" depends="lib/antrunnerlib.jar"/>
1919

2020
<target name="init">
2121
<property name="temp.folder" value="${basedir}/temp.folder"/>
2222
<property name="build.result.folder" value="${basedir}"/>
2323
</target>
2424

25-
<target name="lib/antrunnerlib.jar" description= "Creates the antrunner.jar" depends="init">
25+
<target name="checkSourceUpToDate" depends="init">
26+
<uptodate property="jarUpToDate" targetfile="${build.result.folder}/lib/antrunner.jar">
27+
<srcfiles dir="${basedir}/Ant Runner Support/" includes="**/*"/>
28+
</uptodate>
29+
</target>
30+
31+
<target name="lib/antrunnerlib.jar" description="Creates the antrunner.jar" depends="init, checkSourceUpToDate" unless="jarUpToDate">
2632
<property name="destdir" value="${temp.folder}/lib/antrunner.jar.bin"/>
33+
<delete dir="${temp.folder}"/>
2734
<delete dir="${destdir}"/>
2835
<mkdir dir="${destdir}"/>
2936
<!-- copy necessary resources -->
@@ -39,4 +46,4 @@
3946
<delete file="${build.result.folder}/lib/antrunner.jar"/>
4047
<delete dir="${temp.folder}"/>
4148
</target>
42-
</project>
49+
</project>

ant/org.eclipse.ant.ui/buildfiles/buildRemoteExtraJAR.xml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
<project name="Build AntUI Remote Ant support JAR" default="build" basedir="..">
1717

18-
<target name="build" description="Cleans, builds and refreshes" depends="clean, lib/remoteAntLib.jar"/>
18+
<target name="build" description="Cleans, builds and refreshes" depends="lib/remoteAntLib.jar"/>
1919

2020
<target name="init" depends="properties">
2121
<property name="temp.folder" value="${basedir}/temp.folder"/>
@@ -26,8 +26,15 @@
2626
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
2727
</target>
2828

29-
<target name="lib/remoteAntLib.jar" description= "Creates the remoteAnt.jar" depends="init">
29+
<target name="checkSourceUpToDate">
30+
<uptodate property="jarUpToDate" targetfile="${build.result.folder}/lib/remoteAnt.jar">
31+
<srcfiles dir="${basedir}/Remote Ant Support" includes="**/*"/>
32+
</uptodate>
33+
</target>
34+
35+
<target name="lib/remoteAntLib.jar" description= "Creates the remoteAnt.jar" depends="init, checkSourceUpToDate" unless="jarUpToDate">
3036
<property name="destdir" value="${temp.folder}/lib/remoteAnt.jar.bin"/>
37+
<delete dir="${temp.folder}"/>
3138
<delete dir="${destdir}"/>
3239
<mkdir dir="${destdir}"/>
3340
<javac release="17" destdir="${destdir}" failonerror="true" verbose="false" debug="on" includeAntRuntime="yes">
@@ -63,4 +70,4 @@
6370
<!-- Empty target for "After a Clean" task (we don't want to rebuild the Jar here, e.g. on checkout). -->
6471
<target name="after_clean"/>
6572

66-
</project>
73+
</project>

resources/bundles/org.eclipse.core.resources/scripts/buildExtraJAR.xml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@
88
https://www.eclipse.org/legal/epl-2.0/
99
1010
SPDX-License-Identifier: EPL-2.0
11-
11+
1212
Contributors:
1313
IBM Corporation - initial API and implementation
1414
-->
1515

1616
<project name="org.eclipse.core.resources" default="main" basedir="..">
1717

18-
<target name="main" depends="clean, ant_tasks/resources-ant.jar">
18+
<target name="main" depends="ant_tasks/resources-ant.jar">
1919
</target>
2020

2121
<target name="init" depends="properties">
@@ -30,8 +30,9 @@
3030
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
3131
</target>
3232

33-
<target name="ant_tasks/resources-ant.jar" depends="init" unless="ant_tasks/resources-ant.jar">
33+
<target name="ant_tasks/resources-ant.jar" depends="init, checkSourceUpToDate" unless="jarUpToDate">
3434
<property name="destdir" value="${temp.folder}/ant_tasks/resources-ant.jar.bin"/>
35+
<delete dir="${temp.folder}"/>
3536
<delete dir="${destdir}"/>
3637
<mkdir dir="${destdir}"/>
3738
<!-- copy necessary resources -->
@@ -47,4 +48,10 @@
4748
<delete file="${build.result.folder}/resources-ant.jar"/>
4849
<delete dir="${temp.folder}"/>
4950
</target>
51+
52+
<target name="checkSourceUpToDate" depends="init">
53+
<uptodate property="jarUpToDate" targetfile="${build.result.folder}/resources-ant.jar">
54+
<srcfiles dir="${basedir}/src_ant/" includes="**/*"/>
55+
</uptodate>
56+
</target>
5057
</project>

0 commit comments

Comments
 (0)