#
# 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/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
development/apps/GestureBuilder platforms/${PLATFORM_NAME}/samples/GestureBuilder
development/samples/BluetoothChat platforms/${PLATFORM_NAME}/samples/BluetoothChat
development/samples/Home platforms/${PLATFORM_NAME}/samples/Home
development/samples/LunarLander platforms/${PLATFORM_NAME}/samples/LunarLander
development/samples/NotePad platforms/${PLATFORM_NAME}/samples/NotePad
development/samples/ApiDemos platforms/${PLATFORM_NAME}/samples/ApiDemos
development/samples/SkeletonApp platforms/${PLATFORM_NAME}/samples/SkeletonApp
development/samples/Snake platforms/${PLATFORM_NAME}/samples/Snake
development/samples/SoftKeyboard platforms/${PLATFORM_NAME}/samples/SoftKeyboard
development/samples/JetBoy platforms/${PLATFORM_NAME}/samples/JetBoy
development/samples/SearchableDictionary platforms/${PLATFORM_NAME}/samples/SearchableDictionary
development/samples/ContactManager platforms/${PLATFORM_NAME}/samples/ContactManager
development/samples/MultiResolution platforms/${PLATFORM_NAME}/samples/MultiResolution
development/samples/Wiktionary platforms/${PLATFORM_NAME}/samples/Wiktionary
development/samples/WiktionarySimple platforms/${PLATFORM_NAME}/samples/WiktionarySimple

# 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.6.5.jar tools/lib/groovy-all-1.6.5.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}/samples/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

# 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
