#!/usr/bin/env bash [ ! -x swift/utils/build-script ] && exit 1 # Creates a redistributable toolchain package SRC_DIR=$PWD YEAR=$(date +"%Y") MONTH=$(date +"%m") DAY=$(date +"%d") TOOLCHAIN_VERSION="swift-LOCAL-${YEAR}-${MONTH}-${DAY}-a" ARCHIVE="${TOOLCHAIN_VERSION}-osx.tar.gz" SYM_ARCHIVE="${TOOLCHAIN_VERSION}-osx-symbols.tar.gz" BUNDLE_PREFIX=${1:?Please specify bundle prefix e.g. $0 local.swift} BUNDLE_IDENTIFIER="${BUNDLE_PREFIX}.${YEAR}${MONTH}${DAY}" DISPLAY_NAME_SHORT="Local Swift Development Snapshot" DISPLAY_NAME="${DISPLAY_NAME_SHORT} ${YEAR}-${MONTH}-${DAY}" TOOLCHAIN_NAME="${TOOLCHAIN_VERSION}" SWIFT_INSTALLABLE_PACKAGE="${SRC_DIR}/${ARCHIVE}" SWIFT_INSTALL_DIR="${SRC_DIR}/swift-nightly-install" SWIFT_INSTALL_SYMROOT="${SRC_DIR}/swift-nightly-symroot" SWIFT_TOOLCHAIN_DIR="/Library/Developer/Toolchains/${TOOLCHAIN_NAME}.xctoolchain" SYMBOLS_PACKAGE="${SRC_DIR}/${SYM_ARCHIVE}" SNAPSHOT_DATE=`date "+%Y-%m-%d"` HASH_LLVM=`(cd llvm;git rev-parse --short HEAD)` HASH_CLANG=`(cd clang;git rev-parse --short HEAD)` HASH_SWIFT=`(cd swift;git rev-parse --short HEAD)` HASH_INFO="LLVM ${HASH_LLVM}, Clang ${HASH_CLANG}, Swift ${HASH_SWIFT}" BUNDLE_IDENTIFIER="com.obsolete-software.swift.${SNAPSHOT_DATE}" # "CFBundleIdentifier for xctoolchain info plist" DISPLAY_NAME="Swift 3.0 snapshot (${HASH_INFO})" # "Display Name for xctoolcain info plist" XCTOOLCHAIN_NAME="swift-3.0-SNAPSHOT-${SNAPSHOT_DATE}" # "Directory name for xctoolchain" VERSION="${XCTOOLCHAIN_NAME}" # "Version for xctoolchain info plist and installer pkg" CERT_NAME="YOUR NAME" APPLICATION_CERT="Developer ID Application: ${CERT_NAME}" # "Application Cert name to codesign xctoolchain" INSTALLER_CERT="Developer ID Installer: ${CERT_NAME}" # "Installer Cert name to create installer pkg" INSTALLER_PACKAGE="`pwd`/build/${XCTOOLCHAIN_NAME}.pkg" # "The path to installer pkg" swift/utils/build-script --preset-file=swift/utils/build-presets.ini --preset-file=./my-presets.ini \ --preset=buildbot_osx_package_create_installer \ install_destdir=/tmp/install \ install_symroot=/tmp/symroot \ install_toolchain_dir=/Library/Developer/Toolchains/${XCTOOLCHAIN_NAME}.xctoolchain \ installable_package="`pwd`/build/${XCTOOLCHAIN_NAME}.tar.gz" \ symbols_package="`pwd`/build/symbols-${XCTOOLCHAIN_NAME}.tar.gz" \ darwin_toolchain_bundle_identifier="${BUNDLE_IDENTIFIER}" \ darwin_toolchain_display_name="${DISPLAY_NAME}" \ darwin_toolchain_xctoolchain_name="${XCTOOLCHAIN_NAME}" \ darwin_toolchain_version="${VERSION}" \ darwin_toolchain_application_cert="${APPLICATION_CERT}" \ darwin_toolchain_installer_cert="${INSTALLER_CERT}" \ darwin_toolchain_installer_package="${INSTALLER_PACKAGE}" \ darwin_toolchain_alias="Local"