mirror of
https://github.com/zed-industries/zed.git
synced 2024-12-29 12:38:02 +00:00
3010dfe038
- Add `script/build-docker` - Add `script/install-cmake` - Add `script/install-mold` - Improve `script/linux` - Add missing dependencies: `jq`, `git`, `tar`, `gzip` as required. - Add check for mold - Fix Redhat 8.x derivatives (RHEL, Centos, Almalinux, Rocky, Oracle, Amazon) - Fix perl libs to be Fedora only - Install the best `libstdc++` available on apt distros - ArchLinux: run `pacman -Syu` to update repos before installing. - Should work on Raspbian (untested) This make it possible to test builds on other distros using docker: ``` ./script/build-docker amazonlinux:2023 ```
37 lines
1.3 KiB
Bash
Executable file
37 lines
1.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# Install `mold` official binaries from GitHub Releases.
|
|
#
|
|
# Adapted from the official rui314/setup-mold@v1 action to:
|
|
# * use environment variables instead of action inputs
|
|
# * remove make-default support
|
|
# * use curl instead of wget
|
|
# * support doas for sudo
|
|
# * support redhat systems
|
|
# See: https://github.com/rui314/setup-mold/blob/main/action.yml
|
|
|
|
set -euo pipefail
|
|
|
|
MOLD_VERSION="${MOLD_VERSION:-${1:-}}"
|
|
if [ "$(uname -s)" != "Linux" ]; then
|
|
echo "Error: This script is intended for Linux systems only."
|
|
exit 1
|
|
elif [ -z "$MOLD_VERSION" ]; then
|
|
echo "Usage: $0 2.34.0"
|
|
exit 1
|
|
elif [ -e /usr/local/bin/mold ]; then
|
|
echo "Warning: existing mold found at /usr/local/bin/mold. Skipping installation."
|
|
exit 0
|
|
fi
|
|
|
|
if [ "$(whoami)" = root ]; then SUDO=; else SUDO="$(command -v sudo || command -v doas || true)"; fi
|
|
|
|
MOLD_REPO="${MOLD_REPO:-https://github.com/rui314/mold}"
|
|
MOLD_URL="${MOLD_URL:-$MOLD_REPO}/releases/download/v$MOLD_VERSION/mold-$MOLD_VERSION-$(uname -m)-linux.tar.gz"
|
|
|
|
echo "Downloading from $MOLD_URL"
|
|
curl -fsSL --output - "$MOLD_URL" \
|
|
| $SUDO tar -C /usr/local --strip-components=1 --no-overwrite-dir -xzf -
|
|
|
|
# Note this binary depends on the system libatomic.so.1 which is usually
|
|
# provided as a dependency of gcc so it should be available on most systems.
|