#
# 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.
#
# The files that will go in the tools folder are setup through
#    sdk/build/tools.atree
# This is to help when the sdk.git project is branched differently from
# the other projects.
#

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

# the readme
development/docs/SDK_RELEASE_NOTES RELEASE_NOTES.html

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

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

# host tools from out/host/$(HOST_OS)-$(HOST_ARCH)/
bin/adb                                       platform-tools/adb
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/apps/GestureBuilder              samples/${PLATFORM_NAME}/GestureBuilder
development/samples/source.properties        samples/${PLATFORM_NAME}/source.properties
#
# PLEASE KEEP THE SAMPLES IN ALPHABETICAL ORDER.
#
development/samples/AccessibilityService     samples/${PLATFORM_NAME}/AccessibilityService
development/samples/ApiDemos                 samples/${PLATFORM_NAME}/ApiDemos
development/samples/BackupRestore            samples/${PLATFORM_NAME}/BackupRestore
development/samples/BluetoothChat            samples/${PLATFORM_NAME}/BluetoothChat
development/samples/ContactManager           samples/${PLATFORM_NAME}/ContactManager
development/samples/CrossCompatibility       samples/${PLATFORM_NAME}/CrossCompatibility
development/samples/CubeLiveWallpaper        samples/${PLATFORM_NAME}/CubeLiveWallpaper
development/samples/HeavyWeight              samples/${PLATFORM_NAME}/HeavyWeight
development/samples/Home                     samples/${PLATFORM_NAME}/Home
development/samples/JetBoy                   samples/${PLATFORM_NAME}/JetBoy
development/samples/LunarLander              samples/${PLATFORM_NAME}/LunarLander
development/samples/MultiResolution          samples/${PLATFORM_NAME}/MultiResolution
development/samples/NFCDemo                  samples/${PLATFORM_NAME}/NFCDemo
development/samples/NotePad                  samples/${PLATFORM_NAME}/NotePad
development/samples/SampleSyncAdapter        samples/${PLATFORM_NAME}/SampleSyncAdapter
development/samples/SearchableDictionary     samples/${PLATFORM_NAME}/SearchableDictionary
development/samples/SipDemo                  samples/${PLATFORM_NAME}/SipDemo
development/samples/SkeletonApp              samples/${PLATFORM_NAME}/SkeletonApp
development/samples/Snake                    samples/${PLATFORM_NAME}/Snake
development/samples/SoftKeyboard             samples/${PLATFORM_NAME}/SoftKeyboard
development/samples/Spinner                  samples/${PLATFORM_NAME}/Spinner
development/samples/SpinnerTest              samples/${PLATFORM_NAME}/SpinnerTest
development/samples/TicTacToeLib             samples/${PLATFORM_NAME}/TicTacToeLib
development/samples/TicTacToeMain            samples/${PLATFORM_NAME}/TicTacToeMain
development/samples/VoiceRecognitionService  samples/${PLATFORM_NAME}/VoiceRecognitionService
development/samples/Wiktionary               samples/${PLATFORM_NAME}/Wiktionary
development/samples/WiktionarySimple         samples/${PLATFORM_NAME}/WiktionarySimple

# 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
