1 <?xml version="1.0" encoding="UTF-8"?>
2 <project name="aCal" default="help">
4 <!-- The local.properties file is created and updated by the 'android' tool.
5 It contains the path to the SDK. It should *NOT* be checked into
6 Version Control Systems. -->
7 <property file="local.properties" />
9 <!-- The ant.properties file can be created by you. It is only edited by the
10 'android' tool to add properties to it.
11 This is the place to change some Ant specific build properties.
12 Here are some properties you may want to change/update:
15 The name of the source directory. Default is 'src'.
17 The name of the output directory. Default is 'bin'.
19 For other overridable properties, look at the beginning of the rules
20 files in the SDK, at tools/ant/build.xml
22 Properties related to the SDK location or the project target should
23 be updated using the 'android' tool with the 'update' action.
25 This file is an integral part of the build system for your
26 application and should be checked into Version Control Systems.
29 <property file="ant.properties" />
31 <!-- The project.properties file is created and updated by the 'android'
34 This contains project specific properties such as project target, and library
35 dependencies. Lower level build properties are stored in ant.properties
36 (or in .classpath for Eclipse projects).
38 This file is an integral part of the build system for your
39 application and should be checked into Version Control Systems. -->
40 <loadproperties srcFile="project.properties" />
42 <!-- quick check on sdk.dir -->
44 message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
49 <!-- extension targets. Uncomment the ones where you want to do custom work
50 in between standard targets -->
52 <target name="-pre-build">
54 <target name="-pre-compile">
57 /* This is typically used for code obfuscation.
58 Compiled code location: ${out.classes.absolute.dir}
59 If this is not done in place, override ${out.dex.input.absolute.dir} */
61 <target name="-post-compile">
62 <antcall target="optimize"/>
66 <!-- We keep our keystore & credentials in here, but it isn't in version control -->
67 <property file="secure.properties" />
69 <!-- Copy Constants.java to our source tree, replacing custom tokens with values in
70 build.properties. The configuration depends on "clean" because otherwise the
71 build system will not detect changes in the configuration. -->
72 <target name="config">
74 <property name="config-target-path" value="${source.dir}/com/morphoss/acal"/>
76 <!-- Copy the configuration file, replacing tokens in the file. -->
77 <copy file="config/Constants.java" todir="${config-target-path}" overwrite="true" encoding="utf-8">
79 <filter token="This is the original file which it is safe to modify."
80 value="This file is autogenerated. Do not modify this file! Modify the original instead."/>
81 <filter token="CONFIG.DEBUG_MODE" value="${config.debug_mode}"/>
85 <!-- Now set it to read-only, as we don't want people accidentally
86 editing the wrong one. NOTE: This step is unnecessary, but I do
87 it so the developers remember that this is not the original file. -->
88 <chmod file="${config-target-path}/Constants.java" perm="-w"/>
89 <attrib file="${config-target-path}/Constants.java" readonly="true"/>
92 <!-- ================================================= -->
93 <!-- Optimisation with ProGuard -->
94 <!-- ================================================= -->
96 <property name="proguard-dir" value="proguard"/>
97 <property name="unoptimized" value="${proguard-dir}/unoptimized.jar"/>
98 <property name="optimized" value="${proguard-dir}/optimized.jar"/>
99 <property name="out.dir" value="bin" />
100 <property name="out.classes.dir" value="${out.dir}/classes" />
102 <target name="optimize" unless="nooptimize">
103 <jar basedir="${out.classes.dir}" destfile="${unoptimized}"/>
105 <java jar="${proguard-dir}/proguard.jar" fork="true" failonerror="true">
106 <jvmarg value="-Dmaximum.inlined.code.length=16"/>
107 <arg value="@proguard.cfg"/>
108 <arg value="-injars ${unoptimized}"/>
109 <arg value="-outjars ${optimized}"/>
110 <arg value="-libraryjars ${android.jar}"/>
113 <!-- Delete source pre-optimized jar -->
114 <!--delete file="${unoptimized}"/-->
116 <!-- Unzip target optimization jar to original output, and delete optimized.jar -->
117 <delete dir="${out.classes.dir}"/>
118 <mkdir dir="${out.classes.dir}"/>
119 <unzip src="${proguard-dir}/optimized.jar" dest="${out.classes.dir}"/>
121 <!-- Delete optimized jar (now unzipped into bin directory) -->
122 <delete file="optimized.jar"/>
126 <!-- Import the actual build file.
128 To customize existing targets, there are two options:
129 - Customize only one target:
130 - copy/paste the target into this file, *before* the
132 - customize it to your needs.
133 - Customize the whole content of build.xml
134 - copy/paste the content of the rules files (minus the top node)
135 into this file, replacing the <import> task.
136 - customize to your needs.
138 ***********************
139 ****** IMPORTANT ******
140 ***********************
141 In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
142 in order to avoid having your file be overridden by tools such as "android update project"
144 <!-- version-tag: 1 -->
145 <import file="${sdk.dir}/tools/ant/build.xml" />