# FIXME: Chromium wants nightly rustc for some reason...
#
# error: the option `Z` is only accepted on the nightly compiler
export RUSTC_BOOTSTRAP=1

abinfo "Ensuring binutils ar, nm are used ..."
export AR=/usr/bin/ar
export NM=/usr/bin/nm

if ab_match_arch arm64; then
    abinfo "Tweaking compiler flags for AArch64/arm64 ..."
    # Note: Do not set -march, since chromium will set for us and use specific feature flags
    export CFLAGS="${CFLAGS/-march=armv8-a}"
    export CXXFLAGS="${CXXFLAGS/-march=armv8-a}"
fi

abinfo "Declaring build as GOOGLE_CHROME_BUILD ..."
sed -e 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
    -i "$SRCDIR"/tools/generate_shim_headers/generate_shim_headers.py
sed -e 's/"Chromium/"Chrome/' \
    -i "$SRCDIR"/chrome/common/chrome_content_client_constants.cc

abinfo "Generating Chromium build hash ..."
export _chrome_build_hash=$(base64 -d "$SRCDIR"/../chromium-$PKGVER.txt |
    grep -Po '^parent \K[0-9a-f]{40}$')
echo "LASTCHANGE=$_chrome_build_hash-" \
    > "$SRCDIR"/build/util/LASTCHANGE

abinfo "Creating a (stupid hard-coded) symlink for node ..."
if [ -f "$SRCDIR"/third_party/node/linux/node-linux-x64/bin/node ]; then
    rm "$SRCDIR"/third_party/node/linux/node-linux-x64/bin/node
fi
mkdir -pv "$SRCDIR"/third_party/node/linux/node-linux-x64/bin
ln -sv /usr/bin/node \
    "$SRCDIR"/third_party/node/linux/node-linux-x64/bin/node

abinfo "Stripping LTO flags, let Chromium decide ..."
export CFLAGS="${CFLAGS/\-flto/}"
export CXXFLAGS="${CXXFLAGS/\-flto/}"
export LDFLAGS="${LDFLAGS/\-flto/}"

# Full DWARF (-ggdb) makes the resulting chrome binary exceed 4 GiB, which
# breaks the final link on x86-64 (R_X86_64_32 out of range in .debug_info).
abinfo "Stripping -ggdb flags, let Chromium decide ..."
export CFLAGS="${CFLAGS//\-ggdb/}"
export CXXFLAGS="${CXXFLAGS//\-ggdb/}"
export LDFLAGS="${LDFLAGS//\-ggdb/}"

abinfo "Chromium passes -Z to rustc, allow them on stable rustc ..."
export RUSTC_BOOTSTRAP=1
