Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 11fe0cce0bcd825039c9a6b67a2ec89f2c1834ae (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?xml version="1.0" encoding="UTF-8"?>

<!--
    Copyright (c) 2009, 2014 IBM Corporation and others.
    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:
        IBM Corporation - initial API and implementation
 -->

<!--
	Build file used only by internal SWT build that generates the libraries & tags.

	lib.dir is set to point to xmltask.jar on the internal hudson used to build SWT libraries.
	This can be overriden by setting the property on commandline.
 -->

<project name="swtinternalbuild" basedir=".">
	
	<property name="repo.src" value="../../../eclipse.platform.swt"/>
	<property name="repo.bin" value="../../../eclipse.platform.swt.binaries"/>
	<property name="file_src_pom" value="bundles/org.eclipse.swt/pom.xml"/>
	<property name="file_bin_parent_pom" value="bundles/binaries-parent/pom.xml"/>
	<property name="lib.dir" value="/var/lib/hudson/antlib"/>
	<property name="tmphome" value="../../../tmp"/>

	<taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask">
		<classpath>
			<pathelement location="${lib.dir}/xmltask.jar"/>
		</classpath>
	</taskdef>
	
	<!-- generates the time-stamp qualifiers and updates the pom files in source and binaries repo-->
	<target name="generate_qualifier" depends="check_source_changed" if="source_changed">
		<tstamp><format property="build.qualifier" pattern="yyyyMMdd-HHmm"/></tstamp>
		<echo>${build.qualifier}</echo>
	</target>
	
	<target name="write_qualifier" depends="generate_qualifier" description="writes the generated qualifier in pom.xml in src and binaries repo">
		<xmltask source="${repo.src}/${file_src_pom}" dest="${repo.src}/${file_src_pom}" failWithoutMatch="true">
			<replace path="/:project/:properties/:forceContextQualifier/text()" withText="v${build.qualifier}"/>
		</xmltask>
		<xmltask source="${repo.bin}/${file_bin_parent_pom}" dest="${repo.bin}/${file_bin_parent_pom}" failWithoutMatch="true">
			<replace path="/:project/:properties/:forceContextQualifier/text()" withText="v${build.qualifier}"/>
		</xmltask>
	</target>

	<target name="check_source_sha1_file" unless="source_changed">
		<property name="sha1_file" value="${tmphome}/build.sha1"/>
		<condition property="source_changed">
		<not>
			<available file="${sha1_file}" type="file"/>
		</not>
		</condition>
		<echo>"Has source changes: ${source_changed}"</echo>
	</target>

	<target name="check_source_changed" depends="check_source_sha1_file" unless="source_changed">
		<loadproperties srcfile="${sha1_file}"/>

		<!-- Check for changes -->
		<exec dir="${repo.src}" executable="git" failonerror="true" outputproperty="diffs">
			<arg line="diff ${SHA1}"/>
		</exec>
		<condition property="source_changed">
		<or>
			<length string="${SHA1}" trim="true" when="equal" length="0"/>
			<length string="${diffs}" trim="true" when="greater" length="0"/>
		</or>
		</condition>
		<echo>Has source changes: ${source_changed}, compared against:</echo>
		<exec dir="${repo.src}" executable="git" failonerror="true">
			<arg line="log -1 ${SHA1}"/>
		</exec>
	</target>
</project>

Back to the top