forked from GSEA-MSigDB/gsea-desktop
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.xml
140 lines (120 loc) · 6.13 KB
/
build.xml
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2003-2016 Broad Institute, Inc., Massachusetts Institute of Technology, and Regents of the University of California. All rights reserved.
-->
<project name="GSEA" default="build-gsea-reactome" basedir=".">
<taskdef resource="proguard/ant/task.properties" classpath="lib.build/proguard.jar" />
<!-- GLOBAL VARS -->
<property name="dist.dir" value="${basedir}/dist" />
<property name="proguard_opt_hist.dir" value="${basedir}/proguard_opt_log" />
<property file="src/edu/mit/broad/genome/resources/build.properties" />
<property name="ALL_DEPS_JAR" value="gsea_all_deps-${build.version}.jar" />
<property name="CLEANED_JAR" value="gsea-${build.version}.jar" />
<property name="REACTOME_JAR" value="gsea-reactome-${build.major}.${build.minor}.jar" />
<target name="-init">
<!-- Create the time stamp -->
<tstamp>
<format property="TODAY" pattern="MMMdd_yyyy_HHmmss" />
<format property="time.stamp" pattern="yyyy-MM-dd_HHmmss"/>
</tstamp>
</target>
<target name="clean">
<delete dir="${dist.dir}" failonerror="false" />
<!-- Leave behind the proguard_opt_hist dir as the reports may be useful for comparison. -->
</target>
<target name="compile-gsea">
<mkdir dir="${dist.dir}/classes" />
<javac target="1.8" source="1.8" debug="true" defaultexcludes="true" deprecation="false" destdir="${dist.dir}/classes" optimize="false" srcdir="src" memoryMaximumSize="1024M" fork="true" includes="**" failonerror="true" includeantruntime="false">
<classpath>
<fileset dir="lib" includes="*.jar" />
</classpath>
</javac>
</target>
<target name="copy-resources" depends="compile-gsea" description="Copies resources into build tree">
<!-- copies resource files from .java file tree to .class file tree -->
<mkdir dir="${dist.dir}/classes/edu/mit/broad/geneome/resources" />
<copy todir="${dist.dir}/classes/edu/mit/broad/genome/resources">
<fileset dir="src/edu/mit/broad/genome/resources" />
</copy>
</target>
<!-- makes a single jar file with external and internal stuff (not optimized yet) -->
<target name="one-jar-gsea" depends="-init, clean, compile-gsea, copy-resources" description="Builds single (unoptimized) JAR for GSEA">
<jar basedir="${dist.dir}/classes" defaultexcludes="true" jarfile="${dist.dir}/just_internal.jar" />
<jar destfile="${dist.dir}/tmp.jar">
<zipgroupfileset dir="lib">
<include name="*.jar" />
<exclude name="META-INF/**" />
</zipgroupfileset>
<zipgroupfileset dir="${dist.dir}" includes="just_internal.jar" />
</jar>
<jar destfile="${dist.dir}/${ALL_DEPS_JAR}">
<zipfileset src="${dist.dir}/tmp.jar" excludes="META-INF/**, README.txt, COPYING.txt">
</zipfileset>
<fileset file="LICENSE.txt" />
<fileset file="LICENSE-3RD-PARTY.txt" />
<fileset file="README.md" />
<manifest>
<attribute name="Main-Class" value="xapps.gsea.GSEA" />
<attribute name="Built-By" value="${user.name}" />
<attribute name="GSEA-Build-Date" value="${TODAY}" />
</manifest>
</jar>
</target>
<!-- makes the unoptimized Reactome GSEA jar file -->
<target name="reactome-jar-gsea" depends="-init, clean, compile-gsea, copy-resources" description="Builds single (unoptimized) JAR for GSEA use in Reactome">
<jar basedir="${dist.dir}/classes" defaultexcludes="true" jarfile="${dist.dir}/just_internal.jar" />
<jar destfile="${dist.dir}/tmp.jar">
<zipgroupfileset dir="lib">
<include name="*.jar" />
<exclude name="log4j*.jar" />
<exclude name="commons-logging*.jar" />
<exclude name="http*.jar" />
</zipgroupfileset>
<zipgroupfileset dir="${dist.dir}" includes="just_internal.jar" />
</jar>
<jar destfile="${dist.dir}/unoptimized.jar">
<zipfileset src="${dist.dir}/tmp.jar" excludes="META-INF/**, README.txt, COPYING.txt">
</zipfileset>
<fileset file="LICENSE.txt" />
<fileset file="LICENSE-3RD-PARTY.txt" />
<manifest>
<attribute name="Built-By" value="${user.name}" />
<attribute name="GSEA-Build-Date" value="${TODAY}" />
</manifest>
</jar>
<!-- clean up just_internal.jar and tmp.jar file -->
<delete file="${dist.dir}/just_internal.jar" failonerror="false" />
<delete file="${dist.dir}/tmp.jar" failonerror="false" />
</target>
<target name="build-gsea" depends="one-jar-gsea" description="Optimize GSEA JAR by removing unused classes and resources">
<mkdir dir="${proguard_opt_hist.dir}" />
<proguard printusage="${proguard_opt_hist.dir}/proguard_opt_log_${time.stamp}.txt">
<injar path="${dist.dir}/${ALL_DEPS_JAR}" />
<outjar path="${dist.dir}/${CLEANED_JAR}" />
<libraryjar path="${java.home}/lib/rt.jar" />
<libraryjar path="${java.home}/lib/charsets.jar" />
<libraryjar path="${java.home}/lib/jce.jar" />
<libraryjar path="${java.home}/lib/jfr.jar" />
<libraryjar path="${java.home}/lib/jsse.jar" />
<libraryjar path="${java.home}/lib/resources.jar" />
<libraryjar path="${java.home}/lib/ext" jarfilter="*.jar" />
<configuration file="lib.build/proguard_opt.cfg" />
</proguard>
</target>
<target name="build-gsea-reactome" depends="reactome-jar-gsea" description="Optimize GSEA Reactome jar by removing unused classes and resources">
<mkdir dir="${proguard_opt_hist.dir}" />
<proguard printusage="${proguard_opt_hist.dir}/proguard_opt_log_${time.stamp}.txt">
<injar path="${dist.dir}/unoptimized.jar" />
<outjar path="${dist.dir}/${REACTOME_JAR}" />
<libraryjar path="${java.home}/lib/rt.jar" />
<libraryjar path="${java.home}/lib/charsets.jar" />
<libraryjar path="${java.home}/lib/jce.jar" />
<libraryjar path="${java.home}/lib/jfr.jar" />
<libraryjar path="${java.home}/lib/jsse.jar" />
<libraryjar path="${java.home}/lib/resources.jar" />
<libraryjar path="${java.home}/lib/ext" jarfilter="*.jar" />
<configuration file="lib.build/proguard_opt.cfg" />
</proguard>
<delete file="${dist.dir}/unoptimized.jar" failonerror="false" />
</target>
</project>