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

sdk/files/sdk_files_NOTICE.txt                platform-tools/NOTICE.txt
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/fastboot                            strip platform-tools/fastboot

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

# systrace
external/chromium-trace/systrace.py           platform-tools/systrace/systrace.py
external/chromium-trace/systrace-legacy.py    platform-tools/systrace/systrace-legacy.py
external/chromium-trace/script.js             platform-tools/systrace/script.js
external/chromium-trace/style.css             platform-tools/systrace/style.css
external/chromium-trace/prefix.html           platform-tools/systrace/prefix.html
external/chromium-trace/suffix.html           platform-tools/systrace/suffix.html
external/chromium-trace/LICENSE               platform-tools/systrace/LICENSE
external/chromium-trace/AUTHORS               platform-tools/systrace/AUTHORS
external/chromium-trace/NOTICE                platform-tools/systrace/NOTICE
external/chromium-trace/UPSTREAM_REVISION     platform-tools/systrace/UPSTREAM_REVISION

##############################################################################
# Build Tools Component
##############################################################################
# Note that the build-tools sub-folder uses the platform-name as a placeholder
# at build-time. Packaging will later change that to the actual build-tools
# revision as specified in the source.properties.

sdk/files/sdk_files_NOTICE.txt                 build-tools/${PLATFORM_NAME}/NOTICE.txt
development/sdk/build_tools_source.properties  build-tools/${PLATFORM_NAME}/source.properties

# build tools from out/host/$(HOST_OS)-$(HOST_ARCH)/
bin/aapt                                strip build-tools/${PLATFORM_NAME}/aapt
bin/aidl                                strip build-tools/${PLATFORM_NAME}/aidl
# renderscript (cc + headers)
bin/llvm-rs-cc                          strip build-tools/${PLATFORM_NAME}/llvm-rs-cc
frameworks/rs/scriptc                         build-tools/${PLATFORM_NAME}/renderscript/include
external/clang/lib/Headers                    build-tools/${PLATFORM_NAME}/renderscript/clang-include
external/clang/LICENSE.TXT                    build-tools/${PLATFORM_NAME}/renderscript/clang-include/LICENSE.TXT
# dx
bin/dx                                        build-tools/${PLATFORM_NAME}/dx
framework/dx.jar                              build-tools/${PLATFORM_NAME}/lib/dx.jar
bin/dexdump                                   build-tools/${PLATFORM_NAME}/dexdump


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

# version files for the SDK updater, from development.git
${HOST_OUT}/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
${OUT_DIR}/target/common/obj/JAVA_LIBRARIES/android_uiautomator_intermediates/javalib.jar platforms/${PLATFORM_NAME}/uiautomator.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
development/tools/emulator/skins/WXGA800-7in   platforms/${PLATFORM_NAME}/skins/WXGA800-7in

# 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
development/tools/templates/ic_launcher_xhdpi.png           platforms/${PLATFORM_NAME}/templates/ic_launcher_xhdpi.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
${HOST_OUT}/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}/legacy/GestureBuilder
development/samples/samples_source.properties  samples/${PLATFORM_NAME}/source.properties
#
# PLEASE KEEP THE SAMPLES IN ALPHABETICAL ORDER.
#

# New sample tree
developers/samples/android/connectivity        samples/${PLATFORM_NAME}/connectivity
developers/samples/android/content             samples/${PLATFORM_NAME}/content
developers/samples/android/input               samples/${PLATFORM_NAME}/input
developers/samples/android/media               samples/${PLATFORM_NAME}/media
developers/samples/android/security            samples/${PLATFORM_NAME}/security
developers/samples/android/testing             samples/${PLATFORM_NAME}/testing
developers/samples/android/ui                  samples/${PLATFORM_NAME}/ui

