<?xml version="1.0"?>
<!--
 * Copyright (C) 2010 The Android Open Source Project
 *
 * Licensed under the Apache License, version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
-->
<sdk:sdk-addon
    xmlns:sdk="http://schemas.android.com/sdk/android/addon/2">

    <!-- Define a couple of licenses. These will be referenced by uses-license later. -->

    <sdk:license type="text" id="license1">
        This is the license
        for this platform.
    </sdk:license>

    <sdk:license id="license2">
        Licenses are only of type 'text' right now, so this is implied.
    </sdk:license>

    <!-- Inner elements must be either platform, add-on, doc or tool.
         There can be 0 or more of each, in any order. -->

    <sdk:add-on>
        <sdk:name>My First add-on</sdk:name>
        <sdk:api-level>1</sdk:api-level>
        <sdk:vendor>John Doe</sdk:vendor>
        <sdk:revision>1</sdk:revision>
        <sdk:uses-license ref="license2" />
        <sdk:description>Some optional description</sdk:description>
        <sdk:desc-url>http://www.example.com/myfirstaddon</sdk:desc-url>
        <sdk:archives>
            <sdk:archive os="any">
                <sdk:size>65536</sdk:size>
                <sdk:checksum type="sha1">2822ae37115ebf13412bbef91339ee0d9454525e</sdk:checksum>
                <sdk:url>http://www.example.com/add-ons/first.zip</sdk:url>
            </sdk:archive>
        </sdk:archives>
        <!-- The libs node is mandatory, however it can be empty. -->
        <sdk:libs>
            <sdk:lib>
                <sdk:name>android.blah.somelib</sdk:name>
                <sdk:description>The description for this library.</sdk:description>
            </sdk:lib>
            <sdk:lib>
                <!-- sdk:description is optional, name is not -->
                <sdk:name>com.android.mymaps</sdk:name>
            </sdk:lib>
        </sdk:libs>
        <sdk:layoutlib>
            <sdk:api>5</sdk:api>
            <sdk:revision>0</sdk:revision>
        </sdk:layoutlib>
    </sdk:add-on>

    <sdk:add-on>
        <sdk:name>My Second add-on</sdk:name>
        <sdk:api-level>2</sdk:api-level>
        <sdk:vendor>John Deer</sdk:vendor>
        <sdk:revision>42</sdk:revision>
        <sdk:archives>
            <sdk:archive os="windows">
                <sdk:size>65536</sdk:size>
                <sdk:checksum type="sha1">2822ae37115ebf13412bbef91339ee0d9454525e</sdk:checksum>
                <sdk:url>distrib/second-42-win.zip</sdk:url>
            </sdk:archive>
            <sdk:archive os="linux">
                <sdk:size>65536</sdk:size>
                <sdk:checksum type="sha1">2822ae37115ebf13412bbef91339ee0d9454525e</sdk:checksum>
                <sdk:url>distrib/second-42-linux.tar.bz2</sdk:url>
            </sdk:archive>
        </sdk:archives>
        <sdk:libs>
            <sdk:lib>
                <sdk:name>android.blah.somelib</sdk:name>
                <sdk:description>The description for this library.</sdk:description>
            </sdk:lib>
            <sdk:lib>
                <sdk:name>com.android.mymaps</sdk:name>
            </sdk:lib>
        </sdk:libs>
        <sdk:uses-license ref="license2" />
        <!-- No layoutlib element in this package. It's optional. -->
    </sdk:add-on>

    <sdk:add-on>
        <sdk:uses-license ref="license2" />
        <sdk:name>This add-on has no libraries</sdk:name>
        <sdk:api-level>4</sdk:api-level>
        <sdk:vendor>Joe Bar</sdk:vendor>
        <sdk:revision>3</sdk:revision>
        <sdk:archives>
            <sdk:archive os="any" arch="any">
                <sdk:size>65536</sdk:size>
                <sdk:checksum type="sha1">2822ae37115ebf13412bbef91339ee0d9454525e</sdk:checksum>
                <sdk:url>distrib/imnotanarchiveimadoctorjim.zip</sdk:url>
            </sdk:archive>
        </sdk:archives>
        <!-- The libs node is mandatory, however it can be empty. -->
        <sdk:libs />
        <sdk:layoutlib>
            <sdk:api>3</sdk:api>
            <sdk:revision>42</sdk:revision>
        </sdk:layoutlib>
    </sdk:add-on>

    <sdk:extra>
        <sdk:vendor>g</sdk:vendor>
        <sdk:path>usb_driver</sdk:path>
        <sdk:uses-license ref="license2" />
        <sdk:revision>43</sdk:revision>
        <sdk:archives>
            <sdk:archive os="any" arch="any">
                <sdk:size>65536</sdk:size>
                <sdk:checksum type="sha1">2822ae37115ebf13412bbef91339ee0d9454525e</sdk:checksum>
                <sdk:url>distrib/extraduff.zip</sdk:url>
            </sdk:archive>
        </sdk:archives>
        <sdk:description>An Extra package for the USB driver, it will install in $SDK/usb_driver</sdk:description>
        <sdk:desc-url>http://www.example.com/extra.html</sdk:desc-url>
        <sdk:min-tools-rev>3</sdk:min-tools-rev>
        <sdk:obsolete/>
    </sdk:extra>

    <sdk:extra>
        <sdk:vendor>android_vendor</sdk:vendor>
        <sdk:path>extra_api_dep</sdk:path>
        <sdk:uses-license ref="license2" />
        <sdk:revision>2</sdk:revision>
        <sdk:archives>
            <sdk:archive os="any" arch="any">
                <sdk:size>65536</sdk:size>
                <sdk:checksum type="sha1">2822ae37115ebf13412bbef91339ee0d9454525e</sdk:checksum>
                <sdk:url>distrib/extra_mega_duff.zip</sdk:url>
            </sdk:archive>
        </sdk:archives>
        <sdk:description>Some extra package that has a min-api-level of 42</sdk:description>
        <sdk:desc-url>http://www.example.com/extra.html</sdk:desc-url>
        <sdk:min-tools-rev>3</sdk:min-tools-rev>
        <sdk:min-api-level>42</sdk:min-api-level>
        <sdk:obsolete></sdk:obsolete>
        <sdk:project-files>
            <sdk:path>v8/veggies_8.jar</sdk:path>
            <sdk:path>root.jar</sdk:path>
            <sdk:path>dir1/dir 2 with space/mylib.jar</sdk:path>
        </sdk:project-files>
    </sdk:extra>

    <sdk:extra>
        <sdk:vendor>____</sdk:vendor>
        <sdk:path>____</sdk:path>
        <sdk:uses-license ref="license2" />
        <sdk:revision>2</sdk:revision>
        <sdk:archives>
            <sdk:archive os="any" arch="any">
                <sdk:size>65536</sdk:size>
                <sdk:checksum type="sha1">2822ae37115ebf13412bbef91339ee0d9454525e</sdk:checksum>
                <sdk:url>distrib/extra_mega_duff.zip</sdk:url>
            </sdk:archive>
        </sdk:archives>
        <sdk:description>Some extra package that has a min-api-level of 42</sdk:description>
        <sdk:desc-url>http://www.example.com/extra.html</sdk:desc-url>
        <sdk:min-tools-rev>3</sdk:min-tools-rev>
        <sdk:min-api-level>42</sdk:min-api-level>
        <sdk:obsolete></sdk:obsolete>
        <!-- No project-files element in this package. -->
    </sdk:extra>

</sdk:sdk-addon>
