Files
lorry li 9976b3350d Upgraded to libcurl 8.4.0 to address vulnerabilities CVE-2023-38545 and CVE-2023-38546.
NOTE: We no longer need the patch file patches/curl-7.83.1/curl_dns_block_workaround.patch, libCurl now support to quick exit at the cost of a possible leak for the issue "Multi perform hangs waiting for threaded resolver":
curl_easy_setopt(curl, CURLOPT_QUICK_EXIT, 1L)
#jira UE-197640
#review @michael.kirzinger @rafa.lecina @zousar.shaker

[CL 29180909 by lorry li in 5.3 branch]
2023-10-27 09:39:22 -04:00

63 lines
2.5 KiB
Bash
Executable File

#!/bin/zsh -e
# Copyright Epic Games, Inc. All Rights Reserved.
# Usage: BuildLibForMac.command <LibName> <LibVersion> [--config=Config] [--arch=Arch]
zmodload zsh/zutil
LIB_NAME=${1:?Missing library name argument}
LIB_VERSION=${2:?Missing library version argument}
LIB_CONFIGS=(Debug Release)
LIB_ARCHS=(arm64 x86_64)
LIB_DEPLOYMENT_TARGET=(10.14)
LIB_MAKE_TARGET=("")
LIB_OUTPUT_NAME=(${LIB_NAME})
LIB_CMAKE_ARGS=("")
zparseopts -D -E -K - \
-config+:=LIB_CONFIGS \
-arch+:=LIB_ARCHS \
-deployment-target:=LIB_DEPLOYMENT_TARGET \
-make-target:=LIB_MAKE_TARGET \
-output-name:=LIB_OUTPUT_NAME \
-cmake-args:=LIB_CMAKE_ARGS \
|| exit 1
LIB_CONFIGS=(${LIB_CONFIGS#--config})
LIB_CONFIGS=(${LIB_CONFIGS#=})
LIB_ARCHS=(${LIB_ARCHS#--arch})
LIB_ARCHS=(${LIB_ARCHS#=})
LIB_DEPLOYMENT_TARGET=${LIB_DEPLOYMENT_TARGET[-1]#=}
LIB_MAKE_TARGET=${LIB_MAKE_TARGET[-1]#=}
LIB_OUTPUT_NAME=${LIB_OUTPUT_NAME[-1]#=}
LIB_CMAKE_ARGS=${LIB_CMAKE_ARGS[-1]#=}
LIB_DIR=${0:a:h:h:h:h}/${LIB_NAME}/${LIB_VERSION}/lib/Mac
BIN_DIR=${0:a:h:h:h:h}/${LIB_NAME}/${LIB_VERSION}/bin/Mac
ENGINE_ROOT=${0:a:h:h:h:h:h:h}
for Config in ${LIB_CONFIGS}; do
for Arch in ${LIB_ARCHS}; do
echo "Building ${LIB_NAME}-${LIB_VERSION} for Mac ${Arch} in ${Config}..."
"${ENGINE_ROOT}/Build/BatchFiles/RunUAT.command" BuildCMakeLib -TargetPlatform=Mac -TargetArchitecture=${Arch} -TargetLib=${LIB_NAME} -TargetLibVersion=${LIB_VERSION} -TargetConfigs=${Config} -LibOutputPath=lib -BinOutputPath=bin -CMakeGenerator=Makefile -MakeTarget="${LIB_MAKE_TARGET}" -CMakeAdditionalArguments="-DCMAKE_OSX_DEPLOYMENT_TARGET=${LIB_DEPLOYMENT_TARGET} ${LIB_CMAKE_ARGS}" -SkipCreateChangelist
done
if [ -d ${LIB_DIR}/${LIB_ARCHS[-1]}/${Config} ]; then
mkdir -p ${LIB_DIR}/${Config}
for Archive in ${LIB_DIR}/${LIB_ARCHS[-1]}/${Config}/*(N); do
Filename=$(basename ${Archive})
echo "Creating universal ${Filename}..."
lipo -create -output ${LIB_DIR}/${Config}/${Filename} ${LIB_DIR}/${^LIB_ARCHS}/${Config}/${Filename}
done
rm -rf ${LIB_DIR}/${^LIB_ARCHS}
fi
if [ -d ${BIN_DIR}/${LIB_ARCHS[-1]}/${Config} ]; then
mkdir -p ${BIN_DIR}/${Config}
for Archive in ${BIN_DIR}/${LIB_ARCHS[-1]}/${Config}/*(N); do
Filename=$(basename ${Archive})
echo "Creating universal ${Filename}..."
lipo -create -output ${BIN_DIR}/${Config}/${Filename} ${BIN_DIR}/${^LIB_ARCHS}/${Config}/${Filename}
done
rm -rf ${BIN_DIR}/${^LIB_ARCHS}
fi
done