#!/usr/bin/env bash
#===--- toolchain-codesign - Creates code signed xctoolchain ---------------===#
#
## 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
#
#===------------------------------------------------------------------------===#

DARWIN_TOOLCHAIN_APPLICATION_CERT=$1
TOOLCHAIN_PREFIX=$2

codesign -f --deep -s "${DARWIN_TOOLCHAIN_APPLICATION_CERT}" "${TOOLCHAIN_PREFIX}"
