28e95b3240
Instead of a switch in a bash file we just properly name the pipeline steps. Also use zig build to produce the release artifact.
68 lines
1.5 KiB
Bash
Executable File
68 lines
1.5 KiB
Bash
Executable File
#!/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
|