authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-11-01 15:47:21-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-11-02 00:54:34-04:00
logc7b79284efc037b0e310a17bc32148e877124ddc
treed3807c6b1c1ce862250da06e10106de2e15705ab
parent1554dd9697b77b4fe4a309247982c3e29048f124
signaturelock-open Commit is signed but in an unrecognized format.

azure: build static macos


2 files changed, 111 insertions(+), 0 deletions(-)

ci/azure/macos_script created+98
...@@ -0,0 +1,98 @@
1#!/bin/sh
2
3set -x
4set -e
5
6brew install s3cmd gcc@8
7
8ZIGDIR="$(pwd)"
9CACHE_BASENAME="llvm+clang-7.0.0-macos-x86_64-gcc8-release-static"
10PREFIX="$HOME/$CACHE_BASENAME"
11TMPDIR="$HOME/tmpz"
12JOBS="-j2"
13
14# I tried using the system default compiler (clang), but it couldn't statically link libc++.
15# So we use gcc-8 from homebrew.
16export CC=gcc-8
17export CXX=g++-8
18
19rm -rf $PREFIX
20rm -rf $TMPDIR
21mkdir $TMPDIR
22
23cd $HOME
24HAVE_CACHE="true"
25wget "https://ziglang.org/builds/$CACHE_BASENAME.tar.xz" || HAVE_CACHE="false"
26if [ "${HAVE_CACHE}" = "true" ]; then
27 tar xf "$CACHE_BASENAME.tar.xz"
28else
29 if [ "${BUILD_REASON}" == "PullRequest" ]; then
30 echo "Need cached llvm+clang for pull request builds."
31 exit 1
32 fi
33
34 cd $TMPDIR
35 wget https://zlib.net/zlib-1.2.11.tar.xz
36 tar xf zlib-1.2.11.tar.xz
37 cd zlib-1.2.11/
38 mkdir build
39 cd build
40 cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=$PREFIX -DCMAKE_INSTALL_PREFIX=$PREFIX
41 make $JOBS install
42 rm $PREFIX/lib/libz*dylib
43
44 cd $TMPDIR
45 wget ftp://ftp.invisible-island.net/ncurses/ncurses.tar.gz
46 tar xf ncurses.tar.gz
47 cd ncurses-6.1/
48 ./configure --without-shared --prefix=$PREFIX
49 make $JOBS install
50
51 cd $TMPDIR
52 wget https://releases.llvm.org/7.0.0/llvm-7.0.0.src.tar.xz
53 tar xf llvm-7.0.0.src.tar.xz
54 cd llvm-7.0.0.src/
55 mkdir build
56 cd build
57 cmake .. -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_PREFIX_PATH=$PREFIX -DCMAKE_BUILD_TYPE=Release -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="WebAssembly;AVR;RISCV" -DLLVM_ENABLE_LIBXML2=OFF
58 make $JOBS install
59
60 cd $TMPDIR
61 wget https://releases.llvm.org/7.0.0/cfe-7.0.0.src.tar.xz
62 tar xf cfe-7.0.0.src.tar.xz
63 cd cfe-7.0.0.src/
64 mkdir build
65 cd build
66 cmake .. -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_PREFIX_PATH=$PREFIX -DCMAKE_BUILD_TYPE=Release
67 make $JOBS install
68
69 cd $HOME
70 tar cfJ "$CACHE_BASENAME.tar.xz" "$CACHE_BASENAME"
71 cp "$DOWNLOADSECUREFILE_SECUREFILEPATH" "$HOME/.s3cfg"
72 s3cmd put -P "$CACHE_BASENAME.tar.xz" "s3://ziglang.org/builds/$CACHE_BASENAME.tar.xz"
73fi
74
75cd $ZIGDIR
76mkdir build
77cd build
78cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=$PREFIX -DCMAKE_INSTALL_PREFIX=$(pwd)/release -DZIG_STATIC=ON
79make $JOBS install
80release/bin/zig build --build-file ../build.zig test
81
82if [ "${BUILD_REASON}" != "PullRequest" ]; then
83 mv ../LICENSE release/
84 mv ../zig-cache/langref.html release/
85 mv release/bin/zig release/
86 rmdir release/bin
87
88 VERSION=$(release/zig version)
89 DIRNAME="zig-macos-x86_64-$VERSION"
90 TARBALL="$DIRNAME.tar.xz"
91 mv release "$DIRNAME"
92 tar cfJ "$TARBALL" "$DIRNAME"
93
94 mv "$DOWNLOADSECUREFILE_SECUREFILEPATH" "$HOME/.s3cfg"
95 s3cmd put -P "$TARBALL" s3://ziglang.org/builds/
96 touch empty
97 s3cmd put -P empty s3://ziglang.org/builds/zig-macos-x86_64-$BUILD_SOURCEBRANCHNAME.tar.xz --add-header="Cache-Control: max-age=0, must-revalidate" --add-header="x-amz-website-redirect-location:/builds/$TARBALL"
98fi
ci/azure/pipelines.yml created+13
...@@ -0,0 +1,13 @@
1jobs:
2- job: Build
3 pool:
4 vmImage: 'macOS 10.13'
5
6 timeoutInMinutes: 360
7
8 steps:
9 - task: DownloadSecureFile@1
10 inputs:
11 secureFile: s3cfg
12 - script: ci/azure/macos_script
13 displayName: 'macOS build and test'