mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
42 lines
1.7 KiB
Bash
Executable File
42 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
function usage {
|
|
echo "usage: $0 OVERLAY SDK TARGET"
|
|
echo "SDK: OSX,IOS,IOS_SIMULATOR,TVOS,TVOS_SIMULATOR,WATCHOS,WATCHOS_SIMULATOR"
|
|
echo "TARGET: macosx,iphoneos,iphonesimulator,appletvos,appletvsimulator,watchos,watchsimulator"
|
|
echo "example: ./utils/build-overlay AVFoundation OSX macosx"
|
|
exit 1
|
|
}
|
|
|
|
OVERLAY=$1; SDK=$2; TARGET=$3
|
|
if [ ! "$OVERLAY" ]; then echo "Overlay param required"; usage; fi
|
|
if [ ! "$SDK" ]; then echo "SDK param required"; usage; fi
|
|
if [ ! "$TARGET" ]; then echo "TARGET param required"; usage; fi
|
|
|
|
function absolute_path { if [[ "$1" == /* ]]; then echo "$1"; else echo "$PWD/$1"; fi }
|
|
function dir_name { echo "${1%/*}"; }
|
|
function file_name { echo "${1##*/}"; }
|
|
script_absolute_path=$(absolute_path "${BASH_SOURCE[@]}")
|
|
script_dir_name=$(dir_name "${script_absolute_path}")
|
|
script_file_name=$(file_name "${script_absolute_path}")
|
|
overlay_source_path="${script_dir_name}/../stdlib/public/SDK/$OVERLAY"
|
|
build_dir="${script_dir_name}/../../build/${OVERLAY}-${SDK}"
|
|
swift_source_root="${script_dir_name}/../../../"
|
|
|
|
mkdir -p "$build_dir" && cd "$build_dir" || exit
|
|
|
|
echo "OVERLAY: ${OVERLAY}"
|
|
echo "SDK: ${SDK}"
|
|
echo "TARGET: ${TARGET}"
|
|
echo "script_absolute_path: ${script_absolute_path}"
|
|
echo "script_dir_name: ${script_dir_name}"
|
|
echo "script_file_name: ${script_file_name}"
|
|
echo "overlay_source_path: ${overlay_source_path}"
|
|
echo "swift_source_root: ${swift_source_root}"
|
|
echo "build_dir: ${build_dir}"
|
|
|
|
toolchain=$(xcode-select -p)
|
|
cmake -G Ninja -DSWIFT_SOURCE_ROOT="${swift_source_root}" -DSWIFT_DEST_ROOT="${build_dir}/root" -DSWIFT_HOST_VARIANT_SDK="${SDK}" -DTOOLCHAIN_DIR="${toolchain}/Toolchains/XcodeDefault.xctoolchain" "${overlay_source_path}"
|
|
NINJA_TARGET="swift${OVERLAY}-${TARGET}"
|
|
ninja "${NINJA_TARGET}"
|