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

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