forked from krzyzanowskim/ObjectivePGP
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild-frameworks.sh
executable file
·71 lines (56 loc) · 2.69 KB
/
build-frameworks.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/bash
set -e
PROJECT_NAME="ObjectivePGP"
PROJECT_FILE_PATH="${PROJECT_NAME}.xcodeproj"
TARGET_NAME="${PROJECT_NAME}"
CONFIGURATION="Release"
BUILD_DIR="/tmp/$(uuidgen).${PROJECT_NAME}"
SYMROOT="${BUILD_DIR}/Debug"
OBJROOT="${BUILD_DIR}/Intermediates"
PGP_FRAMEWORKS_DIR="Frameworks"
IPHONE_UNIVERSAL_LIB_DIR="${PGP_FRAMEWORKS_DIR}/ios"
IPHONE_UNIVERSAL_FRAMEWORK_DIR="${IPHONE_UNIVERSAL_LIB_DIR}/${TARGET_NAME}.framework"
function make_fat_library () {
# Will smash 2 static libs together
# make_fat_library in1 in2 out
xcrun lipo -create "${1}" "${2}" -output "${3}"
}
function platform_from_sdk () {
if [[ "${1}" =~ ([A-Za-z]+) ]]; then
echo ${BASH_REMATCH[1]}
fi
}
function build_framework {
sdk="${1}"
PLATFORM_NAME=$(platform_from_sdk "${sdk}")
xcrun xcodebuild -jobs 1 \
-project "${PROJECT_FILE_PATH}" \
-target "${TARGET_NAME}" \
-configuration "${CONFIGURATION}" \
-sdk "${sdk}" \
ONLY_ACTIVE_ARCH=NO \
BUILD_DIR="${BUILD_DIR}" \
SYMROOT="${SYMROOT}.${sdk}" \
OBJROOT="${OBJROOT}.${sdk}" \
PLATFORM_NAME="${PLATFORM_NAME}" \
build | xcpretty
}
# Build frameworks
SDKs=(`xcrun xcodebuild -showsdks | grep -Eo "iphone.*|macos.*"`)
for sdk in "${SDKs[@]}"; do
build_framework "${sdk}"
done
mkdir -p "${IPHONE_UNIVERSAL_LIB_DIR}"
make_fat_library "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${TARGET_NAME}.framework/${TARGET_NAME}" \
"${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${TARGET_NAME}.framework/${TARGET_NAME}" \
"${BUILD_DIR}/${CONFIGURATION}-iphoneos/${TARGET_NAME}.framework/${TARGET_NAME}.universal"
rm "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${TARGET_NAME}.framework/${TARGET_NAME}"
mv "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${TARGET_NAME}.framework/${TARGET_NAME}.universal" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${TARGET_NAME}.framework/${TARGET_NAME}"
ditto "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${TARGET_NAME}.framework" "${IPHONE_UNIVERSAL_LIB_DIR}/${TARGET_NAME}.framework"
ditto "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${TARGET_NAME}.framework.dSYM" "${IPHONE_UNIVERSAL_LIB_DIR}/${TARGET_NAME}.framework.dSYM"
ditto "${BUILD_DIR}/${CONFIGURATION}/${TARGET_NAME}.framework" "${PGP_FRAMEWORKS_DIR}/macosx/${TARGET_NAME}.framework"
ditto "${BUILD_DIR}/${CONFIGURATION}/${TARGET_NAME}.framework.dSYM" "${PGP_FRAMEWORKS_DIR}/macosx/${TARGET_NAME}.framework.dSYM"
cp "scripts/strip-frameworks.sh" "${IPHONE_UNIVERSAL_LIB_DIR}/${TARGET_NAME}.framework/strip-frameworks.sh"
cp "scripts/strip-frameworks.sh" "${PGP_FRAMEWORKS_DIR}/macosx/${TARGET_NAME}.framework/Versions/A/Resources/strip-frameworks.sh"
echo "${BUILD_DIR}"
rm -rf "${BUILD_DIR}"