| #!/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 |
| if [ "$1" == "-regen" ]; then |
| REGEN=1 |
| fi |
| 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 |
| |
| $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 \ |
| //:vulkan_freedreno |