aboutsummaryrefslogtreecommitdiffstats
path: root/build.xml
blob: 376125ba3ea4f803f2588b8473c1a497ad9039f7 (plain)
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
<?xml version="1.0" encoding="UTF-8"?>
<!-- vim: set ts=4 sw=4 et: -->
<project name="ConnectBot" default="help">

<!-- Begin custom ConnectBot stuff -->

    <!-- Output directory for .po files. -->
    <property name="locale.dir" value="locale" />

    <!-- Default args to pass to a2po for .po generation. -->
    <property name="a2po.args" value="--groups strings --template fortune/fortune.pot --layout 'fortune/fortune-%(locale)s.po'"/>

    <!-- File names for launchpad translations. -->
    <property name="launchpad.export.file" value="launchpad-export.tar.gz"/>
    <property name="launchpad.import.file" value="launchpad-import.tar.gz"/>

    <target name="-pre-build" depends="update-version"/>

    <target name="help">
        <!-- displays starts at col 13
              |13                                                              80| -->
        <echo>Android Ant Build. Available targets:</echo>
        <echo>   help:      Displays this help.</echo>
        <echo>   clean:     Removes output files created by other targets.</echo>
        <echo>   compile:   Compiles project's .java files into .class files.</echo>
        <echo>   debug:     Builds the application and signs it with a debug key.</echo>
        <echo>   release:   Builds the application. The generated apk file must be</echo>
        <echo>              signed before it is published.</echo>
        <echo>   install:   Installs/reinstalls the debug package onto a running</echo>
        <echo>              emulator or device.</echo>
        <echo>              If the application was previously installed, the</echo>
        <echo>              signatures must match.</echo>
        <echo>   uninstall: Uninstalls the application from a running emulator or</echo>
        <echo>              device.</echo>
        <echo>   translations-import: Import translations from a Launchpad-style</echo>
        <echo>              Rosetta translation.</echo>
        <echo>   translations-export: Export translations to a Launchpad-style</echo>
        <echo>              Rosetta translation.</echo>

    </target>

    <target name="update-version" description="Updates the Version.java file with current Git revision">
        <echo>Updating resources with Git revision and build date...</echo>

        <tstamp>
            <format property="build.date" pattern="yyyy.MM.dd" />
        </tstamp>

        <!-- Get the version name from the android manifest, will en up in property ${manifest.android:versionName} -->
        <xpath input="AndroidManifest.xml" expression="/manifest/@android:versionName"
                    output="manifest.version.name" />

        <!-- tell git to ignore changes to the version xml -->
        <exec executable="git">
            <arg line="update-index --assume-unchanged res/values/version.xml"/>
        </exec>

        <!-- find out the description of the current Git commit -->
        <exec executable="git" outputproperty="git.revision">
            <arg line="describe --match 'v[0-9]*' --dirty"/>
        </exec>

        <!-- write out to res/values/version.xml -->
        <echo file="${resource.absolute.dir}/values/version.xml" encoding="utf8"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<resources>
	<string name="msg_version" translatable="false">${ant.project.name} ${manifest.version.name} (${git.revision} ${build.date})</string>
</resources>
]]></echo>

        <echo>Updated "msg_version" to: ${ant.project.name} ${manifest.version.name} (${git.revision} ${build.date})</echo>
    </target>

    <!-- Translations come from launchpad.net and are placed in the
         locale/ subdirectory. -->
    <target name="translations-import">
        <untar src="${launchpad.export.file}" dest="${locale.dir}" compression="gzip"/>
        <exec executable="a2po" failonerror="true">
            <arg value="import"/>
            <arg line="${a2po.args}"/>
        </exec>
    </target>

    <!-- Translations are to be uploaded to launchpad.net as a tar ball
         created from the locale/ subdirectory. -->
    <target name="translations-export">
        <exec executable="a2po" failonerror="true">
            <arg value="export"/>
            <arg line="${a2po.args}"/>
        </exec>
        <tar destfile="${launchpad.import.file}"
            compression="gzip"
            basedir="${locale.dir}"
            includes="**/*.pot **/*.po" />
    </target>

    <target name="-check-ndk">
        <fail
            message="ndk.dir is missing. Make sure to put it in local.properties"
            unless="ndk.dir"
        />
    </target>

    <target name="native-build" depends="-check-ndk">
        <exec executable="${ndk.dir}/ndk-build" failonerror="true" />
    </target>

    <target name="native-clean" depends="-check-ndk">
        <exec executable="${ndk.dir}/ndk-build" failonerror="true">
            <arg value="clean" />
        </exec>
    </target>

    <property name="lint" location="${android.tools.dir}/lint${bat}" />

    <target name="lint-xml">
        <exec executable="${lint}">
            <arg value="--xml" />
            <arg value="lint-results.xml" />
            <arg path="${basedir}" />
        </exec>
    </target>

    <target name="lint-html">
        <exec executable="${lint}">
            <arg value="--html" />
            <arg value="lint-results.html" />
            <arg path="${basedir}" />
        </exec>
    </target>

<!-- End custom ConnectBot stuff -->

</project>