#!/bin/sh . ./ci/drone/linux_script_base # Probe CPU/brand details. # TODO: `lscpu` is changing package names in EDGE to `util-linux-misc` apk update apk add util-linux echo "lscpu:" lscpu | sed 's,^, : ,' PREFIX="/deps/local" ZIG="$PREFIX/bin/zig" TARGET="$TRIPLEARCH-linux-musl" MCPU="baseline" export CC="$ZIG cc -target $TARGET -mcpu=$MCPU" export CXX="$ZIG c++ -target $TARGET -mcpu=$MCPU" # The `CMAKE_AR` parameter will consider any spaces to # be part of the executable path rather than CLI args, so we have # to create wrapper scripts for `zig ar` and zig ranlib`. cat <<'ENDFILE' >$PREFIX/bin/ar #!/bin/sh /deps/local/bin/zig ar $@ ENDFILE cat <<'ENDFILE' >$PREFIX/bin/ranlib #!/bin/sh /deps/local/bin/zig ranlib $@ ENDFILE chmod +x $PREFIX/bin/ar chmod +x $PREFIX/bin/ranlib # Make the `zig version` number consistent. # This will affect the cmake command below. git config core.abbrev 9 git fetch --unshallow || true git fetch --tags mkdir build cd build cmake .. \ -DCMAKE_PREFIX_PATH="$PREFIX" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_AR="$PREFIX/bin/ar" \ -DCMAKE_RANLIB="$PREFIX/bin/ranlib" \ -DZIG_TARGET_TRIPLE="$TARGET" \ -DZIG_TARGET_MCPU="$MCPU" \ -DZIG_STATIC=ON \ -GNinja # Now CMake will use Zig as the C/C++ compiler. We reset the environment variables # so that installation and testing do not get affected by them. unset CC unset CXX samu install stage2/bin/zig build \ --prefix "$DISTDIR" \ --search-prefix "$PREFIX" \ -Dstatic-llvm \ -Drelease \ -Dstrip \ -Dtarget="$TARGET" \ -Denable-stage1