| #!/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}" |