From b7c62e200e0fbe600855e6a2d492286349cae4ae Mon Sep 17 00:00:00 2001 From: Pascal Kuthe Date: Sat, 22 Apr 2023 12:38:25 +0200 Subject: [PATCH] fix windows builds (#6845) --- helix-loader/src/grammar.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/helix-loader/src/grammar.rs b/helix-loader/src/grammar.rs index 3dac237c8..16955187e 100644 --- a/helix-loader/src/grammar.rs +++ b/helix-loader/src/grammar.rs @@ -433,11 +433,12 @@ fn build_tree_sitter_library( for (key, value) in compiler.env() { command.env(key, value); } + command.args(compiler.args()); // used to delay dropping the temporary object file until after the compilation is complete let _path_guard; - if cfg!(all(windows, target_env = "msvc")) { + if compiler.is_like_msvc() { command .args(["/nologo", "/LD", "/I"]) .arg(header_path) @@ -455,20 +456,20 @@ fn build_tree_sitter_library( } cpp_command.args(compiler.args()); let object_file = - library_path.with_file_name(format!("{}_scanner.o", &grammar.grammar_id)); + library_path.with_file_name(format!("{}_scanner.obj", &grammar.grammar_id)); cpp_command .args(["/nologo", "/LD", "/I"]) .arg(header_path) .arg("/Od") .arg("/utf-8") .arg("/std:c++14") - .arg("/o") - .arg(&object_file) + .arg(format!("/Fo{}", object_file.display())) .arg("/c") .arg(scanner_path); let output = cpp_command .output() .context("Failed to execute C++ compiler")?; + if !output.status.success() { return Err(anyhow!( "Parser compilation failed.\nStdout: {}\nStderr: {}",