| #!/bin/bash |
| # Copyright lowRISC contributors. |
| # Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| set -ex |
| |
| # Prefetch bazel airgapped dependencies. |
| util/prep-bazel-airgapped-build.sh -f |
| |
| # Remove the airgapped network namespace. |
| remove_airgapped_netns() { |
| sudo ip netns delete airgapped |
| } |
| trap remove_airgapped_netns EXIT |
| |
| # Set up a network namespace named "airgapped" with access to loopback. |
| sudo ip netns add airgapped |
| sudo ip netns exec airgapped ip addr add 127.0.0.1/8 dev lo |
| sudo ip netns exec airgapped ip link set dev lo up |
| |
| # Enter the network namespace and perform several builds. |
| sudo ip netns exec airgapped sudo -u "$USER" bash -c \ |
| "export BAZEL_BITSTREAMS_CACHE=$(pwd)/bazel-airgapped/bitstreams-cache; |
| export BITSTREAM=\"--offline latest\"; |
| export BAZEL_PYTHON_WHEELS_REPO=$(pwd)/bazel-airgapped/ot_python_wheels; |
| TARGET_PATTERN_FILE=\$(mktemp) |
| echo //sw/device/silicon_creator/... > \"\${TARGET_PATTERN_FILE}\" |
| bazel-airgapped/bazel cquery \ |
| --distdir=$(pwd)/bazel-airgapped/bazel-distdir \ |
| --repository_cache=$(pwd)/bazel-airgapped/bazel-cache \ |
| --noinclude_aspects \ |
| --output=starlark \ |
| --starlark:expr='\"-{}\".format(target.label)' \ |
| --define DISABLE_VERILATOR_BUILD=true \ |
| -- \"rdeps(//..., kind(bitstream_splice, //...))\" \ |
| >> \"\${TARGET_PATTERN_FILE}\" |
| echo Building target pattern: |
| cat \"\${TARGET_PATTERN_FILE}\" |
| bazel-airgapped/bazel build \ |
| --distdir=$(pwd)/bazel-airgapped/bazel-distdir \ |
| --repository_cache=$(pwd)/bazel-airgapped/bazel-cache \ |
| --define DISABLE_VERILATOR_BUILD=true \ |
| --target_pattern_file=\"\${TARGET_PATTERN_FILE}\"" |
| exit 0 |