Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Introduce platform
host-windows-clang-cl
This is a preparation to build Mozc for Windows with clang-cl (#1179). Now that Windows Bazel builds rely on CC toolchain resolution (#1112), 'clang-cl' needs to be picked up based on 'platform' specified to Bazel. This gives us an inverse problem what needs to be passed to Bazel so that such a resolution can happen. The simplest solution as far as I have figures out is doing the following two steps. 1. Specify '--host_platform=//:host-windows-clang-cl', where it is defined as follows. platform( name = "host-windows-clang-cl", constraint_values = [ "@platforms//os:windows", "@bazel_tools//tools/cpp:clang-cl", ], parents = ["@local_config_platform//:host"], ) By doing this, '@bazel_tools//tools/cpp:clang-cl' can be propagated into each execution platform, which is mandatory for 'clang-cl' to be picked up. 2. Specify '--extra_toolchains' command line options to put the following toolchains from 'rules_cc' in higher priority than cl.exe. * '@local_config_cc//:cc-toolchain-x64_x86_windows-clang-cl' * '@local_config_cc//:cc-toolchain-x64_windows-clang-cl' This is important because CC toolchain resolution picks up the first toolchain that satisfies all the constraints. To give a higher priority to 'clang-cl' toolchains, they need to be registered before 'cl' toolchains are registered. Note that register_toolchains("@local_config_cc//:all") in 'MODULE.bazel' registers toolchains in the alphabeticall order. To give a higher priority to 'clang-cl' toolchains, '--extra_toolchains' command line looks to be the best way. What this commit does is the step 1. Without the step 2, there must be no observable behavior change yet.
- Loading branch information