<?xml version="1.0" encoding="UTF-8"?>
<project name="HelloJni" default="help">

    <!-- The local.properties file is created and updated by the 'android' tool.
         It contain the path to the SDK. It should *NOT* be checked in in Version
         Control Systems. -->
    <property file="local.properties"/>

    <!-- The build.properties file can be created by you and is never touched
         by the 'android' tool. This is the place to change some of the default property values
         used by the Ant rules.
         Here are some properties you may want to change/update:

         application-package
             the name of your application package as defined in the manifest. Used by the
             'uninstall' rule.
         source-folder
             the name of the source folder. Default is 'src'.
         out-folder
             the name of the output folder. Default is 'bin'.

         Properties related to the SDK location or the project target should be updated
          using the 'android' tool with the 'update' action.

         This file is an integral part of the build system for your application and
         should be checked in in Version Control Systems.

         -->
    <property file="build.properties"/>

    <!-- The default.properties file is created and updated by the 'android' tool, as well
         as ADT. 
         This file is an integral part of the build system for your application and
         should be checked in in Version Control Systems. -->
    <property file="default.properties"/>

    <!-- Custom Android task to deal with the project target, and import the proper rules.
         This requires ant 1.6.0 or above. -->
    <path id="android.antlibs">
        <pathelement path="${sdk-location}/tools/lib/anttasks.jar" />
        <pathelement path="${sdk-location}/tools/lib/sdklib.jar" />
        <pathelement path="${sdk-location}/tools/lib/androidprefs.jar" />
        <pathelement path="${sdk-location}/tools/lib/apkbuilder.jar" />
        <pathelement path="${sdk-location}/tools/lib/jarutils.jar" />
    </path>

    <taskdef name="setup"
        classname="com.android.ant.SetupTask"
        classpathref="android.antlibs"/>

    <!-- Execute the Android Setup task that will setup some properties specific to the target,
         and import the rules files.
         To customize the rules, copy/paste them below the task, and disable import by setting
         the import attribute to false:
            <setup import="false" />
         
         This will ensure that the properties are setup correctly but that your customized
         targets are used.
    -->
    <setup />
</project>
