| Name: Checked in build outputs generated on Windows. |
| URL: https://source.chromium.org/chromium/chromium/src/+/main:third_party/win_build_output/ |
| Version: N/A |
| Date: 2024-10-23 |
| License: BSD-3-Clause |
| License File: //LICENSE |
| Security Critical: yes |
| Shipped: yes |
| Update Mechanism: Static (https://crbug.com/419414995) |
| |
| This directory contains outputs of some tools that run during the chrome/win |
| build and that exist only as closed-source Windows binaries and that are used |
| only in very few places of the build, and whose build inputs change almost |
| never. By checking in the outputs of these tools, the chrome/win build can |
| work on non-Windows hosts. |
| |
| On Windows, we run the tool and then compare its output with the checked-in |
| files. If they differ, we error out. In that case (e.g. when you change |
| the input files, or the tool versions), you need to copy the new outputs into |
| this directory. |
| |
| For mc.exe: |
| * mc.exe generates foo.h and foo.rc for input path\to\file.mc in |
| out\gn\gen\path\to. Copy over these two files to |
| third_party\win_build_output\mc\path\to. Then open foo.rc and copy all the |
| .bin files referenced from the .rc file (and delete all checked-in files not |
| in this list). |
| * This process can be automated by running `remc.bat` from the source directory, |
| e.g. `third_party\win_build_output\remc.bat` |
| * The outputs are verified during windows builds using |
| build/win/message_compiler.py. |
| |
| For midl.exe: |
| * midl.exe generates foo.h, foo.dlldata.c, foo_i.c, foo_p.i, foo_p.c, and |
| sometimes foo.tlb. Copy these 5 (or 6, if the .tlb file is present) to |
| third_party\win_build_output\midl\path\to\file. If there are multiple idl |
| files producing output in the same output directory, create directories called |
| "foo1.idl", "foo2.idl" etc in that directory and put the output for each idl |
| file into the directory named after the input file. Because midl.exe produces |
| different outputs for each target cpu, do one each and put the x86 outputs in |
| subfolder 'x86', x64 outputs in subfolder 'x64' and arm64 outputs in subfolder |
| 'arm64'. |
| * The generation process can be automated for all three targets using |
| tools/win/update_idl.py, e.g. `python3 tools\win\update_idl.py` |