#
# 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
##############################################################################

development/sdk/plat_tools_source.properties  platform-tools/source.properties

# host tools from out/host/$(HOST_OS)-$(HOST_ARCH)/
bin/adb                                 strip platform-tools/adb
bin/aapt                                strip platform-tools/aapt
bin/aidl                                strip platform-tools/aidl
bin/fastboot                            strip platform-tools/fastboot
bin/llvm-rs-cc                          strip platform-tools/llvm-rs-cc

# dx
bin/dx                                        platform-tools/dx
bin/dexdump                                   platform-tools/dexdump
framework/dx.jar                              platform-tools/lib/dx.jar

# Framework include for Renderscript
frameworks/base/libs/rs/scriptc               platform-tools/renderscript/include
external/clang/lib/Headers                    platform-tools/renderscript/clang-include
external/clang/LICENSE.TXT                    platform-tools/renderscript/clang-include/LICENSE.TXT

# API database for tools such as lint
development/sdk/api-versions.xml              platform-tools/api/api-versions.xml

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

# version files for the SDK updater, from development.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_DIR}/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

# emulator skins from sdk.git
development/tools/emulator/skins/QVGA      platforms/${PLATFORM_NAME}/skins/QVGA
development/tools/emulator/skins/WQVGA432  platforms/${PLATFORM_NAME}/skins/WQVGA432
development/tools/emulator/skins/WQVGA400  platforms/${PLATFORM_NAME}/skins/WQVGA400
development/tools/emulator/skins/HVGA      platforms/${PLATFORM_NAME}/skins/HVGA
development/tools/emulator/skins/WVGA800   platforms/${PLATFORM_NAME}/skins/WVGA800
development/tools/emulator/skins/WVGA854   platforms/${PLATFORM_NAME}/skins/WVGA854
development/tools/emulator/skins/WSVGA     platforms/${PLATFORM_NAME}/skins/WSVGA
development/tools/emulator/skins/WXGA720   platforms/${PLATFORM_NAME}/skins/WXGA720
development/tools/emulator/skins/WXGA800   platforms/${PLATFORM_NAME}/skins/WXGA800

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

# sdk.git Ant templates for project files
development/tools/templates/AndroidManifest.template        platforms/${PLATFORM_NAME}/templates/AndroidManifest.template
development/tools/templates/AndroidManifest.tests.template  platforms/${PLATFORM_NAME}/templates/AndroidManifest.tests.template
development/tools/templates/java_file.template              platforms/${PLATFORM_NAME}/templates/java_file.template
development/tools/templates/java_tests_file.template        platforms/${PLATFORM_NAME}/templates/java_tests_file.template
development/tools/templates/layout.template                 platforms/${PLATFORM_NAME}/templates/layout.template
development/tools/templates/strings.template                platforms/${PLATFORM_NAME}/templates/strings.template
development/tools/templates/ic_launcher_ldpi.png            platforms/${PLATFORM_NAME}/templates/ic_launcher_ldpi.png
development/tools/templates/ic_launcher_mdpi.png            platforms/${PLATFORM_NAME}/templates/ic_launcher_mdpi.png
development/tools/templates/ic_launcher_hdpi.png            platforms/${PLATFORM_NAME}/templates/ic_launcher_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    platforms/${PLATFORM_NAME}/data/fonts

# 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

##############################################################################
# System image Component
##############################################################################

# System images + Kernel
system.img                                 system-images/${PLATFORM_NAME}/${TARGET_CPU_ABI}/system.img
ramdisk.img                                system-images/${PLATFORM_NAME}/${TARGET_CPU_ABI}/ramdisk.img
userdata.img                               system-images/${PLATFORM_NAME}/${TARGET_CPU_ABI}/userdata.img
system/build.prop                          system-images/${PLATFORM_NAME}/${TARGET_CPU_ABI}/build.prop

# Note: the kernel image is handled by sdk-android-<abi>.atree now.

