Android Build Tools
This commit is contained in:
110
Android/android-ndk-r27d/prebuilt/windows-x86_64/bin/ndk-which
Normal file
110
Android/android-ndk-r27d/prebuilt/windows-x86_64/bin/ndk-which
Normal file
@ -0,0 +1,110 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Copyright (C) 2012 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.
|
||||
#
|
||||
|
||||
#
|
||||
# DEPRECATED
|
||||
#
|
||||
|
||||
# This script shows the path of the active toolchain components within
|
||||
# the ndk. This was necessary for GCC and binutils, where each ABI had
|
||||
# its own tools, but is not needed for LLVM-based tools which should be
|
||||
# used in preference.
|
||||
|
||||
usage() {
|
||||
echo "USAGE: ndk-which [--abi ABI] TOOL"
|
||||
echo "ABI is 'armeabi-v7a', 'arm64-v8a', 'x86', or 'x86_64'"
|
||||
echo "TOOL is 'gdb', 'objdump', 'readelf', etc."
|
||||
echo
|
||||
echo "Note that LLVM replacements for binutils tools work for all ABIs."
|
||||
exit 1
|
||||
}
|
||||
|
||||
error() {
|
||||
echo "The tool: $1 doesn't exist"
|
||||
echo "Possible choices are: "
|
||||
count=0
|
||||
for file in $2*
|
||||
do
|
||||
if [[ $file == *$1 ]]
|
||||
then
|
||||
echo $file
|
||||
((count = count + 1))
|
||||
fi
|
||||
done
|
||||
if [ $count -eq 0 ]
|
||||
then
|
||||
echo " None "
|
||||
fi
|
||||
exit 1
|
||||
}
|
||||
|
||||
ABI=armeabi-v7a
|
||||
|
||||
while (( "$#" )); do
|
||||
case "$1" in
|
||||
--abi)
|
||||
ABI=$2
|
||||
shift 2
|
||||
abis='^(armeabi-v7a|arm64-v8a|x86|x86_64)$'
|
||||
if [[ ! "$ABI" =~ $abis ]]; then usage; fi
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
TOOL=$1
|
||||
shift
|
||||
|
||||
if [ "$#" != 0 -o "$TOOL" == "" ]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
# This tool is installed in prebuilt/linux-x86_64/bin/.
|
||||
MYNDKDIR=`dirname $0`/../../..
|
||||
|
||||
# create a temporary skeleton project so that we can leverage build-local.mk
|
||||
TMPDIR=/tmp/ndk-which-$$
|
||||
mkdir -p $TMPDIR/jni
|
||||
cat >$TMPDIR/jni/Android.mk << "END_OF_FILE"
|
||||
include $(CLEAR_VARS)
|
||||
END_OF_FILE
|
||||
|
||||
get_build_var_for_abi() {
|
||||
if [ -z "$GNUMAKE" ] ; then
|
||||
GNUMAKE=make
|
||||
fi
|
||||
NDK_PROJECT_PATH=$TMPDIR $GNUMAKE --no-print-dir -f $MYNDKDIR/build/core/build-local.mk DUMP_$1 APP_ABI=$2
|
||||
}
|
||||
LLVM_TOOLCHAIN_PREFIX=`get_build_var_for_abi LLVM_TOOLCHAIN_PREFIX $ABI`
|
||||
TOOLCHAIN_PREFIX=`get_build_var_for_abi TOOLCHAIN_PREFIX $ABI`
|
||||
rm -Rf $TMPDIR
|
||||
|
||||
# fully qualified file name
|
||||
FQFN=${TOOLCHAIN_PREFIX}$TOOL
|
||||
|
||||
# use the host system's 'which' to decide/report if the file exists or not, and is executable
|
||||
if [ ! -f $FQFN ]
|
||||
then
|
||||
FQFN=${LLVM_TOOLCHAIN_PREFIX}llvm-$TOOL
|
||||
if [ ! -f $FQFN ]
|
||||
then
|
||||
error $TOOL $LLVM_TOOLCHAIN_PREFIX
|
||||
fi
|
||||
fi
|
||||
which "$FQFN"
|
||||
Reference in New Issue
Block a user