# Old sample tree
development/samples/AccelerometerPlay          samples/${PLATFORM_NAME}/legacy/AccelerometerPlay
development/samples/ActionBarCompat            samples/${PLATFORM_NAME}/legacy/ActionBarCompat
development/samples/AndroidBeamDemo            samples/${PLATFORM_NAME}/legacy/AndroidBeamDemo
development/samples/ApiDemos                   samples/${PLATFORM_NAME}/legacy/ApiDemos
development/samples/AppNavigation              samples/${PLATFORM_NAME}/legacy/AppNavigation
development/samples/AppRestrictions            samples/${PLATFORM_NAME}/legacy/AppRestrictions
development/samples/BackupRestore              samples/${PLATFORM_NAME}/legacy/BackupRestore
development/samples/BasicGLSurfaceView         samples/${PLATFORM_NAME}/legacy/BasicGLSurfaceView
development/samples/BluetoothChat              samples/${PLATFORM_NAME}/legacy/BluetoothChat
development/samples/BluetoothHDP               samples/${PLATFORM_NAME}/legacy/BluetoothHDP
development/samples/BluetoothLeGatt            samples/${PLATFORM_NAME}/legacy/BluetoothLeGatt
development/samples/ContactManager             samples/${PLATFORM_NAME}/legacy/ContactManager
development/samples/CrossCompatibility         samples/${PLATFORM_NAME}/legacy/CrossCompatibility
development/samples/CubeLiveWallpaper          samples/${PLATFORM_NAME}/legacy/CubeLiveWallpaper
development/samples/HelloEffects               samples/${PLATFORM_NAME}/legacy/HelloEffects
development/samples/Home                       samples/${PLATFORM_NAME}/legacy/Home
development/samples/HoneycombGallery           samples/${PLATFORM_NAME}/legacy/HoneycombGallery
development/samples/JetBoy                     samples/${PLATFORM_NAME}/legacy/JetBoy
development/samples/KeyChainDemo               samples/${PLATFORM_NAME}/legacy/KeyChainDemo
development/samples/LunarLander                samples/${PLATFORM_NAME}/legacy/LunarLander
development/samples/MultiResolution            samples/${PLATFORM_NAME}/legacy/MultiResolution
development/samples/NotePad                    samples/${PLATFORM_NAME}/legacy/NotePad
development/samples/RandomMusicPlayer          samples/${PLATFORM_NAME}/legacy/RandomMusicPlayer
development/samples/SpellChecker/SampleSpellCheckerService samples/${PLATFORM_NAME}/legacy/SpellChecker/SampleSpellCheckerService
development/samples/SpellChecker/HelloSpellChecker         samples/${PLATFORM_NAME}/legacy/SpellChecker/HelloSpellChecker
development/samples/SampleSyncAdapter          samples/${PLATFORM_NAME}/legacy/SampleSyncAdapter
development/samples/SearchableDictionary       samples/${PLATFORM_NAME}/legacy/SearchableDictionary
development/samples/SipDemo                    samples/${PLATFORM_NAME}/legacy/SipDemo
development/samples/SkeletonApp                samples/${PLATFORM_NAME}/legacy/SkeletonApp
development/samples/Snake                      samples/${PLATFORM_NAME}/legacy/Snake
development/samples/SoftKeyboard               samples/${PLATFORM_NAME}/legacy/SoftKeyboard
development/samples/Spinner                    samples/${PLATFORM_NAME}/legacy/Spinner
development/samples/SpinnerTest                samples/${PLATFORM_NAME}/legacy/SpinnerTest
development/samples/TicTacToeLib               samples/${PLATFORM_NAME}/legacy/TicTacToeLib
development/samples/TicTacToeMain              samples/${PLATFORM_NAME}/legacy/TicTacToeMain
development/samples/TtsEngine                  samples/${PLATFORM_NAME}/legacy/TtsEngine
development/samples/ToyVpn                     samples/${PLATFORM_NAME}/legacy/ToyVpn
development/samples/UiAutomator                samples/${PLATFORM_NAME}/legacy/UiAutomator
development/samples/USB/MissileLauncher        samples/${PLATFORM_NAME}/legacy/USB/MissileLauncher
development/samples/USB/AdbTest                samples/${PLATFORM_NAME}/legacy/USB/AdbTest
development/samples/VoiceRecognitionService    samples/${PLATFORM_NAME}/legacy/VoiceRecognitionService
development/samples/VoicemailProviderDemo      samples/${PLATFORM_NAME}/legacy/VoicemailProviderDemo
development/samples/WeatherListWidget          samples/${PLATFORM_NAME}/legacy/WeatherListWidget
development/apps/WidgetPreview                 samples/${PLATFORM_NAME}/legacy/WidgetPreview
development/samples/WiFiDirectDemo             samples/${PLATFORM_NAME}/legacy/WiFiDirectDemo
development/samples/WiFiDirectServiceDiscovery samples/${PLATFORM_NAME}/legacy/WiFiDirectServiceDiscovery
development/samples/Wiktionary                 samples/${PLATFORM_NAME}/legacy/Wiktionary
development/samples/WiktionarySimple           samples/${PLATFORM_NAME}/legacy/WiktionarySimple
development/samples/XmlAdapters                samples/${PLATFORM_NAME}/legacy/XmlAdapters
development/samples/RenderScript/HelloCompute  samples/${PLATFORM_NAME}/legacy/RenderScript/HelloCompute

