-
Notifications
You must be signed in to change notification settings - Fork 0
/
build-linux-x86.xml
134 lines (114 loc) · 4.5 KB
/
build-linux-x86.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
<?xml version="1.0"?>
<project name="indic-keyboards-linux-x86" default="build">
<description>indic-keyboards - A Multilingual Indic Keyboard Interface for Indic Scripts</description>
<property name="debug" value="false" />
<property name="verbose" value="false" />
<property name="main.class" value="org.iisc.mile.indickeyboards.IndicKeyboards" />
<property name="swt" value="swt.jar" />
<fileset id="ImagesIcons" dir="./resources">
<patternset includes="*.ico,*.png,*.gif,*.jpg,*.jpeg" />
</fileset>
<fileset id="otherfiles" dir=".">
<patternset includes="*.txt,*.conf" />
</fileset>
<fileset id="swtorg" dir="./swt">
<patternset includes="**/org/**" />
</fileset>
<fileset id="swtso" dir="./swt">
<patternset>
<include name="libswt*.so" />
<include name="libcai*.so" />
<include name="version.txt" />
</patternset>
</fileset>
<fileset id="ourso" dir=".">
<patternset includes="libIndicKeyboards-x86.so.*" />
</fileset>
<target name="init" description="Initialization by creating the directory structure">
<mkdir dir="bin" />
</target>
<target name="header" depends="compile" description="Generates the platform specific header files for building libraries">
<javah destdir="./src/org/iisc/mile/indickeyboards/linux" classpath="./bin">
<class name="org.iisc.mile.indickeyboards.linux.LinuxLibraries" />
</javah>
</target>
<target name="build" depends="header" description="Creates the linux libraries (.so files)">
<property environment="env" />
<echo>Using JDK present at ${env.JAVA_HOME} ; Architecture : ${env.CPU}</echo>
<exec dir="./src/org/iisc/mile/indickeyboards/linux" executable="gcc">
<arg line="-fPIC -D_REENTRANT -g -c -W -Wall -Wno-unused -Wno-parentheses -I/${env.JAVA_HOME}/include -I/${env.JAVA_HOME}/include/linux -I/usr/include/X11 linuxLibraries.c -m32" />
</exec>
<exec dir="./src/org/iisc/mile/indickeyboards/linux" executable="gcc">
<arg line="-shared -Wl,-soname=libIndicKeyboards-x86.so.1 -o libIndicKeyboards-x86.so.1.0 linuxLibraries.o -lc -lX11 -m32" />
</exec>
<move todir=".">
<fileset dir="./src/org/iisc/mile/indickeyboards/linux">
<include name="lib*" />
</fileset>
</move>
<delete>
<fileset dir="./src/org/iisc/mile/indickeyboards/linux" includes="*.h" />
<fileset dir="./src/org/iisc/mile/indickeyboards/linux" includes="*.o" />
<fileset dir="./src/org/iisc/mile/indickeyboards/linux" includes="*.O" />
<fileset dir="./src/org/iisc/mile/indickeyboards/linux">
<include name="lib*" />
</fileset>
</delete>
</target>
<target name="compile" depends="init" description="Compiles the java source code.">
<echo>Compiling ${ant.project.name}</echo>
<javac srcdir="src" destdir="bin" classpath="${swt}" debug="${debug}" verbose="${verbose}" />
</target>
<target name="run" depends="build" description="Executes the project">
<echo>Using Java ${ant.java.version} present at ${java.home}</echo>
<java classpath="${swt}:./bin" classname="org.iisc.mile.indickeyboards.IndicKeyboards" fork="true" />
</target>
<target name="jar" depends="build" description="Packages into an executable JAR">
<mkdir dir="dist" />
<mkdir dir="swt" />
<unjar src="${swt}" dest="./swt" />
<manifest file="MANIFEST.MF">
<attribute name="Class-Path" value="." />
<attribute name="Main-Class" value="${main.class}" />
</manifest>
<jar destfile="./dist/${ant.project.name}.jar" basedir="bin" duplicate="preserve" manifest="./MANIFEST.MF">
<fileset refid="swtso" />
<fileset refid="swtorg" />
</jar>
<delete dir="META-INF" />
<delete file="./MANIFEST.MF" />
<delete dir="swt" />
<copy todir="./dist">
<fileset refid="ourso" />
</copy>
<mkdir dir="./dist/kblayouts" />
<copy todir="./dist/kblayouts">
<fileset dir="./kblayouts" />
</copy>
<mkdir dir="./dist/resources" />
<copy todir="./dist/resources">
<fileset dir="./resources" />
</copy>
<mkdir dir="./dist/docs" />
<copy todir="./dist/docs">
<fileset dir="./docs" />
</copy>
<copy todir="./dist">
<fileset refid="otherfiles" />
</copy>
<delete dir="./bin" />
</target>
<target name="javadoc" depends="init" description="Generates javadoc of the source">
<mkdir dir="./javadoc" />
<javadoc destdir="./javadoc" sourcepath="./src" packagenames="org.*" Private="true" />
<delete dir="./bin" />
</target>
<target name="clean" description="Clean up after compile/build.">
<delete dir="./bin" />
<delete dir="./javadoc" />
<delete dir="./dist" />
<delete>
<fileset dir="./" includes="*.so*" />
</delete>
</target>
</project>