#
# Copyright (C) 2007 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.
#

#
# These are the files that comprise that SDK
#

##############################################################################
# SDK Root folder
##############################################################################

# the readme
development/docs/SDK_RELEASE_NOTES RELEASE_NOTES.html

# doc redirect
frameworks/base/docs/docs-redirect.html documentation.html

##############################################################################
# Tools Component
##############################################################################

# version files for the SDK updater, from sdk.git
sdk/files/tools_source.properties tools/source.properties

# copy plugin.prop from sdk.git
sdk/files/plugin.prop tools/lib/plugin.prop

# native host tools from out/host/$(HOST_OS)-$(HOST_ARCH)/
bin/adb          tools/adb
bin/sqlite3      tools/sqlite3
bin/dmtracedump  tools/dmtracedump
bin/etc1tool     tools/etc1tool
bin/hprof-conv   tools/hprof-conv
bin/mksdcard     tools/mksdcard
bin/zipalign     tools/zipalign

# emulator
bin/emulator     tools/emulator

# Java-Based SDK Tools
bin/ddms tools/ddms
bin/hierarchyviewer tools/hierarchyviewer
bin/draw9patch tools/draw9patch
bin/layoutopt tools/layoutopt
bin/traceview tools/traceview
bin/android tools/android


# sdk.git Ant templates for project build files
sdk/templates/build.template        tools/lib/build.template
sdk/templates/build.export.template tools/lib/build.export.template

# Ant Build Rules
sdk/files/ant                       tools/ant
sdk/files/sdk_files_NOTICE.txt      tools/ant/NOTICE.txt

# layout device definition
sdk/files/devices.xml               tools/lib/devices.xml

# AVD Hardware property list
external/qemu/android/avd/hardware-properties.ini tools/lib/hardware-properties.ini

# emacs support from sdk.git
sdk/files/android.el tools/lib/android.el

# Java Libraries for the tools
framework/androidprefs.jar     tools/lib/androidprefs.jar
sdk/apkbuilder/etc/apkbuilder  tools/apkbuilder
framework/sdkstats.jar         tools/lib/sdkstats.jar
framework/archquery.jar        tools/lib/archquery.jar
framework/ddms.jar             tools/lib/ddms.jar
framework/ddmlib.jar           tools/lib/ddmlib.jar
framework/ddmuilib.jar         tools/lib/ddmuilib.jar
framework/hierarchyviewer.jar  tools/lib/hierarchyviewer.jar
framework/draw9patch.jar       tools/lib/draw9patch.jar
framework/layoutopt.jar        tools/lib/layoutopt.jar
framework/uix.jar              tools/lib/uix.jar
framework/traceview.jar        tools/lib/traceview.jar
framework/anttasks.jar         tools/lib/anttasks.jar
framework/sdklib.jar           tools/lib/sdklib.jar
framework/sdkuilib.jar         tools/lib/sdkuilib.jar
framework/sdkmanager.jar       tools/lib/sdkmanager.jar

# 3rd Party java libraries
framework/swing-worker-1.1.jar                                tools/lib/swing-worker-1.1.jar
framework/groovy-all-1.7.0.jar                                tools/lib/groovy-all-1.7.0.jar
framework/commons-compress-1.0.jar                            tools/lib/commons-compress-1.0.jar
framework/emmalib.jar                                         tools/lib/emma_device.jar
external/emma/lib/emma.jar                                    tools/lib/emma.jar
external/emma/lib/emma_ant.jar                                tools/lib/emma_ant.jar
framework/org-netbeans-api-visual.jar                         tools/lib/org-netbeans-api-visual.jar
framework/org-openide-util.jar                                tools/lib/org-openide-util.jar
framework/jcommon-1.0.12.jar                                  tools/lib/jcommon-1.0.12.jar
framework/jfreechart-1.0.9.jar                                tools/lib/jfreechart-1.0.9.jar
framework/jfreechart-1.0.9-swt.jar                            tools/lib/jfreechart-1.0.9-swt.jar
framework/org.eclipse.core.commands_3.4.0.I20080509-2000.jar  tools/lib/org.eclipse.core.commands_3.4.0.I20080509-2000.jar
framework/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar tools/lib/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar
framework/org.eclipse.jface_3.4.2.M20090107-0800.jar          tools/lib/org.eclipse.jface_3.4.2.M20090107-0800.jar
framework/osgi.jar                                            tools/lib/osgi.jar

##############################################################################
# Platform Tools Component
##############################################################################

