#!/bin/bash # Copyright 2015 The Bazel Authors. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Use bazel to bootstrap various tools # Configuration: # BAZEL: path to the bazel binary # EMBED_LABEL: the label to embed in tools using --embed_label (optional) # BAZELRC: the rc file to use : ${BAZELRC:="/dev/null"} : ${EMBED_LABEL:=""} : ${SOURCE_DATE_EPOCH:=""} EMBED_LABEL_ARG=() if [ -n "${EMBED_LABEL}" ]; then EMBED_LABEL_ARG=(--stamp --embed_label "${EMBED_LABEL}") fi : ${JAVA_VERSION:="1.8"} _BAZEL_ARGS="--java_toolchain=//src/java_tools/buildjar:bootstrap_toolchain \ --host_java_toolchain=//src/java_tools/buildjar:bootstrap_toolchain \ --spawn_strategy=standalone \ --nojava_header_compilation \ --strategy=Javac=worker --worker_quit_after_build --ignore_unsupported_sandboxing \ --compilation_mode=opt \ --distdir=derived/distdir \ ${EXTRA_BAZEL_ARGS:-}" if [ -z "${BAZEL-}" ]; then function _run_bootstrapping_bazel() { local command=$1 shift run_bazel_jar $command \ ${_BAZEL_ARGS} --verbose_failures \ --javacopt="-g -source ${JAVA_VERSION} -target ${JAVA_VERSION}" "${@}" } else function _run_bootstrapping_bazel() { local command=$1 shift ${BAZEL} --bazelrc=${BAZELRC} ${BAZEL_DIR_STARTUP_OPTIONS} $command \ ${_BAZEL_ARGS} --verbose_failures \ --javacopt="-g -source ${JAVA_VERSION} -target ${JAVA_VERSION}" "${@}" } fi function bazel_build() { _run_bootstrapping_bazel build "${EMBED_LABEL_ARG[@]}" "$@" } function get_bazel_bin_path() { _run_bootstrapping_bazel info "bazel-bin" || echo "bazel-bin" }