1*c8dee2aaSAndroid Build Coastguard Worker""" 2*c8dee2aaSAndroid Build Coastguard WorkerThis file exports the various toolchains for the hosts that we support building Skia on. 3*c8dee2aaSAndroid Build Coastguard Worker 4*c8dee2aaSAndroid Build Coastguard WorkerSupported: 5*c8dee2aaSAndroid Build Coastguard Worker - Linux amd64 6*c8dee2aaSAndroid Build Coastguard Worker - Mac (one toolchain for both M1 and Intel CPUs) 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard WorkerPlanned: 9*c8dee2aaSAndroid Build Coastguard Worker - Windows amd64 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Worker""" 12*c8dee2aaSAndroid Build Coastguard Worker 13*c8dee2aaSAndroid Build Coastguard Workerload(":download_ios_toolchain.bzl", "download_ios_toolchain") 14*c8dee2aaSAndroid Build Coastguard Workerload(":download_linux_amd64_toolchain.bzl", "download_linux_amd64_toolchain") 15*c8dee2aaSAndroid Build Coastguard Workerload(":download_mac_toolchain.bzl", "download_mac_toolchain") 16*c8dee2aaSAndroid Build Coastguard Workerload(":download_ndk_linux_amd64_toolchain.bzl", "download_ndk_linux_amd64_toolchain") 17*c8dee2aaSAndroid Build Coastguard Workerload(":download_windows_amd64_toolchain.bzl", "download_windows_amd64_toolchain") 18*c8dee2aaSAndroid Build Coastguard Worker 19*c8dee2aaSAndroid Build Coastguard Worker# This key in this dictionary (and thus the name passed into the rule) controls what the subfolder 20*c8dee2aaSAndroid Build Coastguard Worker# will be called in the external directory. It must match what we use in the appropriate 21*c8dee2aaSAndroid Build Coastguard Worker# toolchain_config.bzl file or it will not be able to locate the sysroot to build with. 22*c8dee2aaSAndroid Build Coastguard Workername_toolchain = { 23*c8dee2aaSAndroid Build Coastguard Worker "clang_linux_amd64": download_linux_amd64_toolchain, 24*c8dee2aaSAndroid Build Coastguard Worker "clang_mac": download_mac_toolchain, 25*c8dee2aaSAndroid Build Coastguard Worker "clang_windows_amd64": download_windows_amd64_toolchain, 26*c8dee2aaSAndroid Build Coastguard Worker "ndk_linux_amd64": download_ndk_linux_amd64_toolchain, 27*c8dee2aaSAndroid Build Coastguard Worker "clang_ios": download_ios_toolchain, 28*c8dee2aaSAndroid Build Coastguard Worker} 29*c8dee2aaSAndroid Build Coastguard Worker 30*c8dee2aaSAndroid Build Coastguard Workerdef download_toolchains_for_skia(*args): 31*c8dee2aaSAndroid Build Coastguard Worker """ 32*c8dee2aaSAndroid Build Coastguard Worker Point Bazel to the correct rules for downloading the different toolchains. 33*c8dee2aaSAndroid Build Coastguard Worker 34*c8dee2aaSAndroid Build Coastguard Worker Args: 35*c8dee2aaSAndroid Build Coastguard Worker *args: multiple toolchains, see top of file for 36*c8dee2aaSAndroid Build Coastguard Worker list of supported toolchains. 37*c8dee2aaSAndroid Build Coastguard Worker """ 38*c8dee2aaSAndroid Build Coastguard Worker 39*c8dee2aaSAndroid Build Coastguard Worker for toolchain_name in args: 40*c8dee2aaSAndroid Build Coastguard Worker if toolchain_name not in name_toolchain: 41*c8dee2aaSAndroid Build Coastguard Worker fail("unrecognized toolchain name " + toolchain_name) 42*c8dee2aaSAndroid Build Coastguard Worker download_toolchain = name_toolchain[toolchain_name] 43*c8dee2aaSAndroid Build Coastguard Worker download_toolchain(name = toolchain_name) 44