From: Johannes Schindelin <johannes.schindelin@xxxxxx> The `build_rust.sh` script is quite opinionated about the naming scheme of the C compiler: It assumes that the xdiff library file will be named `libxdiff.a`. However, MS Visual C generates `xdiff.lib` files instead; This naming scheme has been in use in a very, very long time. Let's allow for that. Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> --- build_rust.sh | 7 ++++++- meson.build | 12 +++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/build_rust.sh b/build_rust.sh index 4c12135cd205..694d48d857a5 100755 --- a/build_rust.sh +++ b/build_rust.sh @@ -44,7 +44,12 @@ fi cd $dir_rust && cargo clean && pwd && cargo build -p $crate $rust_args; cd .. -libfile="lib${crate}.a" +if grep x86_64-pc-windows-msvc rust/target/.rustc_info.json +then + libfile="${crate}.lib" +else + libfile="lib${crate}.a" +fi dst=$dir_build/$libfile if [ "$dir_git_root" != "$dir_build" ]; then diff --git a/meson.build b/meson.build index 047d7e5b6630..5e89a5dd0e00 100644 --- a/meson.build +++ b/meson.build @@ -277,8 +277,16 @@ else rustflags = '-Aunused_imports -Adead_code -C debuginfo=2 -C opt-level=1 -C force-frame-pointers=yes' endif +compiler = meson.get_compiler('c') + +if compiler.get_id() == 'msvc' + xdiff_lib_filename = 'xdiff.lib' +else + xdiff_lib_filename = 'libxdiff.a' +endif + rust_build_xdiff = custom_target('rust_build_xdiff', - output: 'libxdiff.a', + output: xdiff_lib_filename, build_by_default: true, build_always_stale: true, command: [ @@ -288,8 +296,6 @@ rust_build_xdiff = custom_target('rust_build_xdiff', install: false, ) -compiler = meson.get_compiler('c') - libgit_sources = [ 'abspath.c', 'add-interactive.c', -- gitgitgadget