| ... | ... | @@ -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 |