Use atree for the Windows SDK. Strip binaries.

This moves the copy/strip/rm logic for the Windows SDK
from the patch_windows_sdk.sh to a regular sdk-windows-x86.atree.

The bash script is still here to invoke atree and do whatever
cleanup we might want to do later.

This should make it easier to maintain the Windows SDK
by providing a structure similar to tools.atree.

This change requires build.git Change-Id: I22aae7a8 to
have rm/strip support in atree.

Change-Id: If937eef4a819e7da21aa993459111fc5d99474a8
This commit is contained in:
Raphael
2011-09-14 21:12:15 -07:00
parent 3eed420c81
commit e07f59a612
4 changed files with 89 additions and 55 deletions

View File

@@ -0,0 +1,60 @@
#
# Copyright (C) 2011 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 the *Windows* SDK.
#
# The Windows SDK is based on the Linux one so in this file we
# need to remove Linux binaries and replace them by their
# Windows counterparts.
#
# This file only includes platform-dependent files.
# Tools-dependent files (and not tied to a specific platform)
# are controled by sdk/build/tools.windows.atree.
#
rm platform-tools/adb
bin/adb.exe strip platform-tools/adb.exe
bin/AdbWinUsbApi.dll platform-tools/AdbWinUsbApi.dll
bin/AdbWinApi.dll platform-tools/AdbWinApi.dll
rm platform-tools/aapt
bin/aapt.exe strip platform-tools/aapt.exe
rm platform-tools/aidl
bin/aidl.exe strip platform-tools/aidl.exe
rm platform-tools/dx
dalvik/dx/etc/dx.bat platform-tools/dx
rm platform-tools/dexdump
bin/dexdump.exe strip platform-tools/dexdump.exe
rm platform-tools/llvm-rs-cc
bin/llvm-rs-cc.exe strip platform-tools/llvm-rs-cc.exe
prebuilt/windows/swt/swt.jar tools/lib/x86/swt.jar
prebuilt/windows-x86_64/swt/swt.jar tools/lib/x86_64/swt.jar
external/sonivox/jet_tools/JetCreator tools/Jet/JetCreator
external/sonivox/jet_tools/JetCreator_content tools/Jet/demo_content
external/sonivox/jet_tools/logic_templates tools/Jet/logic_templates
prebuilt/windows/jetcreator/EASDLL.dll tools/Jet/JetCreator/EASDLL.dll
external/sonivox/docs/JET_Authoring_Guidelines.html docs/JetCreator/JET_Authoring_Guidelines.html
external/sonivox/docs/JET_Authoring_Guidelines_files docs/JetCreator/JET_Authoring_Guidelines_files
external/sonivox/docs/JET_Creator_User_Manual.html docs/JetCreator/JET_Creator_User_Manual.html
external/sonivox/docs/JET_Creator_User_Manual_files docs/JetCreator/JET_Creator_User_Manual_files

View File

@@ -38,10 +38,10 @@ frameworks/base/docs/docs-redirect.html documentation.html
##############################################################################
# host tools from out/host/$(HOST_OS)-$(HOST_ARCH)/
bin/adb platform-tools/adb
bin/aapt platform-tools/aapt
bin/aidl platform-tools/aidl
bin/llvm-rs-cc platform-tools/llvm-rs-cc
bin/adb strip platform-tools/adb
bin/aapt strip platform-tools/aapt
bin/aidl strip platform-tools/aidl
bin/llvm-rs-cc strip platform-tools/llvm-rs-cc
# dx
bin/dx platform-tools/dx

View File

