# Copyright 2018 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. # This becomes the BUILD file for @local_config_cc// under Windows. package(default_visibility = ["//visibility:public"]) load("@rules_cc//cc:defs.bzl", "cc_toolchain", "cc_toolchain_suite", "cc_library") load(":windows_cc_toolchain_config.bzl", "cc_toolchain_config") load(":armeabi_cc_toolchain_config.bzl", "armeabi_cc_toolchain_config") cc_library( name = "malloc", ) filegroup( name = "empty", srcs = [], ) filegroup( name = "mingw_compiler_files", srcs = [":builtin_include_directory_paths_mingw"] ) filegroup( name = "clangcl_compiler_files", srcs = [":builtin_include_directory_paths_clangcl"] ) filegroup( name = "msvc_compiler_files", srcs = [":builtin_include_directory_paths_msvc"] ) # Hardcoded toolchain, legacy behaviour. cc_toolchain_suite( name = "toolchain", toolchains = { "armeabi-v7a|compiler": ":cc-compiler-armeabi-v7a", "x64_windows|msvc-cl": ":cc-compiler-x64_windows", "x64_windows|msys-gcc": ":cc-compiler-x64_windows_msys", "x64_windows|mingw-gcc": ":cc-compiler-x64_windows_mingw", "x64_windows|clang-cl": ":cc-compiler-x64_windows-clang-cl", "x64_windows_msys": ":cc-compiler-x64_windows_msys", "x64_windows": ":cc-compiler-x64_windows", "armeabi-v7a": ":cc-compiler-armeabi-v7a", }, ) cc_toolchain( name = "cc-compiler-x64_windows_msys", toolchain_identifier = "msys_x64", toolchain_config = ":msys_x64", all_files = ":empty", ar_files = ":empty", as_files = ":mingw_compiler_files", compiler_files = ":mingw_compiler_files", dwp_files = ":empty", linker_files = ":empty", objcopy_files = ":empty", strip_files = ":empty", supports_param_files = 1, ) cc_toolchain_config( name = "msys_x64", cpu = "x64_windows", compiler = "msys-gcc", host_system_name = "local", target_system_name = "local", target_libc = "msys", abi_version = "local", abi_libc_version = "local", cxx_builtin_include_directories = [%{cxx_builtin_include_directories}], tool_paths = {%{tool_paths}}, tool_bin_path = "%{tool_bin_path}", dbg_mode_debug_flag = "%{dbg_mode_debug_flag}", fastbuild_mode_debug_flag = "%{fastbuild_mode_debug_flag}", ) toolchain( name = "cc-toolchain-x64_windows_msys", exec_compatible_with = [ "@platforms//cpu:x86_64", "@platforms//os:windows", "@rules_cc//cc/private/toolchain:msys", ], target_compatible_with = [ "@platforms//cpu:x86_64", "@platforms//os:windows", ], toolchain = ":cc-compiler-x64_windows_msys", toolchain_type = "@rules_cc//cc:toolchain_type", ) cc_toolchain( name = "cc-compiler-x64_windows_mingw", toolchain_identifier = "msys_x64_mingw", toolchain_config = ":msys_x64_mingw", all_files = ":empty", ar_files = ":empty", as_files = ":mingw_compiler_files", compiler_files = ":mingw_compiler_files", dwp_files = ":empty", linker_files = ":empty", objcopy_files = ":empty", strip_files = ":empty", supports_param_files = 0, ) cc_toolchain_config( name = "msys_x64_mingw", cpu = "x64_windows", compiler = "mingw-gcc", host_system_name = "local", target_system_name = "local", target_libc = "mingw", abi_version = "local", abi_libc_version = "local", tool_bin_path = "%{mingw_tool_bin_path}", cxx_builtin_include_directories = [%{mingw_cxx_builtin_include_directories}], tool_paths = {%{mingw_tool_paths}}, dbg_mode_debug_flag = "%{dbg_mode_debug_flag}", fastbuild_mode_debug_flag = "%{fastbuild_mode_debug_flag}", ) toolchain( name = "cc-toolchain-x64_windows_mingw", exec_compatible_with = [ "@platforms//cpu:x86_64", "@platforms//os:windows", "@rules_cc//cc/private/toolchain:mingw", ], target_compatible_with = [ "@platforms//cpu:x86_64", "@platforms//os:windows", ], toolchain = ":cc-compiler-x64_windows_mingw", toolchain_type = "@rules_cc//cc:toolchain_type", ) cc_toolchain( name = "cc-compiler-x64_windows", toolchain_identifier = "msvc_x64", toolchain_config = ":msvc_x64", all_files = ":empty", ar_files = ":empty", as_files = ":msvc_compiler_files", compiler_files = ":msvc_compiler_files", dwp_files = ":empty", linker_files = ":empty", objcopy_files = ":empty", strip_files = ":empty", supports_param_files = 1, ) cc_toolchain_config( name = "msvc_x64", cpu = "x64_windows", compiler = "msvc-cl", host_system_name = "local", target_system_name = "local", target_libc = "msvcrt", abi_version = "local", abi_libc_version = "local", toolchain_identifier = "msvc_x64", msvc_env_tmp = "%{msvc_env_tmp}", msvc_env_path = "%{msvc_env_path}", msvc_env_include = "%{msvc_env_include}", msvc_env_lib = "%{msvc_env_lib}", msvc_cl_path = "%{msvc_cl_path}", msvc_ml_path = "%{msvc_ml_path}", msvc_link_path = "%{msvc_link_path}", msvc_lib_path = "%{msvc_lib_path}", cxx_builtin_include_directories = [%{msvc_cxx_builtin_include_directories}], tool_paths = { "ar": "%{msvc_lib_path}", "ml": "%{msvc_ml_path}", "cpp": "%{msvc_cl_path}", "gcc": "%{msvc_cl_path}", "gcov": "wrapper/bin/msvc_nop.bat", "ld": "%{msvc_link_path}", "nm": "wrapper/bin/msvc_nop.bat", "objcopy": "wrapper/bin/msvc_nop.bat", "objdump": "wrapper/bin/msvc_nop.bat", "strip": "wrapper/bin/msvc_nop.bat", }, default_link_flags = ["/MACHINE:X64"], dbg_mode_debug_flag = "%{dbg_mode_debug_flag}", fastbuild_mode_debug_flag = "%{fastbuild_mode_debug_flag}", ) toolchain( name = "cc-toolchain-x64_windows", exec_compatible_with = [ "@platforms//cpu:x86_64", "@platforms//os:windows", ], target_compatible_with = [ "@platforms//cpu:x86_64", "@platforms//os:windows", ], toolchain = ":cc-compiler-x64_windows", toolchain_type = "@rules_cc//cc:toolchain_type", ) cc_toolchain( name = "cc-compiler-x64_windows-clang-cl", toolchain_identifier = "clang_cl_x64", toolchain_config = ":clang_cl_x64", all_files = ":empty", ar_files = ":empty", as_files = ":clangcl_compiler_files", compiler_files = ":clangcl_compiler_files", dwp_files = ":empty", linker_files = ":empty", objcopy_files = ":empty", strip_files = ":empty", supports_param_files = 1, ) cc_toolchain_config( name = "clang_cl_x64", cpu = "x64_windows", compiler = "clang-cl", host_system_name = "local", target_system_name = "local", target_libc = "msvcrt", abi_version = "local", abi_libc_version = "local", toolchain_identifier = "clang_cl_x64", msvc_env_tmp = "%{clang_cl_env_tmp}", msvc_env_path = "%{clang_cl_env_path}", msvc_env_include = "%{clang_cl_env_include}", msvc_env_lib = "%{clang_cl_env_lib}", msvc_cl_path = "%{clang_cl_cl_path}", msvc_ml_path = "%{clang_cl_ml_path}", msvc_link_path = "%{clang_cl_link_path}", msvc_lib_path = "%{clang_cl_lib_path}", cxx_builtin_include_directories = [%{clang_cl_cxx_builtin_include_directories}], tool_paths = { "ar": "%{clang_cl_lib_path}", "ml": "%{clang_cl_ml_path}", "cpp": "%{clang_cl_cl_path}", "gcc": "%{clang_cl_cl_path}", "gcov": "wrapper/bin/msvc_nop.bat", "ld": "%{clang_cl_link_path}", "nm": "wrapper/bin/msvc_nop.bat", "objcopy": "wrapper/bin/msvc_nop.bat", "objdump": "wrapper/bin/msvc_nop.bat", "strip": "wrapper/bin/msvc_nop.bat", }, default_link_flags = ["/MACHINE:X64", "/DEFAULTLIB:clang_rt.builtins-x86_64.lib"], dbg_mode_debug_flag = "%{clang_cl_dbg_mode_debug_flag}", fastbuild_mode_debug_flag = "%{clang_cl_fastbuild_mode_debug_flag}", ) toolchain( name = "cc-toolchain-x64_windows-clang-cl", exec_compatible_with = [ "@platforms//cpu:x86_64", "@platforms//os:windows", "@rules_cc//cc/private/toolchain:clang-cl", ], target_compatible_with = [ "@platforms//cpu:x86_64", "@platforms//os:windows", ], toolchain = ":cc-compiler-x64_windows-clang-cl", toolchain_type = "@rules_cc//cc:toolchain_type", ) cc_toolchain( name = "cc-compiler-armeabi-v7a", toolchain_identifier = "stub_armeabi-v7a", toolchain_config = ":stub_armeabi-v7a", all_files = ":empty", ar_files = ":empty", as_files = ":empty", compiler_files = ":empty", dwp_files = ":empty", linker_files = ":empty", objcopy_files = ":empty", strip_files = ":empty", supports_param_files = 1, ) armeabi_cc_toolchain_config(name = "stub_armeabi-v7a") toolchain( name = "cc-toolchain-armeabi-v7a", exec_compatible_with = [ ], target_compatible_with = [ "@platforms//cpu:arm", "@platforms//os:android", ], toolchain = ":cc-compiler-armeabi-v7a", toolchain_type = "@rules_cc//cc:toolchain_type", ) filegroup( name = "link_dynamic_library", srcs = ["link_dynamic_library.sh"], )