ObjFW  Check-in [5a311cc1bf]

Overview
Comment:Add script to build universal iOS lib + framework
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 5a311cc1bfda65d14e2e66034fd53ce8bad7ba98667cd8e0ee181a58c78a9af0
User & Date: js on 2017-10-15 22:06:59
Other Links: manifest | tags
Context
2017-10-15
22:20
bridge: Symbols to force references to categories check-in: 07e85b7edb user: js tags: trunk
22:06
Add script to build universal iOS lib + framework check-in: 5a311cc1bf user: js tags: trunk
20:55
bridge: Use @import ObjFW when using modules check-in: fc64538f06 user: js tags: trunk
Changes

Added scripts/build_ios.sh version [65fb800552].

















































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/bin/sh
set -e

if test x"$1" = x""; then
	echo "Usage: $0 destination"
	exit 1
fi

cd ..

prefix="$1"
export IPHONEOS_DEPLOYMENT_TARGET="9.0"

msg() {
	tput setaf 6
	tput bold
	echo "$@"
	tput sgr0
}

msg "This could take a while - you should probably grab a coffee."

msg "Running autogen.sh"
./autogen.sh

build() {
	objc="$(xcrun -f clang) --sysroot $(xcode-select -p)"
	objc="$objc/Platforms/$3.platform/Developer/SDKs/$3.sdk"

	msg "make distclean"
	test -f buildsys.mk && make distclean

	msg "Configuring for $1"
	./configure			\
		--host=$2		\
		--prefix=$prefix/$1	\
		--enable-static		\
		OBJC="$objc -arch $1"

	msg "Building for $1"
	make -C src libobjfw.a ObjFW.framework
	make -C src/bridge libobjfw_bridge.a ObjFW_Bridge.framework
	make -C src install
	mkdir -p $prefix/$1/Frameworks
	cp -R src/ObjFW.framework src/bridge/ObjFW_Bridge.framework \
		$prefix/$1/Frameworks
	make distclean
}

build armv7 arm-apple-darwin iPhoneOS
build arm64 arm64-apple-darwin iPhoneOS
build x86_64 x86_64-apple-darwin iPhoneSimulator

msg "Sanity checking"
diff -Nru $prefix/armv7/include $prefix/arm64/include
diff -Nru $prefix/armv7/Frameworks/ObjFW.framework/Headers \
	$prefix/arm64/Frameworks/ObjFW.framework/Headers
diff -Nru $prefix/armv7/Frameworks/ObjFW_Bridge.framework/Headers \
	$prefix/arm64/Frameworks/ObjFW_Bridge.framework/Headers

mv $prefix/armv7/include $prefix/
mkdir -p						\
	$prefix/lib					\
	$prefix/Frameworks/ObjFW.framework		\
	$prefix/Frameworks/ObjFW_Bridge.framework

combine() {
	msg "Combining $1"
	lipo \
		$prefix/armv7/$1 \
		$prefix/arm64/$1 \
		$prefix/x86_64/$1 \
		-create -output $prefix/$1
}

combine lib/libobjfw.a
combine lib/libobjfw_bridge.a
combine Frameworks/ObjFW.framework/ObjFW
combine Frameworks/ObjFW_Bridge.framework/ObjFW_Bridge
rm $prefix/armv7/Frameworks/ObjFW.framework/ObjFW
mv $prefix/armv7/Frameworks/ObjFW.framework/* \
	$prefix/Frameworks/ObjFW.framework/
rm $prefix/armv7/Frameworks/ObjFW_Bridge.framework/ObjFW_Bridge
mv $prefix/armv7/Frameworks/ObjFW_Bridge.framework/* \
	$prefix/Frameworks/ObjFW_Bridge.framework/

msg "Cleaning up"
rm -fr $prefix/armv7 $prefix/arm64 $prefix/x86_64