OSDN Git Service

original
[gb-231r1-is01/GB_2.3_IS01.git] / sdk / files / ant / lib_rules.xml
diff --git a/sdk/files/ant/lib_rules.xml b/sdk/files/ant/lib_rules.xml
new file mode 100644 (file)
index 0000000..42a1e48
--- /dev/null
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="android_rules" default="debug">
+
+    <!--
+        This rules file is meant to be imported by the custom Ant task:
+            com.android.ant.SetupTask
+
+        The following properties are put in place by the importing task:
+            android.jar, android.aidl, aapt, aidl, and dx
+
+        Additionnaly, the task sets up the following classpath reference:
+            android.target.classpath
+        This is used by the compiler task as the boot classpath.
+    -->
+
+    <!-- Custom tasks -->
+    <taskdef name="aapt"
+        classname="com.android.ant.AaptExecLoopTask"
+        classpathref="android.antlibs" />
+
+    <taskdef name="aidl"
+        classname="com.android.ant.AidlExecTask"
+        classpathref="android.antlibs" />
+
+    <taskdef name="xpath"
+        classname="com.android.ant.XPathTask"
+        classpathref="android.antlibs" />
+
+    <taskdef name="if"
+        classname="com.android.ant.IfElseTask"
+        classpathref="android.antlibs" />
+
+    <!-- Properties -->
+
+    <property name="android.tools.dir" location="${sdk.dir}/tools" />
+    <!-- Name of the application package extracted from manifest file -->
+    <xpath input="AndroidManifest.xml" expression="/manifest/@package"
+                output="manifest.package" />
+    <xpath input="AndroidManifest.xml" expression="/manifest/application/@android:hasCode"
+                output="manifest.hasCode" default="true"/>
+
+    <!-- Input directories -->
+    <property name="source.dir" value="src" />
+    <property name="source.absolute.dir" location="${source.dir}" />
+    <property name="gen.dir" value="gen" />
+    <property name="gen.absolute.dir" location="${gen.dir}" />
+    <property name="resource.dir" value="res" />
+    <property name="resource.absolute.dir" location="${resource.dir}" />
+    <property name="asset.dir" value="assets" />
+    <property name="asset.absolute.dir" location="${asset.dir}" />
+
+    <!-- Directory for the third party java libraries -->
+    <property name="external.libs.dir" value="libs" />
+    <property name="external.libs.absolute.dir" location="${external.libs.dir}" />
+    <!-- Directory for the native libraries -->
+    <property name="native.libs.dir" value="libs" />
+    <property name="native.libs.absolute.dir" location="${native.libs.dir}" />
+
+    <!-- Output directories -->
+    <property name="out.dir" value="bin" />
+    <property name="out.absolute.dir" location="${out.dir}" />
+    <property name="out.classes.dir" value="${out.absolute.dir}/classes" />
+    <property name="out.classes.absolute.dir" location="${out.classes.dir}" />
+
+    <!-- compilation options -->
+    <property name="java.encoding" value="UTF-8" />
+    <property name="java.target" value="1.5" />
+    <property name="java.source" value="1.5" />
+
+    <!-- Verbosity -->
+    <property name="verbose" value="false" />
+    <!-- This is needed by emma as it uses multilevel verbosity instead of simple 'true' or 'false'
+         The property 'verbosity' is not user configurable and depends exclusively on 'verbose'
+         value.-->
+    <condition property="verbosity" value="verbose" else="quiet">
+        <istrue value="${verbose}" />
+    </condition>
+
+    <!-- Tools -->
+    <condition property="exe" value=".exe" else=""><os family="windows" /></condition>
+
+    <!-- Emma configuration -->
+    <property name="emma.dir" value="${sdk.dir}/tools/lib" />
+        <path id="emma.lib">
+            <pathelement location="${emma.dir}/emma.jar" />
+            <pathelement location="${emma.dir}/emma_ant.jar" />
+        </path>
+    <taskdef resource="emma_ant.properties" classpathref="emma.lib" />
+    <!-- End of emma configuration -->
+
+    <!-- Rules -->
+
+    <!-- Creates the output directories if they don't exist yet. -->
+    <target name="-dirs">
+        <echo>Creating output directories if needed...</echo>
+        <mkdir dir="${resource.absolute.dir}" />
+        <mkdir dir="${external.libs.absolute.dir}" />
+        <mkdir dir="${gen.absolute.dir}" />
+        <mkdir dir="${out.absolute.dir}" />
+        <mkdir dir="${out.classes.absolute.dir}" />
+    </target>
+
+    <!-- empty default pre-build target. Create a similar target in
+         your build.xml and it'll be called instead of this one. -->
+    <target name="-pre-build"/>
+
+    <!-- Generates the R.java file for this project's resources. -->
+    <target name="-resource-src" depends="-dirs, -pre-build">
+        <echo>Generating R.java / Manifest.java from the resources...</echo>
+        <aapt executable="${aapt}"
+                command="package"
+                verbose="${verbose}"
+                manifest="AndroidManifest.xml"
+                androidjar="${android.jar}"
+                rfolder="${gen.absolute.dir}">
+            <res path="${resource.absolute.dir}" />
+        </aapt>
+    </target>
+
+    <!-- Generates java classes from .aidl files. -->
+    <target name="-aidl" depends="-dirs">
+        <if condition="${manifest.hasCode}">
+            <then>
+                <echo>Compiling aidl files into Java classes...</echo>
+                <aidl executable="${aidl}" framework="${android.aidl}"
+                        genFolder="${gen.absolute.dir}">
+                    <source path="${source.absolute.dir}"/>
+                    <source refid="android.libraries.src"/>
+                </aidl>
+            </then>
+            <else>
+                <echo>hasCode = false. Skipping...</echo>
+            </else>
+        </if>
+    </target>
+
+    <!-- empty default pre-compile target. Create a similar target in
+         your build.xml and it'll be called instead of this one. -->
+    <target name="-pre-compile"/>
+
+    <!-- Compiles this project's .java files into .class files. -->
+    <target name="compile" depends="-resource-src, -aidl, -pre-compile"
+                description="Compiles project's .java files into .class files">
+        <!-- If android rules are used for a test project, its classpath should include
+             tested project's location -->
+        <condition property="extensible.classpath"
+                           value="${tested.project.absolute.dir}/bin/classes" else=".">
+            <isset property="tested.project.absolute.dir" />
+        </condition>
+        <condition property="extensible.libs.classpath"
+                value="${tested.project.absolute.dir}/libs"
+                else="./libs">
+            <isset property="tested.project.absolute.dir" />
+        </condition>
+        <javac encoding="${java.encoding}"
+                source="${java.source}" target="${java.target}"
+                debug="true" extdirs=""
+                destdir="${out.classes.absolute.dir}"
+                bootclasspathref="android.target.classpath"
+                verbose="${verbose}"
+                classpath="${extensible.classpath}"
+                classpathref="android.libraries.jars">
+            <src path="${source.absolute.dir}" />
+            <src path="${gen.absolute.dir}" />
+            <src refid="android.libraries.src" />
+            <classpath>
+                <fileset dir="${external.libs.absolute.dir}" includes="*.jar" />
+                <fileset dir="${extensible.libs.classpath}" includes="*.jar" />
+            </classpath>
+        </javac>
+    </target>
+
+    <target name="clean" description="Removes output files created by other targets.">
+        <delete dir="${out.absolute.dir}" verbose="${verbose}" />
+        <delete dir="${gen.absolute.dir}" verbose="${verbose}" />
+    </target>
+
+    <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>
+    </target>
+</project>