blob: a2c7b0a4a6d6623d2b3398b025d6f45fd3ceb57d [file] [log] [blame]
Damien Martin-Guillerezd47a8ef2015-06-10 11:54:50 +00001#!/bin/bash
2
Damien Martin-Guillerezf88f4d82015-09-25 13:56:55 +00003# Copyright 2015 The Bazel Authors. All rights reserved.
Damien Martin-Guillerezd47a8ef2015-06-10 11:54:50 +00004#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17# Use bazel to bootstrap various tools
18# Configuration:
19# BAZEL: path to the bazel binary
20# EMBED_LABEL: the label to embed in tools using --embed_label (optional)
Damien Martin-Guillerezd47a8ef2015-06-10 11:54:50 +000021# BAZELRC: the rc file to use
22
23: ${BAZELRC:="/dev/null"}
24: ${EMBED_LABEL:=""}
Klaus Aehlig48631ea2017-03-22 17:39:10 +000025: ${SOURCE_DATE_EPOCH:=""}
Damien Martin-Guillerezd47a8ef2015-06-10 11:54:50 +000026
27EMBED_LABEL_ARG=()
28if [ -n "${EMBED_LABEL}" ]; then
29 EMBED_LABEL_ARG=(--stamp --embed_label "${EMBED_LABEL}")
30fi
31
cushon63c92382022-01-18 10:57:53 -080032: ${JAVA_VERSION:="11"}
Damien Martin-Guillerez04d46ab2016-04-13 19:27:56 +000033
Yun Pengd2998a32020-04-24 01:32:40 -070034_BAZEL_ARGS="--spawn_strategy=standalone \
cushon032141d2018-04-25 13:01:05 -070035 --nojava_header_compilation \
36 --strategy=Javac=worker --worker_quit_after_build --ignore_unsupported_sandboxing \
37 --compilation_mode=opt \
Yun Peng8e0f66a2020-05-25 06:52:14 -070038 --distdir=derived/distdir \
ilistd14fcf42020-12-14 05:15:06 -080039 --extra_toolchains=//scripts/bootstrap:bootstrap_toolchain_definition \
Yun Pengd2998a32020-04-24 01:32:40 -070040 ${DIST_BOOTSTRAP_ARGS:-} \
cushon032141d2018-04-25 13:01:05 -070041 ${EXTRA_BAZEL_ARGS:-}"
Damien Martin-Guillerez5ed78952016-01-18 15:58:19 +000042
ilistd14fcf42020-12-14 05:15:06 -080043cp scripts/bootstrap/BUILD.bootstrap scripts/bootstrap/BUILD
44
Damien Martin-Guillerezdaffc352016-01-18 15:20:32 +000045if [ -z "${BAZEL-}" ]; then
László Csomor3c0c2622017-02-13 15:46:28 +000046 function _run_bootstrapping_bazel() {
Laszlo Csomor9f7180f2016-09-27 13:07:43 +000047 local command=$1
48 shift
49 run_bazel_jar $command \
László Csomor3c0c2622017-02-13 15:46:28 +000050 ${_BAZEL_ARGS} --verbose_failures \
Laszlo Csomor9f7180f2016-09-27 13:07:43 +000051 --javacopt="-g -source ${JAVA_VERSION} -target ${JAVA_VERSION}" "${@}"
Damien Martin-Guillerezdaffc352016-01-18 15:20:32 +000052 }
53else
Laszlo Csomord0d7ef02017-04-26 10:48:00 +020054 function _run_bootstrapping_bazel() {
55 local command=$1
Laszlo Csomor9f7180f2016-09-27 13:07:43 +000056 shift
57 ${BAZEL} --bazelrc=${BAZELRC} ${BAZEL_DIR_STARTUP_OPTIONS} $command \
László Csomor3c0c2622017-02-13 15:46:28 +000058 ${_BAZEL_ARGS} --verbose_failures \
Laszlo Csomor9f7180f2016-09-27 13:07:43 +000059 --javacopt="-g -source ${JAVA_VERSION} -target ${JAVA_VERSION}" "${@}"
Damien Martin-Guillerezdaffc352016-01-18 15:20:32 +000060 }
61fi
62
Laszlo Csomor9f7180f2016-09-27 13:07:43 +000063function bazel_build() {
László Csomor3c0c2622017-02-13 15:46:28 +000064 _run_bootstrapping_bazel build "${EMBED_LABEL_ARG[@]}" "$@"
Laszlo Csomor9f7180f2016-09-27 13:07:43 +000065}
66
67function get_bazel_bin_path() {
László Csomor3c0c2622017-02-13 15:46:28 +000068 _run_bootstrapping_bazel info "bazel-bin" || echo "bazel-bin"
Laszlo Csomor9f7180f2016-09-27 13:07:43 +000069}