#
# 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
bin/bcc_compat                          strip build-tools/${PLATFORM_NAME}/bcc_compat
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

prebuilts/sdk/renderscript/lib/javalib.jar            build-tools/${PLATFORM_NAME}/renderscript/lib/renderscript-v8.jar
prebuilts/sdk/renderscript/lib/arm/libclcore.bc       build-tools/${PLATFORM_NAME}/renderscript/lib/libclcore.bc

prebuilts/sdk/renderscript/lib/arm/libc.so            build-tools/${PLATFORM_NAME}/renderscript/lib/intermediates/armeabi-v7a/libc.so
prebuilts/sdk/renderscript/lib/arm/libm.so            build-tools/${PLATFORM_NAME}/renderscript/lib/intermediates/armeabi-v7a/libm.so
prebuilts/sdk/renderscript/lib/arm/libcompiler_rt.a   build-tools/${PLATFORM_NAME}/renderscript/lib/intermediates/armeabi-v7a/libcompiler_rt.a
prebuilts/sdk/renderscript/lib/arm/libRSSupport.so    build-tools/${PLATFORM_NAME}/renderscript/lib/packaged/armeabi-v7a/libRSSupport.so
prebuilts/sdk/renderscript/lib/arm/librsjni.so        build-tools/${PLATFORM_NAME}/renderscript/lib/packaged/armeabi-v7a/librsjni.so

prebuilts/sdk/renderscript/lib/mips/libc.so            build-tools/${PLATFORM_NAME}/renderscript/lib/intermediates/mips/libc.so
prebuilts/sdk/renderscript/lib/mips/libm.so            build-tools/${PLATFORM_NAME}/renderscript/lib/intermediates/mips/libm.so
prebuilts/sdk/renderscript/lib/mips/libcompiler_rt.a   build-tools/${PLATFORM_NAME}/renderscript/lib/intermediates/mips/libcompiler_rt.a
prebuilts/sdk/renderscript/lib/mips/libRSSupport.so    build-tools/${PLATFORM_NAME}/renderscript/lib/packaged/mips/libRSSupport.so
prebuilts/sdk/renderscript/lib/mips/librsjni.so        build-tools/${PLATFORM_NAME}/renderscript/lib/packaged/mips/librsjni.so

prebuilts/sdk/renderscript/lib/x86/libc.so            build-tools/${PLATFORM_NAME}/renderscript/lib/intermediates/x86/libc.so
prebuilts/sdk/renderscript/lib/x86/libm.so            build-tools/${PLATFORM_NAME}/renderscript/lib/intermediates/x86/libm.so
prebuilts/sdk/renderscript/lib/x86/libcompiler_rt.a   build-tools/${PLATFORM_NAME}/renderscript/lib/intermediates/x86/libcompiler_rt.a
prebuilts/sdk/renderscript/lib/x86/libRSSupport.so    build-tools/${PLATFORM_NAME}/renderscript/lib/packaged/x86/libRSSupport.so
prebuilts/sdk/renderscript/lib/x86/librsjni.so        build-tools/${PLATFORM_NAME}/renderscript/lib/packaged/x86/librsjni.so



# 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
framework/icu4j.jar           platforms/${PLATFORM_NAME}/data/icu4j.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
# Note: Some samples reference a shared "common" directory. In the future
# this will be copied in automatically via a templating system. For now,
# we need to copy it in here as needed.
developers/samples/android/connectivity        samples/${PLATFORM_NAME}/connectivity
developers/samples/android/common              samples/${PLATFORM_NAME}/connectivity/sync/BasicSyncAdapter/BasicSyncAdapter/src/main/java/com/example/android/common
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/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/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

