-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathbuild-macos.sh
executable file
·74 lines (63 loc) · 1.86 KB
/
build-macos.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
72
73
#!/bin/sh
COMMON="-DCMAKE_OSX_DEPLOYMENT_TARGET=10.8 -DCMAKE_BUILD_TYPE=Release -DGLFW_BUILD_TESTS=NO -DGLFW_BUILD_EXAMPLES=NO -DGLFW_BUILD_DOCS=NO"
SHARED="$COMMON -DBUILD_SHARED_LIBS=YES"
STATIC="$COMMON -DBUILD_SHARED_LIBS=NO"
GLFWDIR="$1"
GLFWVER="$2"
if [ ! -d "$GLFWDIR" ]; then
echo "$GLFWDIR: Directory not found"
echo "Usage: $(basename $0) <glfwpath> <version>"
exit 1
fi
if [ -z "$GLFWVER" ]; then
echo "No version specified"
echo "Usage: $(basename $0) <glfwpath> <version>"
exit 1
fi
build_docs()
{
BUILDDIR="build/docs"
cmake -E make_directory $BUILDDIR
cmake -S "$GLFWDIR" -B $BUILDDIR -DGLFW_BUILD_COCOA=0
cmake --build $BUILDDIR --target docs
cmake -E copy_directory $BUILDDIR/docs/html glfw-$GLFWVER/docs/html
cmake -E copy_directory $BUILDDIR/docs/html glfw-$GLFWVER.bin.MACOS/docs/html
}
build_static()
{
BUILDDIR="build/macos-$ARCHNAME-static"
cmake -E make_directory $BUILDDIR
cmake -E make_directory $TARGETDIR
cmake -S "$GLFWDIR" -B $BUILDDIR -DCMAKE_OSX_ARCHITECTURES=$ARCHS $STATIC
cmake --build $BUILDDIR
cmake -E copy $BUILDDIR/src/libglfw3.a $TARGETDIR
}
build_dynamic()
{
BUILDDIR="build/macos-$ARCHNAME-dynamic"
cmake -E make_directory $BUILDDIR
cmake -E make_directory $TARGETDIR
cmake -S "$GLFWDIR" -B $BUILDDIR -DCMAKE_OSX_ARCHITECTURES=$ARCHS $SHARED
cmake --build $BUILDDIR
cmake -E copy $BUILDDIR/src/libglfw.3.dylib $TARGETDIR
}
# HTML documentation
build_docs
# macOS x86_64
ARCHNAME="x86_64"
TARGETDIR="glfw-$GLFWVER.bin.MACOS/lib-$ARCHNAME"
ARCHS="x86_64"
build_static
build_dynamic
# macOS arm64
ARCHNAME="arm64"
TARGETDIR="glfw-$GLFWVER.bin.MACOS/lib-$ARCHNAME"
ARCHS="arm64"
build_static
build_dynamic
# macOS x86_64/arm64 Universal
ARCHNAME="universal"
TARGETDIR="glfw-$GLFWVER.bin.MACOS/lib-$ARCHNAME"
ARCHS="x86_64;arm64"
build_static
build_dynamic