@@ -1,4 +1,19 @@
#!/bin/bash
#
# Copyright (C) 2009 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.
#
# This script takes a Linux SDK, cleans it and injects the necessary Windows
# binaries needed by the SDK. The script has 2 parts:
@@ -53,55 +68,12 @@ if [[ -n "$USB_DRIVER_HOOK" ]]; then
$USB_DRIVER_HOOK $V $TEMP_SDK_DIR $TOPDIR
fi
# Remove obsolete stuff from tools & platform
TOOLS=$TEMP_SDK_DIR/tools
PLATFORM_TOOLS=$TEMP_SDK_DIR/platform-tools
LIB=$TEMP_SDK_DIR/tools/lib
rm $V $TOOLS/{dmtracedump,etc1tool,hprof-conv,sqlite3,zipalign}
rm $V $LIB/*/swt.jar
rm $V $PLATFORM_TOOLS/{adb,aapt,aidl,dx,dexdump,llvm-rs-cc}
# Copy all the new stuff in tools
# Note: some tools are first copied here and then moved in platform-tools
cp $V $WIN_OUT_DIR/host/windows-x86/bin/*.{exe,dll} $TOOLS/
# Remove some tools we don't want to take in the SDK
rm $V -f $TOOLS/{fastboot.exe,rs-spec-gen.exe,tblgen.exe}
mkdir -pv $LIB/x86
cp $V ${TOPDIR}prebuilt/windows/swt/swt.jar $LIB/x86/
mkdir -pv $LIB/x86_64
cp $V ${TOPDIR}prebuilt/windows-x86_64/swt/swt.jar $LIB/x86_64/
# Put the JetCreator tools, content and docs (not available in the linux SDK)
JET=$TOOLS/Jet
JETCREATOR=$JET/JetCreator
JETDEMOCONTENT=$JET/demo_content
JETLOGICTEMPLATES=$JET/logic_templates
JETDOC=$TEMP_SDK_DIR/docs/JetCreator
# need to rm these folders since a Mac SDK will have them and it might create a conflict
rm -rf $V $JET
rm -rf $V $JETDOC
# now create fresh folders for JetCreator
mkdir $V $JET
mkdir $V $JETDOC
cp -r $V ${TOPDIR}external/sonivox/jet_tools/JetCreator $JETCREATOR/
cp -r $V ${TOPDIR}external/sonivox/jet_tools/JetCreator_content $JETDEMOCONTENT/
cp -r $V ${TOPDIR}external/sonivox/jet_tools/logic_templates $JETLOGICTEMPLATES/
chmod $V -R u+w $JETCREATOR # fixes an issue where Cygwin might copy the above as u+rx only
cp $V ${TOPDIR}prebuilt/windows/jetcreator/EASDLL.dll $JETCREATOR/
cp $V ${TOPDIR}external/sonivox/docs/JET_Authoring_Guidelines.html $JETDOC/
cp -r $V ${TOPDIR}external/sonivox/docs/JET_Authoring_Guidelines_files $JETDOC/
cp $V ${TOPDIR}external/sonivox/docs/JET_Creator_User_Manual.html $JETDOC/
cp -r $V ${TOPDIR}external/sonivox/docs/JET_Creator_User_Manual_files $JETDOC/
# Copy or move platform specific tools to the default platform.
cp $V ${TOPDIR}dalvik/dx/etc/dx.bat $PLATFORM_TOOLS/
mv $V $TOOLS/{adb.exe,aapt.exe,aidl.exe,dexdump.exe} $PLATFORM_TOOLS/
mv $V $TOOLS/Adb*.dll $PLATFORM_TOOLS/
mv $V $TOOLS/llvm-rs-cc.exe $PLATFORM_TOOLS/llvm-rs-cc.exe
# Invoke atree to copy the files
atree -f ${TOPDIR}development/build/sdk-windows-x86.atree \
-I $WIN_OUT_DIR/host/windows-x86 \
-I ${TOPDIR:-.} \
-o $TEMP_SDK_DIR
# Fix EOL chars to make window users happy - fix all files at the top level
# as well as all batch files including those in platform-tools/

View File

@@ -22,10 +22,13 @@ ifeq ($(strip $(shell which unix2dos todos 2>/dev/null)),)
$(error Need a unix2dos command. Please 'apt-get install tofrodos')
endif
# Define WIN_SDK_TARGETS, the list of targets located in topdir/sdk
# and are tools-dependent, not platform-dependent.
include $(TOPDIR)sdk/build/windows_sdk_tools.mk
# This is the list of target that we want to generate as
# Windows executables.
# This is the list of targets that we want to generate as
# Windows executables. All the targets specified here are located in
# the topdir/development directory and are somehow platform-dependent.
WIN_TARGETS := \
aapt adb aidl \
etc1tool \
@@ -84,7 +87,6 @@ $(WIN_SDK_ZIP): winsdk-tools sdk
$(hide) USB_DRIVER_HOOK=$(USB_DRIVER_HOOK) \
$(TOPDIR)development/build/tools/patch_windows_sdk.sh $(subst @,-q,$(hide)) \
$(WIN_SDK_DIR)/$(WIN_SDK_NAME) $(OUT_DIR) $(TOPDIR)
$(hide) strip --strip-all $(WIN_SDK_DIR)/$(WIN_SDK_NAME)/platform-tools/llvm-rs-cc.exe
$(hide) $(TOPDIR)sdk/build/patch_windows_sdk.sh $(subst @,-q,$(hide)) \
$(WIN_SDK_DIR)/$(WIN_SDK_NAME) $(OUT_DIR) $(TOPDIR)
$(hide) ( \