1*abe8e1b9SSadaf Ebrahimi# Copyright 2019 The Bazel Authors. All rights reserved. 2*abe8e1b9SSadaf Ebrahimi# 3*abe8e1b9SSadaf Ebrahimi# Licensed under the Apache License, Version 2.0 (the "License"); 4*abe8e1b9SSadaf Ebrahimi# you may not use this file except in compliance with the License. 5*abe8e1b9SSadaf Ebrahimi# You may obtain a copy of the License at 6*abe8e1b9SSadaf Ebrahimi# 7*abe8e1b9SSadaf Ebrahimi# http://www.apache.org/licenses/LICENSE-2.0 8*abe8e1b9SSadaf Ebrahimi# 9*abe8e1b9SSadaf Ebrahimi# Unless required by applicable law or agreed to in writing, software 10*abe8e1b9SSadaf Ebrahimi# distributed under the License is distributed on an "AS IS" BASIS, 11*abe8e1b9SSadaf Ebrahimi# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*abe8e1b9SSadaf Ebrahimi# See the License for the specific language governing permissions and 13*abe8e1b9SSadaf Ebrahimi# limitations under the License. 14*abe8e1b9SSadaf Ebrahimi 15*abe8e1b9SSadaf Ebrahimi""" 16*abe8e1b9SSadaf EbrahimiFinds the Java toolchain. 17*abe8e1b9SSadaf Ebrahimi 18*abe8e1b9SSadaf EbrahimiReturns the toolchain if enabled, and falls back to a toolchain constructed from 19*abe8e1b9SSadaf Ebrahimilegacy toolchain selection. 20*abe8e1b9SSadaf Ebrahimi""" 21*abe8e1b9SSadaf Ebrahimi 22*abe8e1b9SSadaf Ebrahimiload("//java/common:java_common.bzl", "java_common") 23*abe8e1b9SSadaf Ebrahimi 24*abe8e1b9SSadaf Ebrahimidef find_java_toolchain(ctx, target): 25*abe8e1b9SSadaf Ebrahimi """ 26*abe8e1b9SSadaf Ebrahimi Finds the Java toolchain. 27*abe8e1b9SSadaf Ebrahimi 28*abe8e1b9SSadaf Ebrahimi If the Java toolchain is in use, returns it. Otherwise, returns a Java 29*abe8e1b9SSadaf Ebrahimi toolchain derived from legacy toolchain selection. 30*abe8e1b9SSadaf Ebrahimi 31*abe8e1b9SSadaf Ebrahimi Args: 32*abe8e1b9SSadaf Ebrahimi ctx: The rule context for which to find a toolchain. 33*abe8e1b9SSadaf Ebrahimi target: A java_toolchain target (for legacy toolchain resolution). 34*abe8e1b9SSadaf Ebrahimi 35*abe8e1b9SSadaf Ebrahimi Returns: 36*abe8e1b9SSadaf Ebrahimi A JavaToolchainInfo. 37*abe8e1b9SSadaf Ebrahimi """ 38*abe8e1b9SSadaf Ebrahimi 39*abe8e1b9SSadaf Ebrahimi _ignore = [ctx] # buildifier: disable=unused-variable 40*abe8e1b9SSadaf Ebrahimi 41*abe8e1b9SSadaf Ebrahimi return target[java_common.JavaToolchainInfo] 42*abe8e1b9SSadaf Ebrahimi 43*abe8e1b9SSadaf Ebrahimidef find_java_runtime_toolchain(ctx, target): 44*abe8e1b9SSadaf Ebrahimi """ 45*abe8e1b9SSadaf Ebrahimi Finds the Java runtime. 46*abe8e1b9SSadaf Ebrahimi 47*abe8e1b9SSadaf Ebrahimi If the Java toolchain is in use, returns it. Otherwise, returns a Java 48*abe8e1b9SSadaf Ebrahimi runtime derived from legacy toolchain selection. 49*abe8e1b9SSadaf Ebrahimi 50*abe8e1b9SSadaf Ebrahimi Args: 51*abe8e1b9SSadaf Ebrahimi ctx: The rule context for which to find a toolchain. 52*abe8e1b9SSadaf Ebrahimi target: A java_runtime target (for legacy toolchain resolution). 53*abe8e1b9SSadaf Ebrahimi 54*abe8e1b9SSadaf Ebrahimi Returns: 55*abe8e1b9SSadaf Ebrahimi A JavaRuntimeInfo. 56*abe8e1b9SSadaf Ebrahimi """ 57*abe8e1b9SSadaf Ebrahimi 58*abe8e1b9SSadaf Ebrahimi _ignore = [ctx] # buildifier: disable=unused-variable 59*abe8e1b9SSadaf Ebrahimi 60*abe8e1b9SSadaf Ebrahimi return target[java_common.JavaRuntimeInfo] 61