|  | @@ -0,0 +1,1728 @@
 | 
	
		
			
				|  |  | +# Copyright 2019 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.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +"""A Starlark cc_toolchain configuration rule"""
 | 
	
		
			
				|  |  | +load("@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl",
 | 
	
		
			
				|  |  | +     "action_config",
 | 
	
		
			
				|  |  | +     "artifact_name_pattern",
 | 
	
		
			
				|  |  | +     "env_entry",
 | 
	
		
			
				|  |  | +     "env_set",
 | 
	
		
			
				|  |  | +     "feature",
 | 
	
		
			
				|  |  | +     "feature_set",
 | 
	
		
			
				|  |  | +     "flag_group",
 | 
	
		
			
				|  |  | +     "flag_set",
 | 
	
		
			
				|  |  | +     "make_variable",
 | 
	
		
			
				|  |  | +     "tool",
 | 
	
		
			
				|  |  | +     "tool_path",
 | 
	
		
			
				|  |  | +     "variable_with_value",
 | 
	
		
			
				|  |  | +     "with_feature_set",
 | 
	
		
			
				|  |  | +     )
 | 
	
		
			
				|  |  | +load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +all_compile_actions = [
 | 
	
		
			
				|  |  | +    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.linkstamp_compile,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.clif_match,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.lto_backend,
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +all_cpp_compile_actions = [
 | 
	
		
			
				|  |  | +    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.linkstamp_compile,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.clif_match,
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +preprocessor_compile_actions = [
 | 
	
		
			
				|  |  | +    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.linkstamp_compile,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.clif_match,
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +codegen_compile_actions = [
 | 
	
		
			
				|  |  | +    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.linkstamp_compile,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.lto_backend,
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +all_link_actions = [
 | 
	
		
			
				|  |  | +    ACTION_NAMES.cpp_link_executable,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.cpp_link_dynamic_library,
 | 
	
		
			
				|  |  | +    ACTION_NAMES.cpp_link_nodeps_dynamic_library,
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def _windows_msvc_impl(ctx):
 | 
	
		
			
				|  |  | +    toolchain_identifier = "msvc_x64"
 | 
	
		
			
				|  |  | +    host_system_name = "local"
 | 
	
		
			
				|  |  | +    target_system_name = "local"
 | 
	
		
			
				|  |  | +    target_cpu = "x64_windows"
 | 
	
		
			
				|  |  | +    target_libc = "msvcrt"
 | 
	
		
			
				|  |  | +    compiler = "msvc-cl"
 | 
	
		
			
				|  |  | +    abi_version = "local"
 | 
	
		
			
				|  |  | +    abi_libc_version = "local"
 | 
	
		
			
				|  |  | +    cc_target_os = None
 | 
	
		
			
				|  |  | +    builtin_sysroot = None
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    cxx_builtin_include_directories = [
 | 
	
		
			
				|  |  | +        # This is a workaround for https://github.com/bazelbuild/bazel/issues/5087.
 | 
	
		
			
				|  |  | +        "C:\\botcode\\w",
 | 
	
		
			
				|  |  | +        "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\INCLUDE",
 | 
	
		
			
				|  |  | +        "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.10240.0\\ucrt",
 | 
	
		
			
				|  |  | +        "C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\shared",
 | 
	
		
			
				|  |  | +        "C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\um",
 | 
	
		
			
				|  |  | +        "C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\winrt"
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    cpp_link_nodeps_dynamic_library_action = action_config(
 | 
	
		
			
				|  |  | +        action_name = ACTION_NAMES.cpp_link_nodeps_dynamic_library,
 | 
	
		
			
				|  |  | +        implies = [
 | 
	
		
			
				|  |  | +            "nologo",
 | 
	
		
			
				|  |  | +            "shared_flag",
 | 
	
		
			
				|  |  | +            "linkstamps",
 | 
	
		
			
				|  |  | +            "output_execpath_flags",
 | 
	
		
			
				|  |  | +            "input_param_flags",
 | 
	
		
			
				|  |  | +            "user_link_flags",
 | 
	
		
			
				|  |  | +            "default_link_flags",
 | 
	
		
			
				|  |  | +            "linker_subsystem_flag",
 | 
	
		
			
				|  |  | +            "linker_param_file",
 | 
	
		
			
				|  |  | +            "msvc_env",
 | 
	
		
			
				|  |  | +            "no_stripping",
 | 
	
		
			
				|  |  | +            "has_configured_linker_path",
 | 
	
		
			
				|  |  | +            "def_file",
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        tools = [tool(path = "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/link.exe")],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    cpp_link_static_library_action = action_config(
 | 
	
		
			
				|  |  | +        action_name = ACTION_NAMES.cpp_link_static_library,
 | 
	
		
			
				|  |  | +        implies = [
 | 
	
		
			
				|  |  | +            "nologo",
 | 
	
		
			
				|  |  | +            "archiver_flags",
 | 
	
		
			
				|  |  | +            "input_param_flags",
 | 
	
		
			
				|  |  | +            "linker_param_file",
 | 
	
		
			
				|  |  | +            "msvc_env",
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        tools = [tool(path = "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/lib.exe")],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    assemble_action = action_config(
 | 
	
		
			
				|  |  | +        action_name = ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +        implies = [
 | 
	
		
			
				|  |  | +            "compiler_input_flags",
 | 
	
		
			
				|  |  | +            "compiler_output_flags",
 | 
	
		
			
				|  |  | +            "nologo",
 | 
	
		
			
				|  |  | +            "msvc_env",
 | 
	
		
			
				|  |  | +            "sysroot",
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        tools = [tool(path = "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/ml64.exe")],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    preprocess_assemble_action = action_config(
 | 
	
		
			
				|  |  | +        action_name = ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +        implies = [
 | 
	
		
			
				|  |  | +            "compiler_input_flags",
 | 
	
		
			
				|  |  | +            "compiler_output_flags",
 | 
	
		
			
				|  |  | +            "nologo",
 | 
	
		
			
				|  |  | +            "msvc_env",
 | 
	
		
			
				|  |  | +            "sysroot",
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        tools = [tool(path = "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/ml64.exe")],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    c_compile_action = action_config(
 | 
	
		
			
				|  |  | +        action_name = ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +        implies = [
 | 
	
		
			
				|  |  | +            "compiler_input_flags",
 | 
	
		
			
				|  |  | +            "compiler_output_flags",
 | 
	
		
			
				|  |  | +            "default_compile_flags",
 | 
	
		
			
				|  |  | +            "nologo",
 | 
	
		
			
				|  |  | +            "msvc_env",
 | 
	
		
			
				|  |  | +            "parse_showincludes",
 | 
	
		
			
				|  |  | +            "user_compile_flags",
 | 
	
		
			
				|  |  | +            "sysroot",
 | 
	
		
			
				|  |  | +            "unfiltered_compile_flags",
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        tools = [tool(path = "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe")],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    cpp_compile_action = action_config(
 | 
	
		
			
				|  |  | +        action_name = ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +        implies = [
 | 
	
		
			
				|  |  | +            "compiler_input_flags",
 | 
	
		
			
				|  |  | +            "compiler_output_flags",
 | 
	
		
			
				|  |  | +            "default_compile_flags",
 | 
	
		
			
				|  |  | +            "nologo",
 | 
	
		
			
				|  |  | +            "msvc_env",
 | 
	
		
			
				|  |  | +            "parse_showincludes",
 | 
	
		
			
				|  |  | +            "user_compile_flags",
 | 
	
		
			
				|  |  | +            "sysroot",
 | 
	
		
			
				|  |  | +            "unfiltered_compile_flags",
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        tools = [tool(path = "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe")],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    cpp_link_executable_action = action_config(
 | 
	
		
			
				|  |  | +        action_name = ACTION_NAMES.cpp_link_executable,
 | 
	
		
			
				|  |  | +        implies = [
 | 
	
		
			
				|  |  | +            "nologo",
 | 
	
		
			
				|  |  | +            "linkstamps",
 | 
	
		
			
				|  |  | +            "output_execpath_flags",
 | 
	
		
			
				|  |  | +            "input_param_flags",
 | 
	
		
			
				|  |  | +            "user_link_flags",
 | 
	
		
			
				|  |  | +            "default_link_flags",
 | 
	
		
			
				|  |  | +            "linker_subsystem_flag",
 | 
	
		
			
				|  |  | +            "linker_param_file",
 | 
	
		
			
				|  |  | +            "msvc_env",
 | 
	
		
			
				|  |  | +            "no_stripping",
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        tools = [tool(path = "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/link.exe")],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    cpp_link_dynamic_library_action = action_config(
 | 
	
		
			
				|  |  | +        action_name = ACTION_NAMES.cpp_link_dynamic_library,
 | 
	
		
			
				|  |  | +        implies = [
 | 
	
		
			
				|  |  | +            "nologo",
 | 
	
		
			
				|  |  | +            "shared_flag",
 | 
	
		
			
				|  |  | +            "linkstamps",
 | 
	
		
			
				|  |  | +            "output_execpath_flags",
 | 
	
		
			
				|  |  | +            "input_param_flags",
 | 
	
		
			
				|  |  | +            "user_link_flags",
 | 
	
		
			
				|  |  | +            "default_link_flags",
 | 
	
		
			
				|  |  | +            "linker_subsystem_flag",
 | 
	
		
			
				|  |  | +            "linker_param_file",
 | 
	
		
			
				|  |  | +            "msvc_env",
 | 
	
		
			
				|  |  | +            "no_stripping",
 | 
	
		
			
				|  |  | +            "has_configured_linker_path",
 | 
	
		
			
				|  |  | +            "def_file",
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        tools = [tool(path = "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/link.exe")],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    action_configs = [
 | 
	
		
			
				|  |  | +        assemble_action,
 | 
	
		
			
				|  |  | +        preprocess_assemble_action,
 | 
	
		
			
				|  |  | +        c_compile_action,
 | 
	
		
			
				|  |  | +        cpp_compile_action,
 | 
	
		
			
				|  |  | +        cpp_link_executable_action,
 | 
	
		
			
				|  |  | +        cpp_link_dynamic_library_action,
 | 
	
		
			
				|  |  | +        cpp_link_nodeps_dynamic_library_action,
 | 
	
		
			
				|  |  | +        cpp_link_static_library_action,
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    msvc_link_env_feature = feature(
 | 
	
		
			
				|  |  | +        name = "msvc_link_env",
 | 
	
		
			
				|  |  | +        env_sets = [
 | 
	
		
			
				|  |  | +            env_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions +
 | 
	
		
			
				|  |  | +                          [ACTION_NAMES.cpp_link_static_library],
 | 
	
		
			
				|  |  | +                env_entries = [env_entry(key = "LIB", value = "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\LIB\\amd64;C:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.10240.0\\ucrt\\x64;C:\\Program Files (x86)\\Windows Kits\\8.1\\lib\\winv6.3\\um\\x64;")],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    shared_flag_feature = feature(
 | 
	
		
			
				|  |  | +        name = "shared_flag",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_dynamic_library,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_nodeps_dynamic_library,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/DLL"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    determinism_feature = feature(
 | 
	
		
			
				|  |  | +        name = "determinism",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = [
 | 
	
		
			
				|  |  | +                            "/wd4117",
 | 
	
		
			
				|  |  | +                            "-D__DATE__=\"redacted\"",
 | 
	
		
			
				|  |  | +                            "-D__TIMESTAMP__=\"redacted\"",
 | 
	
		
			
				|  |  | +                            "-D__TIME__=\"redacted\"",
 | 
	
		
			
				|  |  | +                        ],
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    sysroot_feature = feature(
 | 
	
		
			
				|  |  | +        name = "sysroot",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_executable,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_dynamic_library,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_nodeps_dynamic_library,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["--sysroot=%{sysroot}"],
 | 
	
		
			
				|  |  | +                        iterate_over = "sysroot",
 | 
	
		
			
				|  |  | +                        expand_if_available = "sysroot",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    unfiltered_compile_flags_feature = feature(
 | 
	
		
			
				|  |  | +        name = "unfiltered_compile_flags",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["%{unfiltered_compile_flags}"],
 | 
	
		
			
				|  |  | +                        iterate_over = "unfiltered_compile_flags",
 | 
	
		
			
				|  |  | +                        expand_if_available = "unfiltered_compile_flags",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    compiler_param_file_feature = feature(
 | 
	
		
			
				|  |  | +        name = "compiler_param_file",
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    copy_dynamic_libraries_to_binary_feature = feature(name = "copy_dynamic_libraries_to_binary")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    input_param_flags_feature = feature(
 | 
	
		
			
				|  |  | +        name = "input_param_flags",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_dynamic_library,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_nodeps_dynamic_library,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["/IMPLIB:%{interface_library_output_path}"],
 | 
	
		
			
				|  |  | +                        expand_if_available = "interface_library_output_path",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["%{libopts}"],
 | 
	
		
			
				|  |  | +                        iterate_over = "libopts",
 | 
	
		
			
				|  |  | +                        expand_if_available = "libopts",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions +
 | 
	
		
			
				|  |  | +                          [ACTION_NAMES.cpp_link_static_library],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        iterate_over = "libraries_to_link",
 | 
	
		
			
				|  |  | +                        flag_groups = [
 | 
	
		
			
				|  |  | +                            flag_group(
 | 
	
		
			
				|  |  | +                                iterate_over = "libraries_to_link.object_files",
 | 
	
		
			
				|  |  | +                                flag_groups = [flag_group(flags = ["%{libraries_to_link.object_files}"])],
 | 
	
		
			
				|  |  | +                                expand_if_equal = variable_with_value(
 | 
	
		
			
				|  |  | +                                    name = "libraries_to_link.type",
 | 
	
		
			
				|  |  | +                                    value = "object_file_group",
 | 
	
		
			
				|  |  | +                                ),
 | 
	
		
			
				|  |  | +                            ),
 | 
	
		
			
				|  |  | +                            flag_group(
 | 
	
		
			
				|  |  | +                                flag_groups = [flag_group(flags = ["%{libraries_to_link.name}"])],
 | 
	
		
			
				|  |  | +                                expand_if_equal = variable_with_value(
 | 
	
		
			
				|  |  | +                                    name = "libraries_to_link.type",
 | 
	
		
			
				|  |  | +                                    value = "object_file",
 | 
	
		
			
				|  |  | +                                ),
 | 
	
		
			
				|  |  | +                            ),
 | 
	
		
			
				|  |  | +                            flag_group(
 | 
	
		
			
				|  |  | +                                flag_groups = [flag_group(flags = ["%{libraries_to_link.name}"])],
 | 
	
		
			
				|  |  | +                                expand_if_equal = variable_with_value(
 | 
	
		
			
				|  |  | +                                    name = "libraries_to_link.type",
 | 
	
		
			
				|  |  | +                                    value = "interface_library",
 | 
	
		
			
				|  |  | +                                ),
 | 
	
		
			
				|  |  | +                            ),
 | 
	
		
			
				|  |  | +                            flag_group(
 | 
	
		
			
				|  |  | +                                flag_groups = [
 | 
	
		
			
				|  |  | +                                  flag_group(
 | 
	
		
			
				|  |  | +                                      flags = ["%{libraries_to_link.name}"],
 | 
	
		
			
				|  |  | +                                      expand_if_false = "libraries_to_link.is_whole_archive",
 | 
	
		
			
				|  |  | +                                  ),
 | 
	
		
			
				|  |  | +                                  flag_group(
 | 
	
		
			
				|  |  | +                                      flags = ["/WHOLEARCHIVE:%{libraries_to_link.name}"],
 | 
	
		
			
				|  |  | +                                      expand_if_true = "libraries_to_link.is_whole_archive",
 | 
	
		
			
				|  |  | +                                  ),
 | 
	
		
			
				|  |  | +                                ],
 | 
	
		
			
				|  |  | +                                expand_if_equal = variable_with_value(
 | 
	
		
			
				|  |  | +                                    name = "libraries_to_link.type",
 | 
	
		
			
				|  |  | +                                    value = "static_library",
 | 
	
		
			
				|  |  | +                                ),
 | 
	
		
			
				|  |  | +                            ),
 | 
	
		
			
				|  |  | +                        ],
 | 
	
		
			
				|  |  | +                        expand_if_available = "libraries_to_link",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    fastbuild_feature = feature(
 | 
	
		
			
				|  |  | +        name = "fastbuild",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile],
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/Od", "/Z7"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["/DEBUG:FASTLINK", "/INCREMENTAL:NO"],
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        implies = ["generate_pdb_file"],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    user_compile_flags_feature = feature(
 | 
	
		
			
				|  |  | +        name = "user_compile_flags",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["%{user_compile_flags}"],
 | 
	
		
			
				|  |  | +                        iterate_over = "user_compile_flags",
 | 
	
		
			
				|  |  | +                        expand_if_available = "user_compile_flags",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    archiver_flags_feature = feature(
 | 
	
		
			
				|  |  | +        name = "archiver_flags",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [ACTION_NAMES.cpp_link_static_library],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["/OUT:%{output_execpath}"],
 | 
	
		
			
				|  |  | +                        expand_if_available = "output_execpath",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["/MACHINE:X64"]
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    default_link_flags_feature = feature(
 | 
	
		
			
				|  |  | +        name = "default_link_flags",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/MACHINE:X64"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +         ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    static_link_msvcrt_feature = feature(name = "static_link_msvcrt")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    dynamic_link_msvcrt_debug_feature = feature(
 | 
	
		
			
				|  |  | +        name = "dynamic_link_msvcrt_debug",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile],
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/MDd"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/DEFAULTLIB:msvcrtd.lib"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        requires = [feature_set(features = ["dbg"])],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    dbg_feature = feature(
 | 
	
		
			
				|  |  | +        name = "dbg",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile],
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/Od", "/Z7"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                  flag_group(
 | 
	
		
			
				|  |  | +                      flags = ["/DEBUG:FULL", "/INCREMENTAL:NO"],
 | 
	
		
			
				|  |  | +                  ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        implies = ["generate_pdb_file"],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    opt_feature = feature(
 | 
	
		
			
				|  |  | +        name = "opt",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile],
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/O2"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        implies = ["frame_pointer"],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    supports_interface_shared_libraries_feature = feature(
 | 
	
		
			
				|  |  | +        name = "supports_interface_shared_libraries",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    user_link_flags_feature = feature(
 | 
	
		
			
				|  |  | +        name = "user_link_flags",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["%{user_link_flags}"],
 | 
	
		
			
				|  |  | +                        iterate_over = "user_link_flags",
 | 
	
		
			
				|  |  | +                        expand_if_available = "user_link_flags",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    default_compile_flags_feature = feature(
 | 
	
		
			
				|  |  | +        name = "default_compile_flags",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.linkstamp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.lto_backend,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.clif_match,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = [
 | 
	
		
			
				|  |  | +                            "/DCOMPILER_MSVC",
 | 
	
		
			
				|  |  | +                            "/DNOMINMAX",
 | 
	
		
			
				|  |  | +                            "/D_WIN32_WINNT=0x0601",
 | 
	
		
			
				|  |  | +                            "/D_CRT_SECURE_NO_DEPRECATE",
 | 
	
		
			
				|  |  | +                            "/D_CRT_SECURE_NO_WARNINGS",
 | 
	
		
			
				|  |  | +                            "/bigobj",
 | 
	
		
			
				|  |  | +                            "/Zm500",
 | 
	
		
			
				|  |  | +                            "/EHsc",
 | 
	
		
			
				|  |  | +                            "/wd4351",
 | 
	
		
			
				|  |  | +                            "/wd4291",
 | 
	
		
			
				|  |  | +                            "/wd4250",
 | 
	
		
			
				|  |  | +                            "/wd4996",
 | 
	
		
			
				|  |  | +                        ],
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    msvc_compile_env_feature = feature(
 | 
	
		
			
				|  |  | +        name = "msvc_compile_env",
 | 
	
		
			
				|  |  | +        env_sets = [
 | 
	
		
			
				|  |  | +            env_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                env_entries = [env_entry(key = "INCLUDE", value = "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\INCLUDE;C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.10240.0\\ucrt;C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\shared;C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\um;C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\winrt;")],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    preprocessor_defines_feature = feature(
 | 
	
		
			
				|  |  | +        name = "preprocessor_defines",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["/D%{preprocessor_defines}"],
 | 
	
		
			
				|  |  | +                        iterate_over = "preprocessor_defines",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    generate_pdb_file_feature = feature(
 | 
	
		
			
				|  |  | +        name = "generate_pdb_file",
 | 
	
		
			
				|  |  | +        requires = [
 | 
	
		
			
				|  |  | +            feature_set(features = ["dbg"]),
 | 
	
		
			
				|  |  | +            feature_set(features = ["fastbuild"]),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    output_execpath_flags_feature = feature(
 | 
	
		
			
				|  |  | +        name = "output_execpath_flags",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["/OUT:%{output_execpath}"],
 | 
	
		
			
				|  |  | +                        expand_if_available = "output_execpath",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    dynamic_link_msvcrt_no_debug_feature = feature(
 | 
	
		
			
				|  |  | +        name = "dynamic_link_msvcrt_no_debug",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile],
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/MD"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/DEFAULTLIB:msvcrt.lib"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +          ],
 | 
	
		
			
				|  |  | +          requires = [
 | 
	
		
			
				|  |  | +              feature_set(features = ["fastbuild"]),
 | 
	
		
			
				|  |  | +              feature_set(features = ["opt"]),
 | 
	
		
			
				|  |  | +          ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    disable_assertions_feature = feature(
 | 
	
		
			
				|  |  | +        name = "disable_assertions",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile],
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/DNDEBUG"])],
 | 
	
		
			
				|  |  | +                with_features = [with_feature_set(features = ["opt"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    has_configured_linker_path_feature = feature(name = "has_configured_linker_path")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    supports_dynamic_linker_feature = feature(name = "supports_dynamic_linker", enabled = True)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    no_stripping_feature = feature(name = "no_stripping")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    linker_param_file_feature = feature(
 | 
	
		
			
				|  |  | +        name = "linker_param_file",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions +
 | 
	
		
			
				|  |  | +                          [ACTION_NAMES.cpp_link_static_library],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["@%{linker_param_file}"],
 | 
	
		
			
				|  |  | +                        expand_if_available = "linker_param_file",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    ignore_noisy_warnings_feature = feature(
 | 
	
		
			
				|  |  | +        name = "ignore_noisy_warnings",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [ACTION_NAMES.cpp_link_static_library],
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/ignore:4221"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    no_legacy_features_feature = feature(name = "no_legacy_features")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    parse_showincludes_feature = feature(
 | 
	
		
			
				|  |  | +        name = "parse_showincludes",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/showIncludes"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    static_link_msvcrt_no_debug_feature = feature(
 | 
	
		
			
				|  |  | +        name = "static_link_msvcrt_no_debug",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile],
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/MT"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/DEFAULTLIB:libcmt.lib"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        requires = [
 | 
	
		
			
				|  |  | +            feature_set(features = ["fastbuild"]),
 | 
	
		
			
				|  |  | +            feature_set(features = ["opt"]),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    treat_warnings_as_errors_feature = feature(
 | 
	
		
			
				|  |  | +        name = "treat_warnings_as_errors",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile],
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/WX"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    windows_export_all_symbols_feature = feature(name = "windows_export_all_symbols")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    no_windows_export_all_symbols_feature = feature(name = "no_windows_export_all_symbols")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    include_paths_feature = feature(
 | 
	
		
			
				|  |  | +        name = "include_paths",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["/I%{quote_include_paths}"],
 | 
	
		
			
				|  |  | +                        iterate_over = "quote_include_paths",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["/I%{include_paths}"],
 | 
	
		
			
				|  |  | +                        iterate_over = "include_paths",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["/I%{system_include_paths}"],
 | 
	
		
			
				|  |  | +                        iterate_over = "system_include_paths",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    linkstamps_feature = feature(
 | 
	
		
			
				|  |  | +        name = "linkstamps",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["%{linkstamp_paths}"],
 | 
	
		
			
				|  |  | +                        iterate_over = "linkstamp_paths",
 | 
	
		
			
				|  |  | +                        expand_if_available = "linkstamp_paths",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    targets_windows_feature = feature(
 | 
	
		
			
				|  |  | +        name = "targets_windows",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        implies = ["copy_dynamic_libraries_to_binary"],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    linker_subsystem_flag_feature = feature(
 | 
	
		
			
				|  |  | +        name = "linker_subsystem_flag",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/SUBSYSTEM:CONSOLE"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    static_link_msvcrt_debug_feature = feature(
 | 
	
		
			
				|  |  | +        name = "static_link_msvcrt_debug",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile],
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/MTd"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/DEFAULTLIB:libcmtd.lib"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        requires = [feature_set(features = ["dbg"])],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    frame_pointer_feature = feature(
 | 
	
		
			
				|  |  | +        name = "frame_pointer",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile],
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/Oy-"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    compiler_output_flags_feature = feature(
 | 
	
		
			
				|  |  | +        name = "compiler_output_flags",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [ACTION_NAMES.assemble],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                  flag_group(
 | 
	
		
			
				|  |  | +                      flag_groups = [
 | 
	
		
			
				|  |  | +                          flag_group(
 | 
	
		
			
				|  |  | +                              flags = ["/Fo%{output_file}", "/Zi"],
 | 
	
		
			
				|  |  | +                              expand_if_available = "output_file",
 | 
	
		
			
				|  |  | +                              expand_if_not_available = "output_assembly_file",
 | 
	
		
			
				|  |  | +                          ),
 | 
	
		
			
				|  |  | +                      ],
 | 
	
		
			
				|  |  | +                      expand_if_not_available = "output_preprocess_file",
 | 
	
		
			
				|  |  | +                  ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flag_groups = [
 | 
	
		
			
				|  |  | +                            flag_group(
 | 
	
		
			
				|  |  | +                                flags = ["/Fo%{output_file}"],
 | 
	
		
			
				|  |  | +                                expand_if_not_available = "output_preprocess_file",
 | 
	
		
			
				|  |  | +                            ),
 | 
	
		
			
				|  |  | +                        ],
 | 
	
		
			
				|  |  | +                        expand_if_available = "output_file",
 | 
	
		
			
				|  |  | +                        expand_if_not_available = "output_assembly_file",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flag_groups = [
 | 
	
		
			
				|  |  | +                            flag_group(
 | 
	
		
			
				|  |  | +                                flags = ["/Fa%{output_file}"],
 | 
	
		
			
				|  |  | +                                expand_if_available = "output_assembly_file",
 | 
	
		
			
				|  |  | +                            ),
 | 
	
		
			
				|  |  | +                        ],
 | 
	
		
			
				|  |  | +                        expand_if_available = "output_file",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flag_groups = [
 | 
	
		
			
				|  |  | +                            flag_group(
 | 
	
		
			
				|  |  | +                                flags = ["/P", "/Fi%{output_file}"],
 | 
	
		
			
				|  |  | +                                expand_if_available = "output_preprocess_file",
 | 
	
		
			
				|  |  | +                            ),
 | 
	
		
			
				|  |  | +                        ],
 | 
	
		
			
				|  |  | +                        expand_if_available = "output_file",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    nologo_feature = feature(
 | 
	
		
			
				|  |  | +        name = "nologo",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_executable,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_dynamic_library,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_nodeps_dynamic_library,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_static_library,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/nologo"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    smaller_binary_feature = feature(
 | 
	
		
			
				|  |  | +        name = "smaller_binary",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile],
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/Gy", "/Gw"])],
 | 
	
		
			
				|  |  | +                with_features = [with_feature_set(features = ["opt"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = [flag_group(flags = ["/OPT:ICF", "/OPT:REF"])],
 | 
	
		
			
				|  |  | +                with_features = [with_feature_set(features = ["opt"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    compiler_input_flags_feature = feature(
 | 
	
		
			
				|  |  | +        name = "compiler_input_flags",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["/c", "%{source_file}"],
 | 
	
		
			
				|  |  | +                        expand_if_available = "source_file",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    def_file_feature = feature(
 | 
	
		
			
				|  |  | +        name = "def_file",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                    flag_group(
 | 
	
		
			
				|  |  | +                        flags = ["/DEF:%{def_file_path}", "/ignore:4070"],
 | 
	
		
			
				|  |  | +                        expand_if_available = "def_file_path",
 | 
	
		
			
				|  |  | +                    ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    msvc_env_feature = feature(
 | 
	
		
			
				|  |  | +        name = "msvc_env",
 | 
	
		
			
				|  |  | +        env_sets = [
 | 
	
		
			
				|  |  | +            env_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_executable,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_dynamic_library,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_nodeps_dynamic_library,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_static_library,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                env_entries = [
 | 
	
		
			
				|  |  | +                    env_entry(key = "PATH", value = "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\amd64;C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319;C:\\Windows\\Microsoft.NET\\Framework64\\;C:\\Program Files (x86)\\Windows Kits\\8.1\\bin\\x64;C:\\Program Files (x86)\\Windows Kits\\8.1\\bin\\x86;;C:\\Windows\\system32"),
 | 
	
		
			
				|  |  | +                    env_entry(key = "TMP", value = "C:\\Users\\ContainerAdministrator\\AppData\\Local\\Temp"),
 | 
	
		
			
				|  |  | +                    env_entry(key = "TEMP", value = "C:\\Users\\ContainerAdministrator\\AppData\\Local\\Temp"),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        implies = ["msvc_compile_env", "msvc_link_env"],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    features = [
 | 
	
		
			
				|  |  | +        no_legacy_features_feature,
 | 
	
		
			
				|  |  | +        nologo_feature,
 | 
	
		
			
				|  |  | +        has_configured_linker_path_feature,
 | 
	
		
			
				|  |  | +        no_stripping_feature,
 | 
	
		
			
				|  |  | +        targets_windows_feature,
 | 
	
		
			
				|  |  | +        copy_dynamic_libraries_to_binary_feature,
 | 
	
		
			
				|  |  | +        default_compile_flags_feature,
 | 
	
		
			
				|  |  | +        msvc_env_feature,
 | 
	
		
			
				|  |  | +        msvc_compile_env_feature,
 | 
	
		
			
				|  |  | +        msvc_link_env_feature,
 | 
	
		
			
				|  |  | +        include_paths_feature,
 | 
	
		
			
				|  |  | +        preprocessor_defines_feature,
 | 
	
		
			
				|  |  | +        parse_showincludes_feature,
 | 
	
		
			
				|  |  | +        generate_pdb_file_feature,
 | 
	
		
			
				|  |  | +        shared_flag_feature,
 | 
	
		
			
				|  |  | +        linkstamps_feature,
 | 
	
		
			
				|  |  | +        output_execpath_flags_feature,
 | 
	
		
			
				|  |  | +        archiver_flags_feature,
 | 
	
		
			
				|  |  | +        input_param_flags_feature,
 | 
	
		
			
				|  |  | +        linker_subsystem_flag_feature,
 | 
	
		
			
				|  |  | +        user_link_flags_feature,
 | 
	
		
			
				|  |  | +        default_link_flags_feature,
 | 
	
		
			
				|  |  | +        linker_param_file_feature,
 | 
	
		
			
				|  |  | +        static_link_msvcrt_feature,
 | 
	
		
			
				|  |  | +        static_link_msvcrt_no_debug_feature,
 | 
	
		
			
				|  |  | +        dynamic_link_msvcrt_no_debug_feature,
 | 
	
		
			
				|  |  | +        static_link_msvcrt_debug_feature,
 | 
	
		
			
				|  |  | +        dynamic_link_msvcrt_debug_feature,
 | 
	
		
			
				|  |  | +        dbg_feature,
 | 
	
		
			
				|  |  | +        fastbuild_feature,
 | 
	
		
			
				|  |  | +        opt_feature,
 | 
	
		
			
				|  |  | +        frame_pointer_feature,
 | 
	
		
			
				|  |  | +        disable_assertions_feature,
 | 
	
		
			
				|  |  | +        determinism_feature,
 | 
	
		
			
				|  |  | +        treat_warnings_as_errors_feature,
 | 
	
		
			
				|  |  | +        smaller_binary_feature,
 | 
	
		
			
				|  |  | +        ignore_noisy_warnings_feature,
 | 
	
		
			
				|  |  | +        user_compile_flags_feature,
 | 
	
		
			
				|  |  | +        sysroot_feature,
 | 
	
		
			
				|  |  | +        unfiltered_compile_flags_feature,
 | 
	
		
			
				|  |  | +        compiler_param_file_feature,
 | 
	
		
			
				|  |  | +        compiler_output_flags_feature,
 | 
	
		
			
				|  |  | +        compiler_input_flags_feature,
 | 
	
		
			
				|  |  | +        def_file_feature,
 | 
	
		
			
				|  |  | +        windows_export_all_symbols_feature,
 | 
	
		
			
				|  |  | +        no_windows_export_all_symbols_feature,
 | 
	
		
			
				|  |  | +        supports_dynamic_linker_feature,
 | 
	
		
			
				|  |  | +        supports_interface_shared_libraries_feature,
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    artifact_name_patterns = [
 | 
	
		
			
				|  |  | +        artifact_name_pattern(
 | 
	
		
			
				|  |  | +            category_name = "object_file",
 | 
	
		
			
				|  |  | +            prefix = "",
 | 
	
		
			
				|  |  | +            extension = ".obj",
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +        artifact_name_pattern(
 | 
	
		
			
				|  |  | +            category_name = "static_library",
 | 
	
		
			
				|  |  | +            prefix = "",
 | 
	
		
			
				|  |  | +            extension = ".lib",
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +        artifact_name_pattern(
 | 
	
		
			
				|  |  | +            category_name = "alwayslink_static_library",
 | 
	
		
			
				|  |  | +            prefix = "",
 | 
	
		
			
				|  |  | +            extension = ".lo.lib",
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +        artifact_name_pattern(
 | 
	
		
			
				|  |  | +            category_name = "executable",
 | 
	
		
			
				|  |  | +            prefix = "",
 | 
	
		
			
				|  |  | +            extension = ".exe",
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +        artifact_name_pattern(
 | 
	
		
			
				|  |  | +            category_name = "dynamic_library",
 | 
	
		
			
				|  |  | +            prefix = "",
 | 
	
		
			
				|  |  | +            extension = ".dll",
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +        artifact_name_pattern(
 | 
	
		
			
				|  |  | +            category_name = "interface_library",
 | 
	
		
			
				|  |  | +            prefix = "",
 | 
	
		
			
				|  |  | +            extension = ".if.lib",
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    make_variables = []
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    tool_paths = [
 | 
	
		
			
				|  |  | +        tool_path(name = "ar", path = "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/lib.exe"),
 | 
	
		
			
				|  |  | +        tool_path(name = "ml", path = "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/ml64.exe"),
 | 
	
		
			
				|  |  | +        tool_path(name = "cpp", path = "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe"),
 | 
	
		
			
				|  |  | +        tool_path(name = "gcc", path = "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe"),
 | 
	
		
			
				|  |  | +        tool_path(name = "gcov", path = "wrapper/bin/msvc_nop.bat"),
 | 
	
		
			
				|  |  | +        tool_path(name = "ld", path = "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/link.exe"),
 | 
	
		
			
				|  |  | +        tool_path(name = "nm", path = "wrapper/bin/msvc_nop.bat"),
 | 
	
		
			
				|  |  | +        tool_path(
 | 
	
		
			
				|  |  | +            name = "objcopy",
 | 
	
		
			
				|  |  | +            path = "wrapper/bin/msvc_nop.bat",
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +        tool_path(
 | 
	
		
			
				|  |  | +            name = "objdump",
 | 
	
		
			
				|  |  | +            path = "wrapper/bin/msvc_nop.bat",
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +        tool_path(
 | 
	
		
			
				|  |  | +            name = "strip",
 | 
	
		
			
				|  |  | +            path = "wrapper/bin/msvc_nop.bat",
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    return cc_common.create_cc_toolchain_config_info(
 | 
	
		
			
				|  |  | +        ctx = ctx,
 | 
	
		
			
				|  |  | +        features = features,
 | 
	
		
			
				|  |  | +        action_configs = action_configs,
 | 
	
		
			
				|  |  | +        artifact_name_patterns = artifact_name_patterns,
 | 
	
		
			
				|  |  | +        cxx_builtin_include_directories = cxx_builtin_include_directories,
 | 
	
		
			
				|  |  | +        toolchain_identifier = toolchain_identifier,
 | 
	
		
			
				|  |  | +        host_system_name = host_system_name,
 | 
	
		
			
				|  |  | +        target_system_name = target_system_name,
 | 
	
		
			
				|  |  | +        target_cpu = target_cpu,
 | 
	
		
			
				|  |  | +        target_libc = target_libc,
 | 
	
		
			
				|  |  | +        compiler = compiler,
 | 
	
		
			
				|  |  | +        abi_version = abi_version,
 | 
	
		
			
				|  |  | +        abi_libc_version = abi_libc_version,
 | 
	
		
			
				|  |  | +        tool_paths = tool_paths,
 | 
	
		
			
				|  |  | +        make_variables = make_variables,
 | 
	
		
			
				|  |  | +        builtin_sysroot = builtin_sysroot,
 | 
	
		
			
				|  |  | +        cc_target_os = None,
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def _windows_msys_mingw_impl(ctx):
 | 
	
		
			
				|  |  | +    toolchain_identifier = "msys_x64_mingw"
 | 
	
		
			
				|  |  | +    host_system_name = "local"
 | 
	
		
			
				|  |  | +    target_system_name = "local"
 | 
	
		
			
				|  |  | +    target_cpu = "x64_windows"
 | 
	
		
			
				|  |  | +    target_libc = "mingw"
 | 
	
		
			
				|  |  | +    compiler = "mingw-gcc"
 | 
	
		
			
				|  |  | +    abi_version = "local"
 | 
	
		
			
				|  |  | +    abi_libc_version = "local"
 | 
	
		
			
				|  |  | +    cc_target_os = None
 | 
	
		
			
				|  |  | +    builtin_sysroot = None
 | 
	
		
			
				|  |  | +    action_configs = []
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    targets_windows_feature = feature(
 | 
	
		
			
				|  |  | +        name = "targets_windows",
 | 
	
		
			
				|  |  | +        implies = ["copy_dynamic_libraries_to_binary"],
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    copy_dynamic_libraries_to_binary_feature = feature(name= "copy_dynamic_libraries_to_binary")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    gcc_env_feature = feature(
 | 
	
		
			
				|  |  | +        name = "gcc_env",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        env_sets = [
 | 
	
		
			
				|  |  | +            env_set (
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_executable,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_dynamic_library,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_nodeps_dynamic_library,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_static_library,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                env_entries = [
 | 
	
		
			
				|  |  | +                    env_entry(key = "PATH", value = "c:/tools/msys64/mingw64/bin")
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    msys_mingw_flags = [
 | 
	
		
			
				|  |  | + "-std=gnu++0x"
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +    msys_mingw_link_flags = [
 | 
	
		
			
				|  |  | + "-lstdc++"
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    default_compile_flags_feature = feature(
 | 
	
		
			
				|  |  | +        name = "default_compile_flags",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.linkstamp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.lto_backend,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.clif_match,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.linkstamp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.lto_backend,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.clif_match,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = ([flag_group(flags = msys_mingw_flags)] if msys_mingw_flags else []),
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    compiler_param_file_feature = feature(
 | 
	
		
			
				|  |  | +        name = "compiler_param_file",
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    default_link_flags_feature = feature(
 | 
	
		
			
				|  |  | +        name = "default_link_flags",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = ([flag_group(flags = msys_mingw_link_flags)] if msys_mingw_link_flags else []),
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    supports_dynamic_linker_feature = feature(name = "supports_dynamic_linker", enabled = True)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    features = [
 | 
	
		
			
				|  |  | +        targets_windows_feature,
 | 
	
		
			
				|  |  | +        copy_dynamic_libraries_to_binary_feature,
 | 
	
		
			
				|  |  | +        gcc_env_feature,
 | 
	
		
			
				|  |  | +        default_compile_flags_feature,
 | 
	
		
			
				|  |  | +        compiler_param_file_feature,
 | 
	
		
			
				|  |  | +        default_link_flags_feature,
 | 
	
		
			
				|  |  | +        supports_dynamic_linker_feature,
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    cxx_builtin_include_directories = [
 | 
	
		
			
				|  |  | +        # This is a workaround for https://github.com/bazelbuild/bazel/issues/5087.
 | 
	
		
			
				|  |  | +        "C:\\botcode\\w",
 | 
	
		
			
				|  |  | +        "c:/tools/msys64/mingw64/",
 | 
	
		
			
				|  |  | +        "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\INCLUDE",
 | 
	
		
			
				|  |  | +        "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.10240.0\\ucrt",
 | 
	
		
			
				|  |  | +        "C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\shared",
 | 
	
		
			
				|  |  | +        "C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\um",
 | 
	
		
			
				|  |  | +        "C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\winrt"
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    artifact_name_patterns = [
 | 
	
		
			
				|  |  | +        artifact_name_pattern(
 | 
	
		
			
				|  |  | +            category_name = "executable",
 | 
	
		
			
				|  |  | +            prefix = "",
 | 
	
		
			
				|  |  | +            extension = ".exe",
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    make_variables = []
 | 
	
		
			
				|  |  | +    tool_paths = [
 | 
	
		
			
				|  |  | +        tool_path (name= "ar", path= "c:/tools/msys64/mingw64/bin/ar"),
 | 
	
		
			
				|  |  | +        tool_path (name= "compat-ld", path= "c:/tools/msys64/mingw64/bin/ld"),
 | 
	
		
			
				|  |  | +        tool_path (name= "cpp", path= "c:/tools/msys64/mingw64/bin/cpp"),
 | 
	
		
			
				|  |  | +        tool_path (name= "dwp", path= "c:/tools/msys64/mingw64/bin/dwp"),
 | 
	
		
			
				|  |  | +        tool_path (name= "gcc", path= "c:/tools/msys64/mingw64/bin/gcc"),
 | 
	
		
			
				|  |  | +        tool_path (name= "gcov", path= "c:/tools/msys64/mingw64/bin/gcov"),
 | 
	
		
			
				|  |  | +        tool_path (name= "ld", path= "c:/tools/msys64/mingw64/bin/ld"),
 | 
	
		
			
				|  |  | +        tool_path (name= "nm", path= "c:/tools/msys64/mingw64/bin/nm"),
 | 
	
		
			
				|  |  | +        tool_path (name= "objcopy", path= "c:/tools/msys64/mingw64/bin/objcopy"),
 | 
	
		
			
				|  |  | +        tool_path (name= "objdump", path= "c:/tools/msys64/mingw64/bin/objdump"),
 | 
	
		
			
				|  |  | +        tool_path (name= "strip", path= "c:/tools/msys64/mingw64/bin/strip"),
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    return cc_common.create_cc_toolchain_config_info(
 | 
	
		
			
				|  |  | +        ctx = ctx,
 | 
	
		
			
				|  |  | +        features = features,
 | 
	
		
			
				|  |  | +        action_configs = action_configs,
 | 
	
		
			
				|  |  | +        artifact_name_patterns = artifact_name_patterns,
 | 
	
		
			
				|  |  | +        cxx_builtin_include_directories = cxx_builtin_include_directories,
 | 
	
		
			
				|  |  | +        toolchain_identifier = toolchain_identifier,
 | 
	
		
			
				|  |  | +        host_system_name = host_system_name,
 | 
	
		
			
				|  |  | +        target_system_name = target_system_name,
 | 
	
		
			
				|  |  | +        target_cpu = target_cpu,
 | 
	
		
			
				|  |  | +        target_libc = target_libc,
 | 
	
		
			
				|  |  | +        compiler = compiler,
 | 
	
		
			
				|  |  | +        abi_version = abi_version,
 | 
	
		
			
				|  |  | +        abi_libc_version = abi_libc_version,
 | 
	
		
			
				|  |  | +        tool_paths = tool_paths,
 | 
	
		
			
				|  |  | +        make_variables = make_variables,
 | 
	
		
			
				|  |  | +        builtin_sysroot = builtin_sysroot,
 | 
	
		
			
				|  |  | +        cc_target_os = cc_target_os)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def _armeabi_impl(ctx):
 | 
	
		
			
				|  |  | +    toolchain_identifier = "stub_armeabi-v7a"
 | 
	
		
			
				|  |  | +    host_system_name = "armeabi-v7a"
 | 
	
		
			
				|  |  | +    target_system_name = "armeabi-v7a"
 | 
	
		
			
				|  |  | +    target_cpu = "armeabi-v7a"
 | 
	
		
			
				|  |  | +    target_libc = "armeabi-v7a"
 | 
	
		
			
				|  |  | +    compiler = "compiler"
 | 
	
		
			
				|  |  | +    abi_version = "armeabi-v7a"
 | 
	
		
			
				|  |  | +    abi_libc_version = "armeabi-v7a"
 | 
	
		
			
				|  |  | +    cc_target_os = None
 | 
	
		
			
				|  |  | +    builtin_sysroot = None
 | 
	
		
			
				|  |  | +    action_configs = []
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    supports_pic_feature = feature(name = "supports_pic", enabled = True)
 | 
	
		
			
				|  |  | +    supports_dynamic_linker_feature = feature(name = "supports_dynamic_linker", enabled = True)
 | 
	
		
			
				|  |  | +    features = [supports_dynamic_linker_feature, supports_pic_feature]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    cxx_builtin_include_directories = [
 | 
	
		
			
				|  |  | +        # This is a workaround for https://github.com/bazelbuild/bazel/issues/5087.
 | 
	
		
			
				|  |  | +        "C:\\botcode\\w",]
 | 
	
		
			
				|  |  | +    artifact_name_patterns = []
 | 
	
		
			
				|  |  | +    make_variables = []
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    tool_paths = [
 | 
	
		
			
				|  |  | +        tool_path(name = "ar", path = "/bin/false"),
 | 
	
		
			
				|  |  | +        tool_path(name = "compat-ld", path = "/bin/false"),
 | 
	
		
			
				|  |  | +        tool_path(name = "cpp", path = "/bin/false"),
 | 
	
		
			
				|  |  | +        tool_path(name = "dwp", path = "/bin/false"),
 | 
	
		
			
				|  |  | +        tool_path(name = "gcc", path = "/bin/false"),
 | 
	
		
			
				|  |  | +        tool_path(name = "gcov", path = "/bin/false"),
 | 
	
		
			
				|  |  | +        tool_path(name = "ld", path = "/bin/false"),
 | 
	
		
			
				|  |  | +        tool_path(name = "nm", path = "/bin/false"),
 | 
	
		
			
				|  |  | +        tool_path(name = "objcopy", path = "/bin/false"),
 | 
	
		
			
				|  |  | +        tool_path(name = "objdump", path = "/bin/false"),
 | 
	
		
			
				|  |  | +        tool_path(name = "strip", path = "/bin/false"),
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    return cc_common.create_cc_toolchain_config_info(
 | 
	
		
			
				|  |  | +        ctx = ctx,
 | 
	
		
			
				|  |  | +        features = features,
 | 
	
		
			
				|  |  | +        action_configs = action_configs,
 | 
	
		
			
				|  |  | +        artifact_name_patterns = artifact_name_patterns,
 | 
	
		
			
				|  |  | +        cxx_builtin_include_directories = cxx_builtin_include_directories,
 | 
	
		
			
				|  |  | +        toolchain_identifier = toolchain_identifier,
 | 
	
		
			
				|  |  | +        host_system_name = host_system_name,
 | 
	
		
			
				|  |  | +        target_system_name = target_system_name,
 | 
	
		
			
				|  |  | +        target_cpu = target_cpu,
 | 
	
		
			
				|  |  | +        target_libc = target_libc,
 | 
	
		
			
				|  |  | +        compiler = compiler,
 | 
	
		
			
				|  |  | +        abi_version = abi_version,
 | 
	
		
			
				|  |  | +        abi_libc_version = abi_libc_version,
 | 
	
		
			
				|  |  | +        tool_paths = tool_paths,
 | 
	
		
			
				|  |  | +        make_variables = make_variables,
 | 
	
		
			
				|  |  | +        builtin_sysroot = builtin_sysroot,
 | 
	
		
			
				|  |  | +        cc_target_os = cc_target_os
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def _impl(ctx):
 | 
	
		
			
				|  |  | +    if ctx.attr.cpu == "armeabi-v7a":
 | 
	
		
			
				|  |  | +        return _armeabi_impl(ctx)
 | 
	
		
			
				|  |  | +    elif ctx.attr.cpu == "x64_windows" and ctx.attr.compiler == "msvc-cl":
 | 
	
		
			
				|  |  | +        return _windows_msvc_impl(ctx)
 | 
	
		
			
				|  |  | +    elif ctx.attr.cpu == "x64_windows" and ctx.attr.compiler == "mingw-gcc":
 | 
	
		
			
				|  |  | +        return _windows_msys_mingw_impl(ctx)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    tool_paths = [
 | 
	
		
			
				|  |  | +        tool_path (name= "ar", path= "c:/tools/msys64/usr/bin/ar"),
 | 
	
		
			
				|  |  | +        tool_path (name= "compat-ld", path= "c:/tools/msys64/usr/bin/ld"),
 | 
	
		
			
				|  |  | +        tool_path (name= "cpp", path= "c:/tools/msys64/usr/bin/cpp"),
 | 
	
		
			
				|  |  | +        tool_path (name= "dwp", path= "c:/tools/msys64/usr/bin/dwp"),
 | 
	
		
			
				|  |  | +        tool_path (name= "gcc", path= "c:/tools/msys64/usr/bin/gcc"),
 | 
	
		
			
				|  |  | +        tool_path (name= "gcov", path= "c:/tools/msys64/usr/bin/gcov"),
 | 
	
		
			
				|  |  | +        tool_path (name= "ld", path= "c:/tools/msys64/usr/bin/ld"),
 | 
	
		
			
				|  |  | +        tool_path (name= "nm", path= "c:/tools/msys64/usr/bin/nm"),
 | 
	
		
			
				|  |  | +        tool_path (name= "objcopy", path= "c:/tools/msys64/usr/bin/objcopy"),
 | 
	
		
			
				|  |  | +        tool_path (name= "objdump", path= "c:/tools/msys64/usr/bin/objdump"),
 | 
	
		
			
				|  |  | +        tool_path (name= "strip", path= "c:/tools/msys64/usr/bin/strip"),
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    cxx_builtin_include_directories = [
 | 
	
		
			
				|  |  | +        # This is a workaround for https://github.com/bazelbuild/bazel/issues/5087.
 | 
	
		
			
				|  |  | +        "C:\\botcode\\w",
 | 
	
		
			
				|  |  | +        "c:/tools/msys64/usr/",
 | 
	
		
			
				|  |  | +        "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\INCLUDE",
 | 
	
		
			
				|  |  | +        "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.10240.0\\ucrt",
 | 
	
		
			
				|  |  | +        "C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\shared",
 | 
	
		
			
				|  |  | +        "C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\um",
 | 
	
		
			
				|  |  | +        "C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\winrt"
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    action_configs = []
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    compile_flags = [
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    dbg_compile_flags = [
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    opt_compile_flags = [
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    cxx_flags = [
 | 
	
		
			
				|  |  | +        "-std=gnu++0x"
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    link_flags = [
 | 
	
		
			
				|  |  | +        "-lstdc++"
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    opt_link_flags = [
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    unfiltered_compile_flags = [
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    targets_windows_feature = feature(
 | 
	
		
			
				|  |  | +        name = "targets_windows",
 | 
	
		
			
				|  |  | +        implies = ["copy_dynamic_libraries_to_binary"],
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    copy_dynamic_libraries_to_binary_feature = feature(name= "copy_dynamic_libraries_to_binary")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    gcc_env_feature = feature(
 | 
	
		
			
				|  |  | +        name = "gcc_env",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        env_sets = [
 | 
	
		
			
				|  |  | +            env_set (
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_executable,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_dynamic_library,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_nodeps_dynamic_library,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_link_static_library,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                env_entries = [
 | 
	
		
			
				|  |  | +                    env_entry(key = "PATH", value = "c:/tools/msys64/usr/bin")
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    windows_features = [
 | 
	
		
			
				|  |  | +        targets_windows_feature,
 | 
	
		
			
				|  |  | +        copy_dynamic_libraries_to_binary_feature,
 | 
	
		
			
				|  |  | +        gcc_env_feature,
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    supports_pic_feature = feature(
 | 
	
		
			
				|  |  | +        name = "supports_pic",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +    supports_start_end_lib_feature = feature(
 | 
	
		
			
				|  |  | +        name = "supports_start_end_lib",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    default_compile_flags_feature = feature(
 | 
	
		
			
				|  |  | +        name = "default_compile_flags",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.linkstamp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.lto_backend,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.clif_match,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = ([flag_group(flags = compile_flags)] if compile_flags else []),
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.linkstamp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.lto_backend,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.clif_match,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = ([flag_group(flags = dbg_compile_flags)] if dbg_compile_flags else []),
 | 
	
		
			
				|  |  | +                with_features = [with_feature_set(features = ["dbg"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.linkstamp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.lto_backend,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.clif_match,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = ([flag_group(flags = opt_compile_flags)] if opt_compile_flags else []),
 | 
	
		
			
				|  |  | +                with_features = [with_feature_set(features = ["opt"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.linkstamp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.lto_backend,
 | 
	
		
			
				|  |  | +                    ACTION_NAMES.clif_match,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = ([flag_group(flags = cxx_flags)] if cxx_flags else []),
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    default_link_flags_feature = feature(
 | 
	
		
			
				|  |  | +        name = "default_link_flags",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = ([flag_group(flags = link_flags)] if link_flags else []),
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = all_link_actions,
 | 
	
		
			
				|  |  | +                flag_groups = ([flag_group(flags = opt_link_flags)] if opt_link_flags else []),
 | 
	
		
			
				|  |  | +                with_features = [with_feature_set(features = ["opt"])],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    dbg_feature = feature(name = "dbg")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    opt_feature = feature(name = "opt")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    sysroot_feature = feature(
 | 
	
		
			
				|  |  | +        name = "sysroot",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.linkstamp_compile,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.lto_backend,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.clif_match,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.cpp_link_executable,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.cpp_link_dynamic_library,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.cpp_link_nodeps_dynamic_library,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                  flag_group(
 | 
	
		
			
				|  |  | +                      flags = ["--sysroot=%{sysroot}"],
 | 
	
		
			
				|  |  | +                      expand_if_available = "sysroot",
 | 
	
		
			
				|  |  | +                  ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    fdo_optimize_feature = feature(
 | 
	
		
			
				|  |  | +        name = "fdo_optimize",
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                  flag_group(
 | 
	
		
			
				|  |  | +                      flags = [
 | 
	
		
			
				|  |  | +                        "-fprofile-use=%{fdo_profile_path}",
 | 
	
		
			
				|  |  | +                        "-fprofile-correction",
 | 
	
		
			
				|  |  | +                      ],
 | 
	
		
			
				|  |  | +                      expand_if_available = "fdo_profile_path",
 | 
	
		
			
				|  |  | +                  ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        provides = ["profile"],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    supports_dynamic_linker_feature = feature(name = "supports_dynamic_linker", enabled = True)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    user_compile_flags_feature = feature(
 | 
	
		
			
				|  |  | +        name = "user_compile_flags",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.linkstamp_compile,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.lto_backend,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.clif_match,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = [
 | 
	
		
			
				|  |  | +                  flag_group(
 | 
	
		
			
				|  |  | +                      flags = ["%{user_compile_flags}"],
 | 
	
		
			
				|  |  | +                      iterate_over = "user_compile_flags",
 | 
	
		
			
				|  |  | +                      expand_if_available = "user_compile_flags",
 | 
	
		
			
				|  |  | +                  ),
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +          ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    unfiltered_compile_flags_feature = feature(
 | 
	
		
			
				|  |  | +        name = "unfiltered_compile_flags",
 | 
	
		
			
				|  |  | +        enabled = True,
 | 
	
		
			
				|  |  | +        flag_sets = [
 | 
	
		
			
				|  |  | +            flag_set(
 | 
	
		
			
				|  |  | +                actions = [
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.assemble,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.preprocess_assemble,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.linkstamp_compile,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.c_compile,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.cpp_compile,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.cpp_header_parsing,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.cpp_module_compile,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.cpp_module_codegen,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.lto_backend,
 | 
	
		
			
				|  |  | +                  ACTION_NAMES.clif_match,
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                flag_groups = ([flag_group(flags = unfiltered_compile_flags)] if unfiltered_compile_flags else []),
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    features = windows_features + [
 | 
	
		
			
				|  |  | +        supports_pic_feature,
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        default_compile_flags_feature,
 | 
	
		
			
				|  |  | +        default_link_flags_feature,
 | 
	
		
			
				|  |  | +        fdo_optimize_feature,
 | 
	
		
			
				|  |  | +        supports_dynamic_linker_feature,
 | 
	
		
			
				|  |  | +        dbg_feature,
 | 
	
		
			
				|  |  | +        opt_feature,
 | 
	
		
			
				|  |  | +        user_compile_flags_feature,
 | 
	
		
			
				|  |  | +        sysroot_feature,
 | 
	
		
			
				|  |  | +        unfiltered_compile_flags_feature,
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    artifact_name_patterns = [
 | 
	
		
			
				|  |  | +        artifact_name_pattern(category_name="executable", prefix="", extension=".exe"),
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    make_variables = []
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    return cc_common.create_cc_toolchain_config_info(
 | 
	
		
			
				|  |  | +        ctx = ctx,
 | 
	
		
			
				|  |  | +        features = features,
 | 
	
		
			
				|  |  | +        action_configs = action_configs,
 | 
	
		
			
				|  |  | +        artifact_name_patterns = artifact_name_patterns,
 | 
	
		
			
				|  |  | +        cxx_builtin_include_directories = cxx_builtin_include_directories,
 | 
	
		
			
				|  |  | +        toolchain_identifier = "msys_x64",
 | 
	
		
			
				|  |  | +        host_system_name = "local",
 | 
	
		
			
				|  |  | +        target_system_name = "local",
 | 
	
		
			
				|  |  | +        target_cpu = "x64_windows",
 | 
	
		
			
				|  |  | +        target_libc = "msys",
 | 
	
		
			
				|  |  | +        compiler = "msys-gcc",
 | 
	
		
			
				|  |  | +        abi_version = "local",
 | 
	
		
			
				|  |  | +        abi_libc_version = "local",
 | 
	
		
			
				|  |  | +        tool_paths = tool_paths,
 | 
	
		
			
				|  |  | +        make_variables = make_variables,
 | 
	
		
			
				|  |  | +        builtin_sysroot = "",
 | 
	
		
			
				|  |  | +        cc_target_os = None,
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +cc_toolchain_config = rule(
 | 
	
		
			
				|  |  | +    implementation = _impl,
 | 
	
		
			
				|  |  | +    attrs = {
 | 
	
		
			
				|  |  | +        "cpu" : attr.string(mandatory = True),
 | 
	
		
			
				|  |  | +        "compiler": attr.string(),
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    provides = [CcToolchainConfigInfo],
 | 
	
		
			
				|  |  | +)
 | 
	
		
			
				|  |  | +
 |