blob: 4a86dae13d2b270d0b063c88b0f787128f74e67d [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
Damien Martin-Guillerez04d46ab2016-04-13 19:27:56 +000032: ${JAVA_VERSION:="1.8"}
33
cushon032141d2018-04-25 13:01:05 -070034_BAZEL_ARGS="--java_toolchain=//src/java_tools/buildjar:bootstrap_toolchain \
35 --host_java_toolchain=//src/java_tools/buildjar:bootstrap_toolchain \
36 --spawn_strategy=standalone \
37 --nojava_header_compilation \
38 --strategy=Javac=worker --worker_quit_after_build --ignore_unsupported_sandboxing \
39 --compilation_mode=opt \
Klaus Aehligd5957032018-06-07 08:18:00 -070040 --distdir=derived/distdir \
cushon032141d2018-04-25 13:01:05 -070041 ${EXTRA_BAZEL_ARGS:-}"
Damien Martin-Guillerez5ed78952016-01-18 15:58:19 +000042
Damien Martin-Guillerezdaffc352016-01-18 15:20:32 +000043if [ -z "${BAZEL-}" ]; then
László Csomor3c0c2622017-02-13 15:46:28 +000044 function _run_bootstrapping_bazel() {
Laszlo Csomor9f7180f2016-09-27 13:07:43 +000045 local command=$1
46 shift
47 run_bazel_jar $command \
László Csomor3c0c2622017-02-13 15:46:28 +000048 ${_BAZEL_ARGS} --verbose_failures \
Laszlo Csomor9f7180f2016-09-27 13:07:43 +000049 --javacopt="-g -source ${JAVA_VERSION} -target ${JAVA_VERSION}" "${@}"
Damien Martin-Guillerezdaffc352016-01-18 15:20:32 +000050 }
51else
Laszlo Csomord0d7ef02017-04-26 10:48:00 +020052 function _run_bootstrapping_bazel() {
53 local command=$1
Laszlo Csomor9f7180f2016-09-27 13:07:43 +000054 shift
55 ${BAZEL} --bazelrc=${BAZELRC} ${BAZEL_DIR_STARTUP_OPTIONS} $command \
László Csomor3c0c2622017-02-13 15:46:28 +000056 ${_BAZEL_ARGS} --verbose_failures \
Laszlo Csomor9f7180f2016-09-27 13:07:43 +000057 --javacopt="-g -source ${JAVA_VERSION} -target ${JAVA_VERSION}" "${@}"
Damien Martin-Guillerezdaffc352016-01-18 15:20:32 +000058 }
59fi
60
Laszlo Csomor9f7180f2016-09-27 13:07:43 +000061function bazel_build() {
László Csomor3c0c2622017-02-13 15:46:28 +000062 _run_bootstrapping_bazel build "${EMBED_LABEL_ARG[@]}" "$@"
Laszlo Csomor9f7180f2016-09-27 13:07:43 +000063}
64
65function get_bazel_bin_path() {
László Csomor3c0c2622017-02-13 15:46:28 +000066 _run_bootstrapping_bazel info "bazel-bin" || echo "bazel-bin"
Laszlo Csomor9f7180f2016-09-27 13:07:43 +000067}