build.xml
changeset 0 ea84f930b04a
child 6 be992d61ca32
equal deleted inserted replaced
-1:000000000000 0:ea84f930b04a
       
     1 <?xml version="1.0" ?>
       
     2 <project name="Beem" default="debug">
       
     3 
       
     4     <!-- The build.properties file can be created by you and is never touched
       
     5          by activitycreator. If you want to manually set properties, this is
       
     6          the best place to set them. -->
       
     7     <property file="build.properties"/>
       
     8 
       
     9     <!-- The default.properties file is created and updated by activitycreator.
       
    10          It will set any properties not already defined by build.properties. -->
       
    11     <property file="default.properties"/>
       
    12 
       
    13     <!-- ************************************************************************************* -->
       
    14     <!-- These settings were written by activitycreator.
       
    15          Do not change them unless you really know what you are doing. -->
       
    16 
       
    17     <!-- Application Package Name -->
       
    18     <property name="application-package" value="com.beem.project.beem" />
       
    19 
       
    20     <!-- The intermediates directory, Eclipse uses "bin"
       
    21          for its own output, so we do the same. -->
       
    22     <property name="outdir" value="bin" />
       
    23     
       
    24     <!-- ************************************************************************************* -->
       
    25     <!-- No user servicable parts below. -->
       
    26 
       
    27     <property name="android-tools" value="${sdk-folder}/tools" />
       
    28     <property name="android-framework" value="${android-tools}/lib/framework.aidl" />
       
    29 
       
    30     <!-- Input directories -->
       
    31     <property name="resource-dir" value="res" />
       
    32     <property name="asset-dir" value="assets" />
       
    33     <property name="srcdir" value="src" />
       
    34     <condition property="srcdir-ospath"
       
    35             value="${basedir}\${srcdir}"
       
    36             else="${basedir}/${srcdir}" >
       
    37         <os family="windows"/>
       
    38     </condition>
       
    39 
       
    40     <!-- folder for the 3rd party java libraries -->
       
    41     <property name="external-libs" value="libs" />
       
    42     <condition property="external-libs-ospath"
       
    43             value="${basedir}\${external-libs}"
       
    44             else="${basedir}/${external-libs}" >
       
    45         <os family="windows"/>
       
    46     </condition>
       
    47 
       
    48     <!-- folder for the native libraries -->
       
    49     <property name="native-libs" value="libs" />
       
    50     <condition property="native-libs-ospath"
       
    51             value="${basedir}\${native-libs}"
       
    52             else="${basedir}/${native-libs}" >
       
    53         <os family="windows"/>
       
    54     </condition>
       
    55 
       
    56     <!-- Output directories -->
       
    57     <property name="outdir-classes" value="${outdir}/classes" />
       
    58     <condition property="outdir-classes-ospath"
       
    59             value="${basedir}\${outdir-classes}"
       
    60             else="${basedir}/${outdir-classes}" >
       
    61         <os family="windows"/>
       
    62     </condition>
       
    63 
       
    64     <!-- Create R.java in the source directory -->
       
    65     <property name="outdir-r" value="src" />
       
    66 
       
    67     <!-- Intermediate files -->
       
    68     <property name="dex-file" value="classes.dex" />
       
    69     <property name="intermediate-dex" value="${outdir}/${dex-file}" />
       
    70     <condition property="intermediate-dex-ospath"
       
    71             value="${basedir}\${intermediate-dex}"
       
    72             else="${basedir}/${intermediate-dex}" >
       
    73         <os family="windows"/>
       
    74     </condition>
       
    75 
       
    76     <!-- The final package file to generate -->
       
    77     <property name="resources-package" value="${outdir}/${ant.project.name}.ap_" />
       
    78     <condition property="resources-package-ospath"
       
    79             value="${basedir}\${resources-package}"
       
    80             else="${basedir}/${resources-package}" >
       
    81         <os family="windows"/>
       
    82     </condition>
       
    83 
       
    84     <property name="out-debug-package" value="${outdir}/${ant.project.name}-debug.apk" />
       
    85     <condition property="out-debug-package-ospath"
       
    86             value="${basedir}\${out-debug-package}"
       
    87             else="${basedir}/${out-debug-package}" >
       
    88         <os family="windows"/>
       
    89     </condition>
       
    90 
       
    91     <property name="out-unsigned-package" value="${outdir}/${ant.project.name}-unsigned.apk" />
       
    92     <condition property="out-unsigned-package-ospath"
       
    93             value="${basedir}\${out-unsigned-package}"
       
    94             else="${basedir}/${out-unsigned-package}" >
       
    95         <os family="windows"/>
       
    96     </condition>
       
    97 
       
    98     <!-- Tools -->
       
    99     <condition property="aapt" value="${android-tools}/aapt.exe" else="${android-tools}/aapt" >
       
   100         <os family="windows"/>
       
   101     </condition>
       
   102     <condition property="aidl" value="${android-tools}/aidl.exe" else="${android-tools}/aidl" >
       
   103         <os family="windows"/>
       
   104     </condition>
       
   105     <condition property="adb" value="${android-tools}/adb.exe" else="${android-tools}/adb" >
       
   106         <os family="windows"/>
       
   107     </condition>
       
   108     <condition property="dx" value="${android-tools}/dx.bat" else="${android-tools}/dx" >
       
   109         <os family="windows"/>
       
   110     </condition>
       
   111     <condition property="apk-builder" value="${android-tools}/apkbuilder.bat" else="${android-tools}/apkbuilder" >
       
   112         <os family="windows"/>
       
   113     </condition>
       
   114 
       
   115     <property name="android-jar" value="${sdk-folder}/android.jar" />
       
   116 
       
   117     <!-- Rules -->
       
   118 
       
   119     <!-- Create the output directories if they don't exist yet. -->
       
   120     <target name="dirs">
       
   121         <echo>Creating output directories if needed...</echo>
       
   122         <mkdir dir="${outdir}" />
       
   123         <mkdir dir="${outdir-classes}" />
       
   124     </target>
       
   125 
       
   126     <!-- Generate the R.java file for this project's resources. -->
       
   127     <target name="resource-src" depends="dirs">
       
   128         <echo>Generating R.java / Manifest.java from the resources...</echo>
       
   129         <exec executable="${aapt}" failonerror="true">
       
   130             <arg value="package" />
       
   131             <arg value="-m" />
       
   132             <arg value="-J" />
       
   133             <arg value="${outdir-r}" />
       
   134             <arg value="-M" />
       
   135             <arg value="AndroidManifest.xml" />
       
   136             <arg value="-S" />
       
   137             <arg value="${resource-dir}" />
       
   138             <arg value="-I" />
       
   139             <arg value="${android-jar}" />
       
   140         </exec>
       
   141     </target>
       
   142 
       
   143     <!-- Generate java classes from .aidl files. -->
       
   144     <target name="aidl" depends="dirs">
       
   145         <echo>Compiling aidl files into Java classes...</echo>
       
   146         <apply executable="${aidl}" failonerror="true">
       
   147             <arg value="-p${android-framework}" />
       
   148             <arg value="-I${srcdir}" />
       
   149             <fileset dir="${srcdir}">
       
   150                 <include name="**/*.aidl"/>
       
   151             </fileset>
       
   152         </apply>
       
   153     </target>
       
   154 
       
   155     <!-- Compile this project's .java files into .class files. -->
       
   156     <target name="compile" depends="dirs, resource-src, aidl">
       
   157         <javac encoding="ascii" target="1.5" debug="true" extdirs=""
       
   158                 srcdir="."
       
   159                 destdir="${outdir-classes}"
       
   160                 bootclasspath="${android-jar}">
       
   161             <classpath>
       
   162                 <fileset dir="${external-libs}" includes="*.jar"/>
       
   163             </classpath>
       
   164          </javac>
       
   165     </target>
       
   166 
       
   167     <!-- Convert this project's .class files into .dex files. -->
       
   168     <target name="dex" depends="compile">
       
   169         <echo>Converting compiled files and external libraries into ${outdir}/${dex-file}...</echo>
       
   170         <apply executable="${dx}" failonerror="true" parallel="true">
       
   171             <arg value="--dex" />
       
   172             <arg value="--output=${intermediate-dex-ospath}" />
       
   173             <arg path="${outdir-classes-ospath}" />
       
   174             <fileset dir="${external-libs}" includes="*.jar"/>
       
   175         </apply>
       
   176     </target>
       
   177 
       
   178     <!-- Put the project's resources into the output package file. -->
       
   179     <target name="package-res-and-assets">
       
   180         <echo>Packaging resources and assets...</echo>
       
   181         <exec executable="${aapt}" failonerror="true">
       
   182             <arg value="package" />
       
   183             <arg value="-f" />
       
   184             <arg value="-M" />
       
   185             <arg value="AndroidManifest.xml" />
       
   186             <arg value="-S" />
       
   187             <arg value="${resource-dir}" />
       
   188             <arg value="-A" />
       
   189             <arg value="${asset-dir}" />
       
   190             <arg value="-I" />
       
   191             <arg value="${android-jar}" />
       
   192             <arg value="-F" />
       
   193             <arg value="${resources-package}" />
       
   194         </exec>
       
   195     </target>
       
   196 
       
   197     <!-- Same as package-res-and-assets, but without "-A ${asset-dir}" -->
       
   198     <target name="package-res-no-assets">
       
   199         <echo>Packaging resources...</echo>
       
   200         <exec executable="${aapt}" failonerror="true">
       
   201             <arg value="package" />
       
   202             <arg value="-f" />
       
   203             <arg value="-M" />
       
   204             <arg value="AndroidManifest.xml" />
       
   205             <arg value="-S" />
       
   206             <arg value="${resource-dir}" />
       
   207             <!-- No assets directory -->
       
   208             <arg value="-I" />
       
   209             <arg value="${android-jar}" />
       
   210             <arg value="-F" />
       
   211             <arg value="${resources-package}" />
       
   212         </exec>
       
   213     </target>
       
   214 
       
   215     <!-- Invoke the proper target depending on whether or not
       
   216          an assets directory is present. -->
       
   217     <!-- TODO: find a nicer way to include the "-A ${asset-dir}" argument
       
   218          only when the assets dir exists. -->
       
   219     <target name="package-res">
       
   220         <available file="${asset-dir}" type="dir"
       
   221                 property="res-target" value="and-assets" />
       
   222         <property name="res-target" value="no-assets" />
       
   223         <antcall target="package-res-${res-target}" />
       
   224     </target>
       
   225 
       
   226     <!-- Package the application and sign it with a debug key.
       
   227          This is the default target when building. It is used for debug. -->
       
   228     <target name="debug" depends="dex, package-res">
       
   229         <echo>Packaging ${out-debug-package}, and signing it with a debug key...</echo>
       
   230         <exec executable="${apk-builder}" failonerror="true">
       
   231             <arg value="${out-debug-package-ospath}" />
       
   232             <arg value="-z" />
       
   233             <arg value="${resources-package-ospath}" />
       
   234             <arg value="-f" />
       
   235             <arg value="${intermediate-dex-ospath}" />
       
   236             <arg value="-rf" />
       
   237             <arg value="${srcdir-ospath}" />
       
   238             <arg value="-rj" />
       
   239             <arg value="${external-libs-ospath}" />
       
   240             <arg value="-nf" />
       
   241             <arg value="${native-libs-ospath}" />
       
   242         </exec>
       
   243     </target>
       
   244 
       
   245     <!-- Package the application without signing it.
       
   246          This allows for the application to be signed later with an official publishing key. -->
       
   247     <target name="release" depends="dex, package-res">
       
   248         <echo>Packaging ${out-unsigned-package} for release...</echo>
       
   249         <exec executable="${apk-builder}" failonerror="true">
       
   250             <arg value="${out-unsigned-package-ospath}" />
       
   251             <arg value="-u" />
       
   252             <arg value="-z" />
       
   253             <arg value="${resources-package-ospath}" />
       
   254             <arg value="-f" />
       
   255             <arg value="${intermediate-dex-ospath}" />
       
   256             <arg value="-rf" />
       
   257             <arg value="${srcdir-ospath}" />
       
   258             <arg value="-rj" />
       
   259             <arg value="${external-libs-ospath}" />
       
   260             <arg value="-nf" />
       
   261             <arg value="${native-libs-ospath}" />
       
   262         </exec>
       
   263         <echo>It will need to be signed with jarsigner before being published.</echo>
       
   264     </target>
       
   265 
       
   266     <!-- Install the package on the default emulator -->
       
   267     <target name="install" depends="debug">
       
   268         <echo>Installing ${out-debug-package} onto default emulator...</echo>
       
   269         <exec executable="${adb}" failonerror="true">
       
   270             <arg value="install" />
       
   271             <arg value="${out-debug-package}" />
       
   272         </exec>
       
   273     </target>
       
   274 
       
   275     <target name="reinstall" depends="debug">
       
   276         <echo>Installing ${out-debug-package} onto default emulator...</echo>
       
   277         <exec executable="${adb}" failonerror="true">
       
   278             <arg value="install" />
       
   279             <arg value="-r" />
       
   280             <arg value="${out-debug-package}" />
       
   281         </exec>
       
   282     </target>
       
   283 
       
   284     <!-- Uinstall the package from the default emulator -->
       
   285     <target name="uninstall">
       
   286         <echo>Uninstalling ${application-package} from the default emulator...</echo>
       
   287         <exec executable="${adb}" failonerror="true">
       
   288             <arg value="uninstall" />
       
   289             <arg value="${application-package}" />
       
   290         </exec>
       
   291     </target>
       
   292 
       
   293 </project>