Closed sivadeilra closed 1 month ago
I think this can be simplified by pushing the logic into the windows-bindgen
crate. Here's what I mean: #3079
The other improvements, like using windows-bindgen
instead of riddle
is great too, but those can be introduced separately.
This fixes a problem relating to the build script of the
crates/tests/standalone
crate. This build script runs bindgen on a variety of inputs and generates source code.The problem is that the build script modifies source code during a build script, and does so unconditionally. Because this process is relatively slow, these filesystem writes sometimes interfere with Git operations, because Git sees the intermediate (partially modified) state of these source files. This has been a big hassle for me in running Git operations.
The solution is to provide an optional behavior for
windows-bindgen
, which will cause it to check the existing contents of a file and will only overwrite the file if the file's contents have changed. If they are the same, no further action is taken. This is not ideal -- it's not a good idea to have builds modifying source code -- but at least it only does so when the contents need to change. This avoids a lot of conflicts with Rust Analyzer, Git, etc.