mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-23 04:55:15 +00:00
Meta: Add the ability to specify clang with serenity.sh
This enables maintaining gcc and clang builds side-by-side.
This commit is contained in:
parent
2f426765a6
commit
77953a937d
Notes:
sideshowbarker
2024-07-18 04:49:43 +09:00
Author: https://github.com/tomuta Commit: https://github.com/SerenityOS/serenity/commit/77953a937d1 Pull-request: https://github.com/SerenityOS/serenity/pull/9788
2 changed files with 30 additions and 5 deletions
|
@ -6,8 +6,9 @@ ARG0=$0
|
|||
print_help() {
|
||||
NAME=$(basename "$ARG0")
|
||||
cat <<EOF
|
||||
Usage: $NAME COMMAND [TARGET] [ARGS...]
|
||||
Usage: $NAME COMMAND [TARGET] [TOOLCHAIN] [ARGS...]
|
||||
Supported TARGETs: aarch64, i686, x86_64, lagom. Defaults to SERENITY_ARCH, or i686 if not set.
|
||||
Supported TOOLCHAINs: gcc, clang. Defaults to gcc if not set.
|
||||
Supported COMMANDs:
|
||||
build: Compiles the target binaries, [ARGS...] are passed through to ninja
|
||||
install: Installs the target binary
|
||||
|
@ -86,9 +87,23 @@ if [ -n "$1" ]; then
|
|||
else
|
||||
TARGET="${SERENITY_ARCH:-"i686"}"
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
gcc|clang)
|
||||
TOOLCHAIN_TYPE="$1"; shift
|
||||
;;
|
||||
*)
|
||||
TOOLCHAIN_TYPE="gcc"
|
||||
;;
|
||||
esac
|
||||
|
||||
CMD_ARGS=( "$@" )
|
||||
CMAKE_ARGS=()
|
||||
|
||||
if [ "$TOOLCHAIN_TYPE" = "clang" ]; then
|
||||
CMAKE_ARGS+=("-DUSE_CLANG_TOOLCHAIN=1")
|
||||
fi
|
||||
|
||||
get_top_dir() {
|
||||
git rev-parse --show-toplevel
|
||||
}
|
||||
|
@ -154,10 +169,15 @@ cmd_with_target() {
|
|||
SERENITY_SOURCE_DIR="$(get_top_dir)"
|
||||
export SERENITY_SOURCE_DIR
|
||||
fi
|
||||
BUILD_DIR="$SERENITY_SOURCE_DIR/Build/$TARGET"
|
||||
local TARGET_TOOLCHAIN=""
|
||||
if [[ "$TOOLCHAIN_TYPE" != "gcc" && "$TARGET" != "lagom" ]]; then
|
||||
# Only append the toolchain if it's not gcc
|
||||
TARGET_TOOLCHAIN="$TOOLCHAIN_TYPE"
|
||||
fi
|
||||
BUILD_DIR="$SERENITY_SOURCE_DIR/Build/$TARGET$TARGET_TOOLCHAIN"
|
||||
if [ "$TARGET" != "lagom" ]; then
|
||||
export SERENITY_ARCH="$TARGET"
|
||||
TOOLCHAIN_DIR="$SERENITY_SOURCE_DIR/Toolchain/Build/$TARGET"
|
||||
TOOLCHAIN_DIR="$SERENITY_SOURCE_DIR/Toolchain/Local/$TARGET_TOOLCHAIN/$TARGET"
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -184,7 +204,12 @@ delete_target() {
|
|||
}
|
||||
|
||||
build_toolchain() {
|
||||
( cd "$SERENITY_SOURCE_DIR/Toolchain" && ARCH="$TARGET" ./BuildIt.sh )
|
||||
echo "build_toolchain: $TOOLCHAIN_DIR"
|
||||
if [ "$TOOLCHAIN_TYPE" = "clang" ]; then
|
||||
( cd "$SERENITY_SOURCE_DIR/Toolchain" && ARCH="$TARGET" ./BuildClang.sh )
|
||||
else
|
||||
( cd "$SERENITY_SOURCE_DIR/Toolchain" && ARCH="$TARGET" ./BuildIt.sh )
|
||||
fi
|
||||
}
|
||||
|
||||
ensure_toolchain() {
|
||||
|
|
|
@ -12,7 +12,7 @@ LLVM_ARCH=
|
|||
[ "$ARCH" = "i686" ] && LLVM_ARCH="i386" || LLVM_ARCH="$ARCH"
|
||||
LLVM_TARGET="$LLVM_ARCH-pc-serenity"
|
||||
PREFIX="$DIR/Local/clang/$ARCH"
|
||||
BUILD="$DIR/../Build/$ARCH"
|
||||
BUILD="$DIR/../Build/clang/$ARCH"
|
||||
SYSROOT="$BUILD/Root"
|
||||
|
||||
MD5SUM="md5sum"
|
||||
|
|
Loading…
Add table
Reference in a new issue