# host tools from out/host/$(HOST_OS)-$(HOST_ARCH)/
bin/aapt                                      platform-tools/aapt
bin/aidl                                      platform-tools/aidl
# dx
bin/dx                                        platform-tools/dx
bin/dexdump                                   platform-tools/dexdump
framework/dx.jar                              platform-tools/lib/dx.jar

sdk/files/sdk_files_NOTICE.txt                platform-tools/NOTICE.txt
development/sdk/plat_tools_source.properties  platform-tools/source.properties

##############################################################################
# Platform Component
##############################################################################

# version files for the SDK updater, from sdk.git
development/sdk/platform_source.properties platforms/${PLATFORM_NAME}/source.properties

# copy build prop from out/.../sdk/
sdk/sdk-build.prop platforms/${PLATFORM_NAME}/build.prop

# the uper-jar file that apps link against. This is the public API
out/target/common/obj/PACKAGING/android_jar_intermediates/android.jar platforms/${PLATFORM_NAME}/android.jar

# the aidl precompiled include
obj/framework.aidl platforms/${PLATFORM_NAME}/framework.aidl

# System images + Kernel
system.img                              platforms/${PLATFORM_NAME}/images/system.img
ramdisk.img                             platforms/${PLATFORM_NAME}/images/ramdisk.img
userdata.img                            platforms/${PLATFORM_NAME}/images/userdata.img
prebuilt/android-arm/kernel/kernel-qemu platforms/${PLATFORM_NAME}/images/kernel-qemu

# emulator skins from sdk.git
sdk/emulator/skins/QVGA      platforms/${PLATFORM_NAME}/skins/QVGA
sdk/emulator/skins/WQVGA432  platforms/${PLATFORM_NAME}/skins/WQVGA432
sdk/emulator/skins/WQVGA400  platforms/${PLATFORM_NAME}/skins/WQVGA400
sdk/emulator/skins/HVGA      platforms/${PLATFORM_NAME}/skins/HVGA
sdk/emulator/skins/WVGA800   platforms/${PLATFORM_NAME}/skins/WVGA800
sdk/emulator/skins/WVGA854   platforms/${PLATFORM_NAME}/skins/WVGA854

# Platform SDK properties
sdk/files/sdk.properties     platforms/${PLATFORM_NAME}/sdk.properties

# sdk.git Ant templates for project files
sdk/templates/AndroidManifest.template        platforms/${PLATFORM_NAME}/templates/AndroidManifest.template
sdk/templates/AndroidManifest.tests.template  platforms/${PLATFORM_NAME}/templates/AndroidManifest.tests.template
sdk/templates/java_file.template              platforms/${PLATFORM_NAME}/templates/java_file.template
sdk/templates/java_tests_file.template        platforms/${PLATFORM_NAME}/templates/java_tests_file.template
sdk/templates/layout.template                 platforms/${PLATFORM_NAME}/templates/layout.template
sdk/templates/strings.template                platforms/${PLATFORM_NAME}/templates/strings.template
sdk/templates/icon_ldpi.png                   platforms/${PLATFORM_NAME}/templates/icon_ldpi.png
sdk/templates/icon_mdpi.png                   platforms/${PLATFORM_NAME}/templates/icon_mdpi.png
sdk/templates/icon_hdpi.png                   platforms/${PLATFORM_NAME}/templates/icon_hdpi.png

# Eclipse Editors support
framework/layoutlib.jar       platforms/${PLATFORM_NAME}/data/layoutlib.jar
frameworks/base/core/res/res  platforms/${PLATFORM_NAME}/data/res
docs/activity_actions.txt     platforms/${PLATFORM_NAME}/data/activity_actions.txt
docs/broadcast_actions.txt    platforms/${PLATFORM_NAME}/data/broadcast_actions.txt
docs/service_actions.txt      platforms/${PLATFORM_NAME}/data/service_actions.txt
docs/categories.txt           platforms/${PLATFORM_NAME}/data/categories.txt
docs/widgets.txt              platforms/${PLATFORM_NAME}/data/widgets.txt
docs/features.txt             platforms/${PLATFORM_NAME}/data/features.txt