##############################################################################
# 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/AccelerometerPlay          samples/${PLATFORM_NAME}/AccelerometerPlay
development/samples/ActionBarCompat            samples/${PLATFORM_NAME}/ActionBarCompat
development/samples/AndroidBeamDemo            samples/${PLATFORM_NAME}/AndroidBeamDemo
development/samples/ApiDemos                   samples/${PLATFORM_NAME}/ApiDemos
development/samples/AppNavigation              samples/${PLATFORM_NAME}/AppNavigation
development/samples/BackupRestore              samples/${PLATFORM_NAME}/BackupRestore
development/samples/BasicGLSurfaceView         samples/${PLATFORM_NAME}/BasicGLSurfaceView
development/samples/BluetoothChat              samples/${PLATFORM_NAME}/BluetoothChat
development/samples/BluetoothHDP               samples/${PLATFORM_NAME}/BluetoothHDP
development/samples/ContactManager             samples/${PLATFORM_NAME}/ContactManager
development/samples/CrossCompatibility         samples/${PLATFORM_NAME}/CrossCompatibility
development/samples/CubeLiveWallpaper          samples/${PLATFORM_NAME}/CubeLiveWallpaper
development/samples/Home                       samples/${PLATFORM_NAME}/Home
development/samples/HoneycombGallery           samples/${PLATFORM_NAME}/HoneycombGallery
development/samples/JetBoy                     samples/${PLATFORM_NAME}/JetBoy
development/samples/LunarLander                samples/${PLATFORM_NAME}/LunarLander
development/samples/MultiResolution            samples/${PLATFORM_NAME}/MultiResolution
development/samples/NotePad                    samples/${PLATFORM_NAME}/NotePad
development/samples/NFCDemo                    samples/${PLATFORM_NAME}/NFCDemo
development/samples/RandomMusicPlayer          samples/${PLATFORM_NAME}/RandomMusicPlayer
development/samples/SpellChecker/SampleSpellCheckerService samples/${PLATFORM_NAME}/SpellChecker/SampleSpellCheckerService
development/samples/SpellChecker/HelloSpellChecker samples/${PLATFORM_NAME}/SpellChecker/HelloSpellChecker
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/TtsEngine                  samples/${PLATFORM_NAME}/TtsEngine
development/samples/ToyVpn                     samples/${PLATFORM_NAME}/ToyVpn
development/samples/USB/MissileLauncher        samples/${PLATFORM_NAME}/USB/MissileLauncher
development/samples/USB/AdbTest                samples/${PLATFORM_NAME}/USB/AdbTest
development/samples/VoiceRecognitionService    samples/${PLATFORM_NAME}/VoiceRecognitionService
development/samples/VoicemailProviderDemo      samples/${PLATFORM_NAME}/VoicemailProviderDemo
development/samples/WeatherListWidget          samples/${PLATFORM_NAME}/WeatherListWidget
development/apps/WidgetPreview                 samples/${PLATFORM_NAME}/WidgetPreview
development/samples/WiFiDirectDemo             samples/${PLATFORM_NAME}/WiFiDirectDemo
development/samples/Wiktionary                 samples/${PLATFORM_NAME}/Wiktionary
development/samples/WiktionarySimple           samples/${PLATFORM_NAME}/WiktionarySimple
development/samples/XmlAdapters                samples/${PLATFORM_NAME}/XmlAdapters
development/samples/RenderScript/Balls         samples/${PLATFORM_NAME}/RenderScript/Balls
development/samples/RenderScript/Fountain      samples/${PLATFORM_NAME}/RenderScript/Fountain
development/samples/RenderScript/FountainFbo   samples/${PLATFORM_NAME}/RenderScript/FountainFbo
development/samples/RenderScript/HelloCompute  samples/${PLATFORM_NAME}/RenderScript/HelloCompute
development/samples/RenderScript/HelloWorld    samples/${PLATFORM_NAME}/RenderScript/HelloWorld
development/samples/RenderScript/MiscSamples   samples/${PLATFORM_NAME}/RenderScript/MiscSamples

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

##############################################################################
# Add-on Folder
##############################################################################

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

##############################################################################
# Extra Component: Support
##############################################################################

development/sdk/support_source.properties                                                         extras/android/support/source.properties
development/sdk/support_README.txt                                                                extras/android/support/README.txt
sdk/files/sdk_files_NOTICE.txt                                                                    extras/android/support/NOTICE.txt
${OUT_DIR}/target/common/obj/PACKAGING/android-support-v4_intermediates/android-support-v4.jar    extras/android/support/v4/android-support-v4.jar
frameworks/support/v4                                                                             extras/android/support/v4/src
development/samples/Support4Demos                                                                 extras/android/support/v4/samples/Support4Demos
${OUT_DIR}/target/common/obj/PACKAGING/android-support-v13_intermediates/android-support-v13.jar  extras/android/support/v13/android-support-v13.jar
frameworks/support/v13                                                                            extras/android/support/v13/src
development/samples/Support13Demos                                                                extras/android/support/v13/samples/Support13Demos

##############################################################################
# Tests Component
##############################################################################
framework/layoutlib-tests.jar tests/libtests/layoutlib-tests.jar
system/app/ConnectivityTest.apk tests/emulator-test-apps/ConnectivityTest.apk
system/app/GpsLocationTest.apk tests/emulator-test-apps/GpsLocationTest.apk