# 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/samples/Support4Demos
development/samples/SupportAppNavigation                                                          extras/android/support/samples/SupportAppNavigation

${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/samples/Support13Demos

frameworks/support/v7/gridlayout/README.txt                                                       extras/android/support/v7/gridlayout/README.txt
frameworks/support/v7/gridlayout/.project                                                         extras/android/support/v7/gridlayout/.project
frameworks/support/v7/gridlayout/.classpath                                                       extras/android/support/v7/gridlayout/.classpath
frameworks/support/v7/gridlayout/AndroidManifest.xml                                              extras/android/support/v7/gridlayout/AndroidManifest.xml
frameworks/support/v7/gridlayout/project.properties                                               extras/android/support/v7/gridlayout/project.properties
frameworks/support/v7/gridlayout/res                                                              extras/android/support/v7/gridlayout/res
frameworks/support/v7/gridlayout/src/.readme                                                      extras/android/support/v7/gridlayout/src/.readme
${OUT_DIR}/target/common/obj/PACKAGING/android-support-v7-gridlayout_intermediates/android-support-v7-gridlayout.jar    extras/android/support/v7/gridlayout/libs/android-support-v7-gridlayout.jar

frameworks/support/v7/appcompat/README.txt                                                        extras/android/support/v7/appcompat/README.txt
frameworks/support/v7/appcompat/.project                                                          extras/android/support/v7/appcompat/.project
frameworks/support/v7/appcompat/.classpath                                                        extras/android/support/v7/appcompat/.classpath
frameworks/support/v7/appcompat/AndroidManifest.xml                                               extras/android/support/v7/appcompat/AndroidManifest.xml
frameworks/support/v7/appcompat/project.properties                                                extras/android/support/v7/appcompat/project.properties
frameworks/support/v7/appcompat/res                                                               extras/android/support/v7/appcompat/res
frameworks/support/v7/appcompat/src/.readme                                                       extras/android/support/v7/appcompat/src/.readme
${OUT_DIR}/target/common/obj/PACKAGING/android-support-v7-appcompat_intermediates/android-support-v7-appcompat.jar    extras/android/support/v7/appcompat/libs/android-support-v7-appcompat.jar
${OUT_DIR}/target/common/obj/PACKAGING/android-support-v4_intermediates/android-support-v4.jar                        extras/android/support/v7/appcompat/libs/android-support-v4.jar

frameworks/support/v7/mediarouter/README.txt                                                       extras/android/support/v7/mediarouter/README.txt
frameworks/support/v7/mediarouter/.project                                                         extras/android/support/v7/mediarouter/.project
frameworks/support/v7/mediarouter/.classpath                                                       extras/android/support/v7/mediarouter/.classpath
frameworks/support/v7/mediarouter/AndroidManifest.xml                                              extras/android/support/v7/mediarouter/AndroidManifest.xml
frameworks/support/v7/mediarouter/project.properties                                               extras/android/support/v7/mediarouter/project.properties
frameworks/support/v7/mediarouter/res                                                              extras/android/support/v7/mediarouter/res
frameworks/support/v7/mediarouter/src/.readme                                                      extras/android/support/v7/mediarouter/src/.readme
${OUT_DIR}/target/common/obj/PACKAGING/android-support-v7-mediarouter_intermediates/android-support-v7-mediarouter.jar    extras/android/support/v7/mediarouter/libs/android-support-v7-mediarouter.jar

development/samples/Support7Demos                                                                 extras/android/support/samples/Support7Demos

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

