blob: 2e00c127043b1a3dd9fd8293346ba237efb4203f [file] [log] [blame]
#!/bin/sh
set -e
if [[ "${DEPLOYMENT_LOCATION}" != "YES" ]]; then
echo "error: $(basename $0) should only be run for deployment-style (\"production\" / \"non-engineering\") builds."
exit 1
fi
if [[ "${USE_SYSTEM_CONTENT_PATH}" != "YES" || "${COPY_STAGED_FRAMEWORKS_TO_SECONDARY_PATH}" != "YES" ]]; then
echo "Skipping copying frameworks to secondary content path."
exit 0
fi
if [[ "${ACTION}" == "installapi" || "${ACTION}" == "installhdrs" ]]; then
echo "Skipping copying frameworks to secondary content path for installapi or installhdrs action."
exit 0
fi
if [[ -z "${FRAMEWORKS_TO_COPY_TO_SECONDARY_PATH}" && -z "${DYLIBS_TO_COPY_TO_SECONDARY_PATH}" ]]; then
echo "warning: Neither FRAMEWORKS_TO_COPY_TO_SECONDARY_PATH or DYLIBS_TO_COPY_TO_SECONDARY_PATH are set."
fi
if [[ -z "${SECONDARY_STAGED_FRAMEWORK_DIRECTORY}" ]]; then
echo "error: SECONDARY_STAGED_FRAMEWORK_DIRECTORY is not set."
exit 1
fi
function copy_product_to_destination_framework_directory
{
PRODUCT_COMPONENT=$1
# In deployment builds, BUILT_PRODUCTS_DIR doesn't point to the actual location of any products,
# but to a single folder of symlinks to all built products, regardless of whether they are actually
# being installed. We need to copy the actual products to the secondary content path, *not* just a symlink.
SOURCE_PRODUCT_PATH="$(readlink "${BUILT_PRODUCTS_DIR}/${PRODUCT_COMPONENT}")"
echo "Copying ${SOURCE_PRODUCT_PATH} to ${DESTINATION_FRAMEWORK_DIRECTORY}"
rsync -aE "${SOURCE_PRODUCT_PATH}" "${DESTINATION_FRAMEWORK_DIRECTORY}"
}
if [[ ! -z "${SECONDARY_STAGED_FRAMEWORK_DIRECTORY}" ]]; then
DESTINATION_FRAMEWORK_DIRECTORY="${DSTROOT}${SECONDARY_STAGED_FRAMEWORK_DIRECTORY}"
mkdir -p "${DESTINATION_FRAMEWORK_DIRECTORY}"
for FRAMEWORK_NAME in $(echo ${FRAMEWORKS_TO_COPY_TO_SECONDARY_PATH} | tr ' ' '\n')
do
FRAMEWORK_BUNDLE_NAME="${FRAMEWORK_NAME}.framework"
copy_product_to_destination_framework_directory ${FRAMEWORK_BUNDLE_NAME}
done
fi
if [[ ! -z "${DYLIBS_TO_COPY_TO_SECONDARY_PATH}" ]]; then
DESTINATION_FRAMEWORK_DIRECTORY="${DSTROOT}${SECONDARY_STAGED_FRAMEWORK_DIRECTORY}${STAGED_DYLIB_FRAMEWORK_PATH}"
mkdir -p "${DESTINATION_FRAMEWORK_DIRECTORY}"
for DYLIB in $(echo ${DYLIBS_TO_COPY_TO_SECONDARY_PATH} | tr ' ' '\n')
do
copy_product_to_destination_framework_directory ${DYLIB}
done
fi