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

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

# host tools from out/host/$(HOST_OS)-$(HOST_ARCH)/
bin/aapt platforms/${PLATFORM_NAME}/tools/aapt
bin/aidl platforms/${PLATFORM_NAME}/tools/aidl
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

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

# eclipse files for SWT
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

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

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

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

# sdk.git Ant templates
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/build.template tools/lib/build.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

# sdk.git files
sdk/files/android_rules.xml platforms/${PLATFORM_NAME}/templates/android_rules.xml
sdk/files/android_test_rules.xml platforms/${PLATFORM_NAME}/templates/android_test_rules.xml
sdk/files/devices.xml tools/lib/devices.xml

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

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

# dx
bin/dx platforms/${PLATFORM_NAME}/tools/dx
bin/dexdump platforms/${PLATFORM_NAME}/tools/dexdump
framework/dx.jar platforms/${PLATFORM_NAME}/tools/lib/dx.jar

#androidprefs
framework/androidprefs.jar tools/lib/androidprefs.jar

#jarutils
framework/jarutils.jar tools/lib/jarutils.jar

#apkbuilder
bin/apkbuilder tools/apkbuilder
framework/apkbuilder.jar tools/lib/apkbuilder.jar

# sdkstats service
framework/sdkstats.jar tools/lib/sdkstats.jar

# jfreechart. needed by ddms.
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

# archquery to test VM architecture
framework/archquery.jar tools/lib/archquery.jar

# ddms
bin/ddms tools/ddms
framework/ddms.jar tools/lib/ddms.jar
framework/ddmlib.jar tools/lib/ddmlib.jar
framework/ddmuilib.jar tools/lib/ddmuilib.jar

# hierarchyviewer
bin/hierarchyviewer tools/hierarchyviewer
framework/hierarchyviewer.jar tools/lib/hierarchyviewer.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/swing-worker-1.1.jar tools/lib/swing-worker-1.1.jar

# draw9patch
bin/draw9patch tools/draw9patch
framework/draw9patch.jar tools/lib/draw9patch.jar
framework/swing-worker-1.1.jar tools/lib/swing-worker-1.1.jar

# layoutopt
bin/layoutopt tools/layoutopt
framework/layoutopt.jar tools/lib/layoutopt.jar
framework/uix.jar tools/lib/uix.jar
framework/groovy-all-1.7.0.jar tools/lib/groovy-all-1.7.0.jar

# traceview
bin/traceview tools/traceview
framework/traceview.jar tools/lib/traceview.jar

# emma lib for code coverage support
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

# custom ant tasks
framework/anttasks.jar tools/lib/anttasks.jar

# sdkmanager
bin/android tools/android
framework/commons-compress-1.0.jar tools/lib/commons-compress-1.0.jar
framework/sdklib.jar tools/lib/sdklib.jar
framework/sdkuilib.jar tools/lib/sdkuilib.jar
framework/sdkmanager.jar tools/lib/sdkmanager.jar

# emulator
bin/emulator tools/emulator
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
external/qemu/android/avd/hardware-properties.ini tools/lib/hardware-properties.ini

# 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

# 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
sdk/files/sdk_files_NOTICE.txt platforms/${PLATFORM_NAME}/tools/NOTICE.txt
sdk/files/sdk_files_NOTICE.txt samples/${PLATFORM_NAME}/NOTICE.txt

# the readme
development/docs/SDK_RELEASE_NOTES RELEASE_NOTES.html

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

# tools support
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
framework/layoutlib.jar platforms/${PLATFORM_NAME}/data/layoutlib.jar

# framework resources for layoutlib
frameworks/base/core/res/res platforms/${PLATFORM_NAME}/data/res

# 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

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