mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
80 lines
2.3 KiB
Bash
Executable File
80 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
#===--- swift-stdlib-tool - stand-in for the real swift-stdlib-tool --------===#
|
|
#
|
|
## This source file is part of the Swift.org open source project
|
|
##
|
|
## Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
|
|
## Licensed under Apache License v2.0 with Runtime Library Exception
|
|
##
|
|
## See http://swift.org/LICENSE.txt for license information
|
|
## See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
|
#
|
|
#===------------------------------------------------------------------------===#
|
|
|
|
# swift-stdlib-tool substitute for toolchains.
|
|
#
|
|
# This stand-in for swift-stdlib-tool runs the real swift-stdlib-tool
|
|
# from the XcodeDefault toolchain in $DEVELOPER_DIR.
|
|
|
|
self_path=$0
|
|
|
|
tool="$DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-stdlib-tool"
|
|
if [ ! -f "$tool" -o ! -x "$tool" ]; then
|
|
echo "$self_path: error: couldn't find swift-stdlib-tool at $tool"
|
|
exit 1
|
|
fi
|
|
|
|
# swift-stdlib-tool sometimes looks for stdlib files relative to itself.
|
|
# Perform that lookup here and pass the results to the real swift-stdlib-tool.
|
|
|
|
argv=("$@")
|
|
|
|
# Look for an existing --source-libraries argument.
|
|
# Look for a --platform argument.
|
|
have_source_libraries=NO
|
|
platform=""
|
|
set -- "$@"
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
--source-libraries)
|
|
shift
|
|
if [[ $# -gt 0 ]]; then
|
|
have_source_libraries=YES
|
|
fi
|
|
;;
|
|
--platform)
|
|
shift
|
|
if [[ $# -gt 0 ]]; then
|
|
platform="$1"
|
|
fi
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
|
|
if [[ "$have_source_libraries" = YES ]]; then
|
|
# --source-libraries was already passed. Nothing to do.
|
|
true
|
|
elif [[ "$platform" = "" ]]; then
|
|
# platform is unset. Can't continue.
|
|
echo "$self_path: error: neither --platform nor --source-libraries is set."
|
|
exit 1
|
|
else
|
|
# Construct a new --source-libraries argument.
|
|
bindir=$(dirname "$self_path")
|
|
usrdir=$(dirname "$bindir")
|
|
source_libraries="$usrdir/lib/swift/$platform"
|
|
if [ ! -d "$source_libraries" -o ! -x "$source_libraries" ]; then
|
|
echo "$self_path: error: platform path inaccessible: $source_libraries"
|
|
exit 1
|
|
fi
|
|
argv+=("--source-libraries")
|
|
argv+=("$source_libraries")
|
|
fi
|
|
|
|
# Log and run the tool with the new arguments.
|
|
echo "$tool" "${argv[@]}"
|
|
exec "$tool" "${argv[@]}"
|