Merge change 2121 into donut

* changes:
  SDK #1800921: Packages the Windows SDK in a temporary location.
This commit is contained in:
Android (Google) Code Review
2009-05-20 22:31:31 -07:00

View File

@@ -13,8 +13,12 @@ set -e # Fail this script as soon as a command fails -- fail early, fail fast
# will make some rm/mv commands to fail. # will make some rm/mv commands to fail.
FORCE="1" FORCE="1"
PROG_NAME="$0"
SDK_ZIP="$1" SDK_ZIP="$1"
DIST_DIR="$2" DIST_DIR="$2"
TEMP_DIR="$3"
[ -z "$TEMP_DIR" ] && TEMP_DIR=${TMP:-/tmp}
function die() { function die() {
echo "Error:" $* echo "Error:" $*
@@ -22,9 +26,23 @@ function die() {
exit 1 exit 1
} }
function usage() {
echo "Usage: ${PROG_NAME} linux_or_mac_sdk.zip output_dir [temp_dir]"
echo "If temp_dir is not given, \$TMP is used. If that's missing, /tmp is used."
status
exit 2
}
function status() {
echo "Current values:"
echo "- Input SDK: ${SDK_ZIP:-missing}"
echo "- Output dir: ${DIST_DIR:-missing}"
echo "- Temp dir: ${TEMP_DIR:-missing}"
}
function check() { function check() {
[ -f "$SDK_ZIP" ] || die "Pass the path of an existing Linux/Darwin SDK .zip as first parameter" [ -f "$SDK_ZIP" ] || usage
[ -d "$DIST_DIR" ] || die "Pass the output directory as second parameter" [ -d "$DIST_DIR" ] || usage
# Use the BUILD_ID as SDK_NUMBER if defined, otherwise try to get it from the # Use the BUILD_ID as SDK_NUMBER if defined, otherwise try to get it from the
# provided zip filename. # provided zip filename.
@@ -72,21 +90,22 @@ function package() {
echo echo
echo "Packaging..." echo "Packaging..."
DEST_NAME="android-sdk_${SDK_NUMBER}_windows" DEST_NAME="android-sdk_${SDK_NUMBER}_windows"
DEST="$DIST_DIR/$DEST_NAME"
DEST_NAME_ZIP="${DEST_NAME}.zip" DEST_NAME_ZIP="${DEST_NAME}.zip"
TEMP_SDK_DIR="$TEMP_DIR/$DEST_NAME"
# Unzip current linux/mac SDK and rename using the windows name # Unzip current linux/mac SDK and rename using the windows name
if [[ -n "$FORCE" || ! -d "$DEST" ]]; then if [[ -n "$FORCE" || ! -d "$TEMP_SDK_DIR" ]]; then
[ -e "$DEST" ] && rm -rfv "$DEST" # cleanup dest first if exists [ -e "$TEMP_SDK_DIR" ] && rm -rfv "$TEMP_SDK_DIR" # cleanup dest first if exists
UNZIPPED=`basename "$SDK_ZIP"` UNZIPPED=`basename "$SDK_ZIP"`
UNZIPPED="$DIST_DIR/${UNZIPPED/.zip/}" UNZIPPED="$TEMP_DIR/${UNZIPPED/.zip/}"
[ -e "$UNZIPPED" ] && rm -rfv "$UNZIPPED" # cleanup unzip dir (if exists) [ -e "$UNZIPPED" ] && rm -rfv "$UNZIPPED" # cleanup unzip dir (if exists)
unzip "$SDK_ZIP" -d "$DIST_DIR" unzip "$SDK_ZIP" -d "$TEMP_DIR"
mv -v "$UNZIPPED" "$DEST" mv -v "$UNZIPPED" "$TEMP_SDK_DIR"
fi fi
# Assert that the package contains only one platform # Assert that the package contains only one platform
PLATFORMS="$DEST/platforms" PLATFORMS="$TEMP_SDK_DIR/platforms"
THE_PLATFORM=`echo $PLATFORMS/*` THE_PLATFORM=`echo $PLATFORMS/*`
PLATFORM_TOOLS=$THE_PLATFORM/tools PLATFORM_TOOLS=$THE_PLATFORM/tools
echo "Platform found: " $THE_PLATFORM echo "Platform found: " $THE_PLATFORM
@@ -97,23 +116,24 @@ function package() {
# USB Driver for ADB # USB Driver for ADB
mkdir -pv $DEST/usb_driver/x86 mkdir -pv $TEMP_SDK_DIR/usb_driver/x86
cp -rv development/host/windows/prebuilt/usb/driver/* $DEST/usb_driver/x86/ cp -rv development/host/windows/prebuilt/usb/driver/* $TEMP_SDK_DIR/usb_driver/x86/
mkdir -pv $DEST/usb_driver/amd64 mkdir -pv $TEMP_SDK_DIR/usb_driver/x86_64
cp -rv development/host/windows/prebuilt/usb/driver_amd_64/* $DEST/usb_driver/amd64/ cp -rv development/host/windows/prebuilt/usb/driver_amd_64/* $TEMP_SDK_DIR/usb_driver/x86_64/
# Remove obsolete stuff from tools & platform # Remove obsolete stuff from tools & platform
TOOLS="$DEST/tools" TOOLS="$TEMP_SDK_DIR/tools"
LIB="$DEST/tools/lib" LIB="$TEMP_SDK_DIR/tools/lib"
rm -v "$TOOLS"/{adb,emulator,traceview,draw9patch,hierarchyviewer,apkbuilder,ddms,dmtracedump,hprof-conv,mksdcard,sqlite3,android} rm -v "$TOOLS"/{adb,android,apkbuilder,ddms,dmtracedump,draw9patch,emulator}
rm -v --force "$LIB"/*.so "$LIB"/*.jnilib rm -v "$TOOLS"/{hierarchyviewer,hprof-conv,mksdcard,sqlite3,traceview}
rm -v "$PLATFORM_TOOLS"/{aapt,aidl,dx,dexdump} rm -vf "$LIB"/*.so "$LIB"/*.jnilib
rm -v "$PLATFORM_TOOLS"/{aapt,aidl,dx,dexdump}
# Copy all the new stuff in tools # Copy all the new stuff in tools
# Note: some tools are first copied here and then moved in platforms/<name>/tools/ # Note: some tools are first copied here and then moved in platforms/<name>/tools/
cp -v out/host/windows-x86/bin/*.{exe,dll} "$TOOLS" cp -v out/host/windows-x86/bin/*.{exe,dll} "$TOOLS"
cp -v prebuilt/windows/swt/*.{jar,dll} "$LIB" cp -v prebuilt/windows/swt/*.{jar,dll} "$LIB"
# If you want the emulator NOTICE in the tools dir, uncomment the following line: # If you want the emulator NOTICE in the tools dir, uncomment the following line:
# cp -v external/qemu/NOTICE "$TOOLS"/emulator_NOTICE.txt # cp -v external/qemu/NOTICE "$TOOLS"/emulator_NOTICE.txt
@@ -134,7 +154,7 @@ function package() {
JETCREATOR="$JET/JetCreator" JETCREATOR="$JET/JetCreator"
JETDEMOCONTENT="$JET/demo_content" JETDEMOCONTENT="$JET/demo_content"
JETLOGICTEMPLATES="$JET/logic_templates" JETLOGICTEMPLATES="$JET/logic_templates"
JETDOC="$DEST/docs/JetCreator" JETDOC="$TEMP_SDK_DIR/docs/JetCreator"
# need to rm these folders since a Mac SDK will have them and it might create a conflict # need to rm these folders since a Mac SDK will have them and it might create a conflict
rm -rfv "$JET" rm -rfv "$JET"
@@ -162,14 +182,18 @@ function package() {
# Fix EOL chars to make window users happy - fix all files at the top level only # Fix EOL chars to make window users happy - fix all files at the top level only
# as well as all batch files including those in platforms/<name>/tools/ # as well as all batch files including those in platforms/<name>/tools/
find "$DIST_DIR" -maxdepth 1 -type f -writable -print0 | xargs -0 unix2dos -D find "$TEMP_SDK_DIR" -maxdepth 1 -type f -writable -print0 | xargs -0 unix2dos -D
find "$DIST_DIR" -maxdepth 3 -name "*.bat" -type f -writable -print0 | xargs -0 unix2dos -D find "$TEMP_SDK_DIR" -maxdepth 3 -name "*.bat" -type f -writable -print0 | xargs -0 unix2dos -D
# Done.. Zip it # Done.. Zip it. Clean the temp folder ONLY if the zip worked (to easy debugging)
pushd "$DIST_DIR" > /dev/null pushd "$TEMP_DIR" > /dev/null
[ -e "$DEST_NAME_ZIP" ] && rm -rfv "$DEST_NAME_ZIP" [ -e "$DEST_NAME_ZIP" ] && rm -rfv "$DEST_NAME_ZIP"
zip -9r "$DEST_NAME_ZIP" "$DEST_NAME" && rm -rfv "$DEST_NAME" zip -9r "$DEST_NAME_ZIP" "$DEST_NAME" && rm -rfv "$DEST_NAME"
popd > /dev/null popd > /dev/null
# Now move the final zip from the temp dest to the final dist dir
mv -v "$TEMP_DIR/$DEST_NAME_ZIP" "$DIST_DIR/$DEST_NAME_ZIP"
echo "Done" echo "Done"
echo echo
echo "Resulting SDK is in $DIST_DIR/$DEST_NAME_ZIP" echo "Resulting SDK is in $DIST_DIR/$DEST_NAME_ZIP"
@@ -181,6 +205,7 @@ function package() {
} }
check check
status
build build
package package