| author | |
| committer | |
| log | 87dae0ce98fde1957a9290c22866b3101ce419d8 |
| tree | 882bd176cfa914046154347b68e0adedf6af8bbf |
| parent | d1f60a63bdd7bd838c210a888dfe23c9ea9f2669 |
| parent | 05cd8936c885d2b538091eb814724472c73ec8b8 |
| signature |
cmake: LLVM needs to link against zlib10 files changed, 66 insertions(+), 21 deletions(-)
CMakeLists.txt+7-3| ... | ... | @@ -67,6 +67,7 @@ message("Configuring zig version ${ZIG_VERSION}") |
| 67 | 67 | |
| 68 | 68 | set(ZIG_STATIC off CACHE BOOL "Attempt to build a static zig executable (not compatible with glibc)") |
| 69 | 69 | set(ZIG_STATIC_LLVM off CACHE BOOL "Prefer linking against static LLVM libraries") |
| 70 | set(ZIG_STATIC_ZLIB off CACHE BOOL "Prefer linking against static zlib") | |
| 70 | 71 | set(ZIG_PREFER_CLANG_CPP_DYLIB off CACHE BOOL "Try to link against -lclang-cpp") |
| 71 | 72 | set(ZIG_USE_CCACHE off CACHE BOOL "Use ccache if available") |
| 72 | 73 | |
| ... | ... | @@ -75,7 +76,8 @@ if(CCACHE_PROGRAM AND ZIG_USE_CCACHE) |
| 75 | 76 | endif() |
| 76 | 77 | |
| 77 | 78 | if(ZIG_STATIC) |
| 78 | set(ZIG_STATIC_LLVM "on") | |
| 79 | set(ZIG_STATIC_LLVM ON) | |
| 80 | set(ZIG_STATIC_ZLIB ON) | |
| 79 | 81 | endif() |
| 80 | 82 | |
| 81 | 83 | string(REGEX REPLACE "\\\\" "\\\\\\\\" ZIG_LIBC_LIB_DIR_ESCAPED "${ZIG_LIBC_LIB_DIR}") |
| ... | ... | @@ -101,11 +103,13 @@ find_package(llvm) |
| 101 | 103 | find_package(clang) |
| 102 | 104 | find_package(lld) |
| 103 | 105 | |
| 104 | if(APPLE AND ZIG_STATIC) | |
| 106 | if(ZIG_STATIC_ZLIB) | |
| 105 | 107 | list(REMOVE_ITEM LLVM_LIBRARIES "-lz") |
| 106 | find_library(ZLIB NAMES libz.a z zlib libz) | |
| 108 | find_library(ZLIB NAMES libz.a libzlibstatic.a z zlib libz) | |
| 107 | 109 | list(APPEND LLVM_LIBRARIES "${ZLIB}") |
| 110 | endif() | |
| 108 | 111 | |
| 112 | if(APPLE AND ZIG_STATIC) | |
| 109 | 113 | list(REMOVE_ITEM LLVM_LIBRARIES "-lcurses") |
| 110 | 114 | find_library(CURSES NAMES libcurses.a curses libcurses libncurses.a ncurses libncurses) |
| 111 | 115 | list(APPEND LLVM_LIBRARIES "${CURSES}") |
ci/azure/linux_script+1-1| ... | ... | @@ -9,7 +9,7 @@ sudo apt-get install -y cmake s3cmd tidy |
| 9 | 9 | ZIGDIR="$(pwd)" |
| 10 | 10 | ARCH="$(uname -m)" |
| 11 | 11 | TARGET="$ARCH-linux-musl" |
| 12 | CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.8.0-dev.2168+2d1196773" | |
| 12 | CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.8.0-dev.2703+c12704a33" | |
| 13 | 13 | PREFIX="$HOME/$CACHE_BASENAME" |
| 14 | 14 | MCPU="baseline" |
| 15 | 15 | JOBS="-j$(nproc)" |
ci/azure/macos_arm64_script+3-3| ... | ... | @@ -10,13 +10,13 @@ ZIGDIR="$(pwd)" |
| 10 | 10 | HOST_ARCH="x86_64" |
| 11 | 11 | HOST_TARGET="$HOST_ARCH-macos-gnu" |
| 12 | 12 | HOST_MCPU="baseline" |
| 13 | HOST_CACHE_BASENAME="zig+llvm+lld+clang-$HOST_TARGET-0.8.0-dev.2168+2d1196773" | |
| 13 | HOST_CACHE_BASENAME="zig+llvm+lld+clang-$HOST_TARGET-0.8.0-dev.2703+c12704a33" | |
| 14 | 14 | HOST_PREFIX="$HOME/$HOST_CACHE_BASENAME" |
| 15 | 15 | |
| 16 | 16 | ARCH="aarch64" |
| 17 | 17 | TARGET="$ARCH-macos-gnu" |
| 18 | MCPU="cyclone" | |
| 19 | CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.8.0-dev.2168+2d1196773" | |
| 18 | MCPU="apple_a14" | |
| 19 | CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.8.0-dev.2703+c12704a33" | |
| 20 | 20 | PREFIX="$HOME/$CACHE_BASENAME" |
| 21 | 21 | |
| 22 | 22 | JOBS="-j2" |
ci/azure/macos_script+1-1| ... | ... | @@ -9,7 +9,7 @@ ZIGDIR="$(pwd)" |
| 9 | 9 | ARCH="x86_64" |
| 10 | 10 | TARGET="$ARCH-macos-gnu" |
| 11 | 11 | MCPU="baseline" |
| 12 | CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.8.0-dev.2168+2d1196773" | |
| 12 | CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.8.0-dev.2703+c12704a33" | |
| 13 | 13 | PREFIX="$HOME/$CACHE_BASENAME" |
| 14 | 14 | JOBS="-j2" |
| 15 | 15 |
ci/azure/windows_msvc_install+2-2| ... | ... | @@ -7,5 +7,5 @@ pacman -Suy --needed --noconfirm |
| 7 | 7 | pacman -S --needed --noconfirm wget p7zip python3-pip tar xz |
| 8 | 8 | |
| 9 | 9 | pip install s3cmd |
| 10 | wget -nv "https://ziglang.org/deps/llvm%2bclang%2blld-12.0.0-x86_64-windows-msvc-release-mt.tar.xz" | |
| 11 | tar xf llvm+clang+lld-12.0.0-x86_64-windows-msvc-release-mt.tar.xz | |
| 10 | wget -nv "https://ziglang.org/deps/llvm%2bclang%2blld-12.0.1-rc1-x86_64-windows-msvc-release-mt.tar.xz" | |
| 11 | tar xf llvm+clang+lld-12.0.1-rc1-x86_64-windows-msvc-release-mt.tar.xz |
ci/azure/windows_msvc_script.bat+1-1| ... | ... | @@ -11,7 +11,7 @@ SET "MSYSTEM=%PREVMSYSTEM%" |
| 11 | 11 | |
| 12 | 12 | SET "ZIGBUILDDIR=%SRCROOT%\build" |
| 13 | 13 | SET "ZIGINSTALLDIR=%ZIGBUILDDIR%\dist" |
| 14 | SET "ZIGPREFIXPATH=%SRCROOT%\llvm+clang+lld-12.0.0-x86_64-windows-msvc-release-mt" | |
| 14 | SET "ZIGPREFIXPATH=%SRCROOT%\llvm+clang+lld-12.0.1-rc1-x86_64-windows-msvc-release-mt" | |
| 15 | 15 | |
| 16 | 16 | call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 |
| 17 | 17 |
ci/drone/drone.yml+5-5| ... | ... | @@ -7,28 +7,28 @@ platform: |
| 7 | 7 | |
| 8 | 8 | steps: |
| 9 | 9 | - name: build |
| 10 | image: ziglang/static-base:llvm12-aarch64-2 | |
| 10 | image: ziglang/static-base:llvm12-aarch64-5 | |
| 11 | 11 | commands: |
| 12 | 12 | - ./ci/drone/linux_script_build |
| 13 | 13 | |
| 14 | 14 | - name: test-1 |
| 15 | 15 | depends_on: |
| 16 | 16 | - build |
| 17 | image: ziglang/static-base:llvm12-aarch64-2 | |
| 17 | image: ziglang/static-base:llvm12-aarch64-5 | |
| 18 | 18 | commands: |
| 19 | 19 | - ./ci/drone/linux_script_test 1 |
| 20 | 20 | |
| 21 | 21 | - name: test-2 |
| 22 | 22 | depends_on: |
| 23 | 23 | - build |
| 24 | image: ziglang/static-base:llvm12-aarch64-2 | |
| 24 | image: ziglang/static-base:llvm12-aarch64-5 | |
| 25 | 25 | commands: |
| 26 | 26 | - ./ci/drone/linux_script_test 2 |
| 27 | 27 | |
| 28 | 28 | - name: test-3 |
| 29 | 29 | depends_on: |
| 30 | 30 | - build |
| 31 | image: ziglang/static-base:llvm12-aarch64-2 | |
| 31 | image: ziglang/static-base:llvm12-aarch64-5 | |
| 32 | 32 | commands: |
| 33 | 33 | - ./ci/drone/linux_script_test 3 |
| 34 | 34 | |
| ... | ... | @@ -38,7 +38,7 @@ steps: |
| 38 | 38 | - test-1 |
| 39 | 39 | - test-2 |
| 40 | 40 | - test-3 |
| 41 | image: ziglang/static-base:llvm12-aarch64-2 | |
| 41 | image: ziglang/static-base:llvm12-aarch64-5 | |
| 42 | 42 | environment: |
| 43 | 43 | SRHT_OAUTH_TOKEN: |
| 44 | 44 | from_secret: SRHT_OAUTH_TOKEN |
ci/drone/linux_script_build+44-3| ... | ... | @@ -2,8 +2,30 @@ |
| 2 | 2 | |
| 3 | 3 | . ./ci/drone/linux_script_base |
| 4 | 4 | |
| 5 | apk update | |
| 6 | apk add samurai | |
| 5 | PREFIX="/deps/local" | |
| 6 | ZIG="$PREFIX/bin/zig" | |
| 7 | TARGET="$TRIPLEARCH-linux-musl" | |
| 8 | MCPU="baseline" | |
| 9 | ||
| 10 | export CC="$ZIG cc -target $TARGET -mcpu=$MCPU" | |
| 11 | export CXX="$ZIG c++ -target $TARGET -mcpu=$MCPU" | |
| 12 | ||
| 13 | # The `CMAKE_AR` parameter will consider any spaces to | |
| 14 | # be part of the executable path rather than CLI args, so we have | |
| 15 | # to create wrapper scripts for `zig ar` and zig ranlib`. | |
| 16 | ||
| 17 | cat <<'ENDFILE' >$PREFIX/bin/ar | |
| 18 | #!/bin/sh | |
| 19 | /deps/local/bin/zig ar $@ | |
| 20 | ENDFILE | |
| 21 | ||
| 22 | cat <<'ENDFILE' >$PREFIX/bin/ranlib | |
| 23 | #!/bin/sh | |
| 24 | /deps/local/bin/zig ranlib $@ | |
| 25 | ENDFILE | |
| 26 | ||
| 27 | chmod +x $PREFIX/bin/ar | |
| 28 | chmod +x $PREFIX/bin/ranlib | |
| 7 | 29 | |
| 8 | 30 | # Make the `zig version` number consistent. |
| 9 | 31 | # This will affect the cmake command below. |
| ... | ... | @@ -13,6 +35,25 @@ git fetch --tags |
| 13 | 35 | |
| 14 | 36 | mkdir build |
| 15 | 37 | cd build |
| 16 | cmake .. -DCMAKE_BUILD_TYPE=Release "-DCMAKE_INSTALL_PREFIX=$DISTDIR" -DZIG_STATIC=ON -DCMAKE_PREFIX_PATH=/deps/local -GNinja | |
| 38 | cmake .. \ | |
| 39 | -DCMAKE_INSTALL_PREFIX="$DISTDIR" \ | |
| 40 | -DCMAKE_PREFIX_PATH="$PREFIX" \ | |
| 41 | -DCMAKE_BUILD_TYPE=Release \ | |
| 42 | -DCMAKE_AR="$PREFIX/bin/ar" \ | |
| 43 | -DCMAKE_RANLIB="$PREFIX/bin/ranlib" \ | |
| 44 | -DZIG_TARGET_TRIPLE="$TARGET" \ | |
| 45 | -DZIG_TARGET_MCPU="$MCPU" \ | |
| 46 | -DZIG_STATIC=ON \ | |
| 47 | -GNinja | |
| 48 | ||
| 49 | # Now CMake will use Zig as the C/C++ compiler. We reset the environment variables | |
| 50 | # so that installation and testing do not get affected by them. | |
| 51 | unset CC | |
| 52 | unset CXX | |
| 53 | samu install | |
| 17 | 54 | |
| 55 | # Here we rebuild Zig but this time using the Zig binary we just now produced to | |
| 56 | # build zig1.o rather than relying on the one built with stage0. See | |
| 57 | # https://github.com/ziglang/zig/issues/6830 for more details. | |
| 58 | cmake .. -DZIG_EXECUTABLE="$DISTDIR/bin/zig" | |
| 18 | 59 | samu install |
ci/drone/linux_script_finalize+1-1| ... | ... | @@ -7,7 +7,7 @@ if [ -n "$DRONE_PULL_REQUEST" ]; then |
| 7 | 7 | fi |
| 8 | 8 | |
| 9 | 9 | apk update |
| 10 | apk add py3-pip xz perl-utils jq curl samurai | |
| 10 | apk add py3-pip perl-utils jq curl | |
| 11 | 11 | pip3 install s3cmd |
| 12 | 12 | |
| 13 | 13 | cd build |
ci/srht/freebsd_script+1-1| ... | ... | @@ -7,7 +7,7 @@ sudo pkg update -fq |
| 7 | 7 | sudo pkg install -y cmake py38-s3cmd wget curl jq samurai |
| 8 | 8 | |
| 9 | 9 | ZIGDIR="$(pwd)" |
| 10 | CACHE_BASENAME="zig+llvm+lld+clang-x86_64-freebsd-gnu-0.8.0-dev.1939+5a3ea9bec" | |
| 10 | CACHE_BASENAME="zig+llvm+lld+clang-x86_64-freebsd-gnu-0.8.0-dev.2703+c12704a33" | |
| 11 | 11 | PREFIX="$HOME/$CACHE_BASENAME" |
| 12 | 12 | |
| 13 | 13 | cd $HOME |