# fonts for layoutlib.
frameworks/base/data/fonts/fonts.xml                 platforms/${PLATFORM_NAME}/data/fonts/fonts.xml
frameworks/base/data/fonts/DroidSans.ttf             platforms/${PLATFORM_NAME}/data/fonts/DroidSans.ttf
frameworks/base/data/fonts/DroidSans-Bold.ttf        platforms/${PLATFORM_NAME}/data/fonts/DroidSans-Bold.ttf
frameworks/base/data/fonts/DroidSansMono.ttf         platforms/${PLATFORM_NAME}/data/fonts/DroidSansMono.ttf
frameworks/base/data/fonts/DroidSerif-Bold.ttf       platforms/${PLATFORM_NAME}/data/fonts/DroidSerif-Bold.ttf
frameworks/base/data/fonts/DroidSerif-BoldItalic.ttf platforms/${PLATFORM_NAME}/data/fonts/DroidSerif-BoldItalic.ttf
frameworks/base/data/fonts/DroidSerif-Italic.ttf     platforms/${PLATFORM_NAME}/data/fonts/DroidSerif-Italic.ttf
frameworks/base/data/fonts/DroidSerif-Regular.ttf    platforms/${PLATFORM_NAME}/data/fonts/DroidSerif-Regular.ttf
frameworks/base/data/fonts/DroidSansFallback.ttf     platforms/${PLATFORM_NAME}/data/fonts/DroidSansFallback.ttf
frameworks/base/data/fonts/DroidSansJapanese.ttf     platforms/${PLATFORM_NAME}/data/fonts/DroidSansJapanese.ttf

# NOTICE files are copied by build/core/Makefile from sdk.git
sdk/files/sdk_files_NOTICE.txt platforms/${PLATFORM_NAME}/templates/NOTICE.txt
sdk/files/sdk_files_NOTICE.txt platforms/${PLATFORM_NAME}/data/NOTICE.txt
sdk/files/sdk_files_NOTICE.txt platforms/${PLATFORM_NAME}/skins/NOTICE.txt

##############################################################################
# Docs Component
##############################################################################

# version files for the SDK updater, from sdk.git
development/sdk/doc_source.properties docs/source.properties

# the docs
docs/offline-sdk docs
frameworks/base/docs/docs-samples-redirect.html docs/samples/index.html


##############################################################################
# Samples Component
##############################################################################


# samples to include in the sdk samples package
#
# the list here should match the list of samples that we generate docs for, 
# (see web_docs_sample_code_flags in frameworks/base/Android.mk)
development/samples/source.properties        samples/${PLATFORM_NAME}/source.properties
development/apps/GestureBuilder              samples/${PLATFORM_NAME}/GestureBuilder
development/samples/AccessibilityService     samples/${PLATFORM_NAME}/AccessibilityService
development/samples/BluetoothChat            samples/${PLATFORM_NAME}/BluetoothChat
development/samples/Home                     samples/${PLATFORM_NAME}/Home
development/samples/LunarLander              samples/${PLATFORM_NAME}/LunarLander
development/samples/NotePad                  samples/${PLATFORM_NAME}/NotePad
development/samples/ApiDemos                 samples/${PLATFORM_NAME}/ApiDemos
development/samples/BackupRestore            samples/${PLATFORM_NAME}/BackupRestore
development/samples/HeavyWeight              samples/${PLATFORM_NAME}/HeavyWeight
development/samples/SampleSyncAdapter        samples/${PLATFORM_NAME}/SampleSyncAdapter
development/samples/SkeletonApp              samples/${PLATFORM_NAME}/SkeletonApp
development/samples/Snake                    samples/${PLATFORM_NAME}/Snake
development/samples/SoftKeyboard             samples/${PLATFORM_NAME}/SoftKeyboard
development/samples/JetBoy                   samples/${PLATFORM_NAME}/JetBoy
development/samples/SearchableDictionary     samples/${PLATFORM_NAME}/SearchableDictionary
development/samples/Spinner                  samples/${PLATFORM_NAME}/Spinner
development/samples/SpinnerTest              samples/${PLATFORM_NAME}/SpinnerTest
development/samples/ContactManager           samples/${PLATFORM_NAME}/ContactManager
development/samples/MultiResolution          samples/${PLATFORM_NAME}/MultiResolution
development/samples/Wiktionary               samples/${PLATFORM_NAME}/Wiktionary
development/samples/WiktionarySimple         samples/${PLATFORM_NAME}/WiktionarySimple
development/samples/CubeLiveWallpaper        samples/${PLATFORM_NAME}/CubeLiveWallpaper
development/samples/VoiceRecognitionService  samples/${PLATFORM_NAME}/VoiceRecognitionService
development/samples/TicTacToeLib             samples/${PLATFORM_NAME}/TicTacToeLib
development/samples/TicTacToeMain            samples/${PLATFORM_NAME}/TicTacToeMain
development/samples/XmlAdapters              samples/${PLATFORM_NAME}/XmlAdapters

# NOTICE files are copied by build/core/Makefile from sdk.git
sdk/files/sdk_files_NOTICE.txt samples/${PLATFORM_NAME}/NOTICE.txt

##############################################################################
# Samples Component
##############################################################################

# empty add-on folder with just a readme copied from sdk.git
sdk/files/README_add-ons.txt add-ons/README.txt
