-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathbuild.xml
127 lines (113 loc) · 4.07 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
<?xml version="1.0" encoding="UTF-8"?>
<project name="Build" basedir="." default="win_exe">
<property name="build.dir" value="build"/>
<property name="app.name" value="القرآن العظيم"/>
<property name="tools.dir" value="E:\Support"/>
<property name="makensis.exe" value="${tools.dir}\nsis\makensis.exe"/>
<property name="launch4j.jar" value="${tools.dir}\launch4j\launch4j.jar"/>
<property name="jdk.linux" value="openjdk-17_linux-x64_bin.tar.gz"/>
<property name="jdk.mac" value="openjdk-17_macos-x64_bin.tar.gz"/>
<property name="jdk.win" value="openjdk-17_windows-x64_bin.zip"/>
<path id="class.path">
<fileset dir="${build.dir}" includes="lib/*"/>
</path>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<target name="copy_resources_windows">
<copy todir="${build.dir}">
<fileset dir="." includes="setting/**,db/**,arabicIndex/**,src/**,
arabicLuceneIndex/**,pages-hafs/**,bin/**,images/**,images_X/**,
language/**,lib/**,arabicRootsIndex/**,arabicRootsTableIndex/**,
setup.nsi,quran.xml,startup.bat">
</fileset>
</copy>
</target>
<target name="compile_windows">
<antcall target="copy_resources_windows"/>
<antcall target="javac_src"/>
</target>
<target name="javac_src">
<exec dir="${build.dir}" executable="cmd" failonerror="true" />
<javac includeantruntime="false"
srcdir="${build.dir}/src"
destdir="${build.dir}"
encoding="UTF-8"
classpathref="class.path">
<exclude name="classes/CreatePDF_iText_Hezp.java"/>
<exclude name="classes/CreatePDF_iText_Pdf.java"/>
<exclude name="classes/CreatePDF_iText_Png.java"/>
<exclude name="classes/CreatePDF_iText_Png_Juz.java"/>
<exclude name="classes/CreatePDF_iText_Png_Sura.java"/>
<exclude name="classes/CreatePDF_PdfBox_Pdf.java"/>
<exclude name="classes/CreatePDF_PdfBox_Png.java"/>
<exclude name="classes/CreateIndices.java"/>
<exclude name="classes/CreateQuranDatabase.java"/>
<exclude name="classes/Html2Text.java"/>
<exclude name="classes/Test.java"/>
<exclude name="classes/CopyAiFiles.java"/>
<exclude name="classes/UnicodeConvertor.java"/>
<exclude name="classes/Tafseer.java"/>
</javac>
</target>
<path id="build-classpath">
<fileset dir="${build.dir}/lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="jar">
<pathconvert property="manifest.classpath" pathsep=" ">
<path refid="build-classpath"/>
<mapper>
<chainedmapper>
<flattenmapper/>
<globmapper from="*.jar" to="lib/*.jar"/>
</chainedmapper>
</mapper>
</pathconvert>
<jar destfile="${build.dir}/quran.jar" basedir="${build.dir}" includes="images/quran.png">
<manifest>
<attribute name="Main-Class" value="classes.Quran"/>
<attribute name="Class-Path" value=". ${manifest.classpath}"/>
<attribute name="SplashScreen-Image" value="images/quran.png"/>
</manifest>
</jar>
</target>
<target name="jdk_win">
<unzip src="${tools.dir}/${jdk.win}" dest="${build.dir}/jdk">
<cutdirsmapper dirs="1" />
</unzip>
<delete includeEmptyDirs="true">
<fileset dir="${build.dir}/jdk">
<include name="jmods/**"/>
<include name="demo/**"/>
<include name="legal/**"/>
<include name="lib/src.zip"/>
</fileset>
</delete>
</target>
<target name="launch4j">
<java dir="${build.dir}" jar="${launch4j.jar}" fork="true">
<jvmarg value="-Dfile.encoding=windows-1252"/>
<arg value="quran.xml"/>
</java>
</target>
<target name="nsis">
<exec dir="${build.dir}" executable="${makensis.exe}" failonerror="true" >
<arg value="setup.nsi"/>
</exec>
</target>
<target name="tar_gz_win">
<tar destfile="${build.dir}/QuranWin64.tar.gz" compression="gzip">
<tarfileset filemode="755" dir="${build.dir}">
<include name="**"/>
<exclude name="src/**"/>
<exclude name="images_X/**"/>
<exclude name="quran.xml"/>
<exclude name="setup.nsi"/>
</tarfileset>
</tar>
</target>
<target name="win" depends="clean,compile_windows,jar,jdk_win,launch4j,tar_gz_win"/>
<target name="win_exe" depends="clean,compile_windows,jar,jdk_win,launch4j,nsis"/>
</project>