blob: b83de7a6ccad8d2ff94568feb9c064be03a0c762 [file] [log] [blame] [edit]
#!/bin/bash
set -e
if [ ! -f meson_options.txt ]; then
echo "Run this script from the repo root"
exit 1
fi
BIN_DIR=$(dirname "$0")
ROOT_DIR=$BIN_DIR/../../..
PYTHON_BUILD=generate_fuchsia_build.py
function unwrap_zlib {
rm -rf fuchsia-build/third_party/download fuchsia-build/third_party/zlib-*
SOURCE_URL=`grep -Eo 'http://[^ ]+zlib[0-9\.-]+\.tar\.gz' subprojects/zlib.wrap`
wget -P fuchsia-build/third_party/download $SOURCE_URL
tar -C fuchsia-build/third_party -xf fuchsia-build/third_party/download/zlib-*
PATCH_URL=`grep -Eo 'https://[^ ]+get_patch' subprojects/zlib.wrap`
wget -P fuchsia-build/third_party/download $PATCH_URL
# get_patch is a zip file
unzip -d fuchsia-build/third_party fuchsia-build/third_party/download/get_patch
pushd fuchsia-build/third_party/zlib-*
# Create an empty workspace
touch WORKSPACE.bazel
ln -s ../../../meson_to_hermetic meson_to_hermetic
python3 meson_to_hermetic/generate_python_build.py --target fuchsia
PYTHONPATH=$PWD/meson_to_hermetic python3 generate_fuchsia_build.py --config=meson_to_hermetic/fuchsia.toml
popd
}
REGEN=0
BUILDTYPE='release'
COMPILATION_MODE='opt'
for arg in "$@"; do
if [ "$arg" == "-regen" ]; then
REGEN=1
fi
if [ "$arg" == "-debug" ]; then
BUILDTYPE='debug'
COMPILATION_MODE='dbg'
fi
done
if [ ! -f $PYTHON_BUILD ]; then
REGEN=1
fi
if [ ! -d fuchsia-build/third_party/zlib-* ]; then
REGEN=1
fi
if [ "$REGEN" == "1" ]; then
unwrap_zlib
time python3 $BIN_DIR/generate_python_build.py --target fuchsia
else
echo "Python build found; use -regen to regenerate it"
fi
# Always generate Android.bp because it's fast
PYTHONPATH=$BIN_DIR python3 generate_fuchsia_build.py --config=meson_to_hermetic/fuchsia.toml --buildtype=$BUILDTYPE
$BIN_DIR/../tools/bazel --bazelrc=fuchsia-build/third_party/fuchsia-infra-bazel-rules/config/common_config.bazelrc \
build --config=fuchsia_arm64 --platforms=@fuchsia_sdk//fuchsia/constraints/platforms:fuchsia_arm64 \
--compilation_mode $COMPILATION_MODE \
//fuchsia-build/sdk:vulkan_freedreno