forked from yhemanth/openmrs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.xml
138 lines (104 loc) · 5.82 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
<?xml version="1.0"?>
<!-- *********************************************************** -->
<!-- ** Ant build script for OpenMRS ** -->
<!-- ** ** -->
<!-- *********************************************************** -->
<project name="OpenMRS-trunk" default="dist">
<target name="dist" depends="package-web" description="create distributable war file" />
<target name="war" depends="dist" description="create distributable war file" />
<target name="package-all" depends="package-api,package-api-tests,package-web-src"
description="packages api, test, and web jars for use in modules"/>
<!-- the api package will contain test classes unless an "ant clean" is done right before -->
<target name="package-api" description="create openmrs api jar">
</target>
<target name="package-api-tests" description="create api-tests jar">
</target>
<target name="package-web-tests" description="package the java files in /test/web">
</target>
<target name="package-web" description="create webapp war file">
</target>
<target name="package-web-src" description="Create jar file containing web java src">
</target>
<target name="run-tests" depends="package-api-tests, package-web-tests" description="Run all junit tests">
</target>
<target name="jetty-run" depends="package-web" description="Start a Jetty webserver with openmrs installed">
</target>
<target name="create-installer" description="Create Openmrs windows installer (offline by default)" depends="package-web">
<!-- Installer properties -->
<property name="dist.installer.dir" value="${dist.dir}/installer"/>
<property name="java-setup" value="${installer-dependencies.dir}/jdk-6u20-windows-i586.exe"/>
<property name="mysql-setup" value="${installer-dependencies.dir}/mysql-essential-5.1.46-win32.msi"/>
<property name="tomcat-setup" value="${installer-dependencies.dir}/apache-tomcat-6.0.26.exe"/>
<!-- remove the last underscore if there is no suffix defined -->
<propertyregex property="openmrs.download.url"
input="${openmrs.download.url}"
override="true"
regexp="^(.*)_/openmrs.war$"
select="\1/openmrs.war" />
<condition property="makensis.command" value="C:\Program Files\NSIS\makensis" else="makensis">
<os family="windows"></os>
</condition>
<if>
<equals arg1="${installer.mode}" arg2="online"/>
<then>
<condition property="option.separator" value="/D" else="-D">
<os family="windows"></os>
</condition>
<property name="installer.args"
value="${option.separator}TOMCAT_DOWNLOAD_URL=${tomcat.download.url} ${option.separator}MYSQL_DOWNLOAD_URL=${mysql.download.url} ${option.separator}JAVA_6_DOWNLOAD_URL=${jdk.download.url} ${option.separator}OPENMRS_WAR_DOWNLOAD_URL=${openmrs.download.url}"/>
</then>
<else>
<property name="installer.args" value=""/>
<macrodef name="download">
<attribute name="file" default="NOT SET"/>
<attribute name="message" default="Downloading.."/>
<attribute name="url" default="Downloading.."/>
<sequential>
<mkdir dir="${installer-dependencies.dir}"/>
<available file="@{file}" property="present"/>
<if>
<equals arg1="${present}" arg2="true"/>
<else>
<echo message="@{message}"/>
<get src="@{url}"
dest="@{file}"/>
</else>
</if>
</sequential>
</macrodef>
<property name="installer.mode" value="offline"/>
<download file="${java-setup}" message="Downloading Java" url="${jdk.download.url}"/>
<download file="${mysql-setup}" message="Downloading MySQL" url="${mysql.download.url}"/>
<download file="${tomcat-setup}" message="Downloading Tomcat" url="${tomcat.download.url}"/>
<copy todir="${dist.installer.dir}" overwrite="true">
<fileset dir="${installer-dependencies.dir}">
<include name="*"/>
</fileset>
<fileset file="${dist.dir}/${webapp.name}.war"/>
</copy>
</else>
</if>
<property name="nsis.script" value="${dist.installer.dir}/openmrs_${installer.mode}.nsi"/>
<mkdir dir="${dist.installer.dir}"/>
<copy todir="${dist.installer.dir}" overwrite="true">
<fileset dir="${metadata.dir}/images">
<include name="*"/>
</fileset>
<fileset dir="${installer.script.dir}">
<include name="*"/>
</fileset>
</copy>
<exec executable="${makensis.command}" logError="true" failonerror="true">
<arg line="${installer.args} ${nsis.script}"/>
</exec>
<delete>
<fileset dir="${dist.installer.dir}" excludes="openmrs-installer.exe"/>
</delete>
<echo message="${installer.mode} installer has been generated successfully at ${dist.installer.dir} directory!"/>
</target>
<target name="create-online-installer" description="Create online version of windows installer">
<antcall target="create-installer">
<param name="installer.mode" value="online"/>
</antcall>
</target>
</project>