#
# 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 properties
sdk/files/sdk.properties            platforms/${PLATFORM_NAME}/sdk.properties
# copy the Ant rules to the platforms and to the tools.
sdk/files/ant                       platforms/${PLATFORM_NAME}/ant
sdk/files/ant                       tools/ant
# also copy the rev1 under the old name/location for legacy reason
sdk/files/ant/ant_rules_r1.xml      platforms/${PLATFORM_NAME}/templates/android_rules.xml
sdk/files/ant/ant_test_rules_r1.xml platforms/${PLATFORM_NAME}/templates/android_test_rules.xml
# layout device definition
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

# 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
