Get midl.exe to use clang-cl instead of cl

When is finished its work it invokes midl.exe to ensure that the
results are the same. midl.exe defaults to invoking cl.exe, and we want
to consistently use clang-cl.exe.

This change uses /cpp_cmd to specify the clang-cl compiler. It then uses
/cpp_opt to specify -Wno-nonportable-include-path because some of the
SDK .idl files include files using different case from the file on disk.
Typical warnings look like this:

  include\10.0.19041.0\um\unknwn.idl(28,10): warning:
  non-portable path to file '"Unknwnbase.Idl"'; specified path differs
  in case from file name on disk [-Wnonportable-include-path]
  #include "unknwnbase.idl"

When you use /cpp_opt then you are also responsible for specifying -E
and -nologo and for passing along all of the /D commands, so this change
does that as well.

Bug: 1097510
Change-Id: Iece8ae7395d9afb05652d0a40f333721b3207a9b
Commit-Queue: Bruce Dawson <>
Reviewed-by: Nico Weber <>
Cr-Commit-Position: refs/heads/master@{#781638}
GitOrigin-RevId: 7407ad20ed2ffc6f9ef71ab4da6bc1f709804899
2 files changed