From 896404c7ead29c4c19564581ccb53b913440a583 Mon Sep 17 00:00:00 2001 From: Pascal Kuthe Date: Fri, 14 Apr 2023 16:59:52 +0200 Subject: emit cargo metadata duiring build scripts to avoid outdated buildscript outputs (#6743) * rebuild on revision change * rerun grammar build if grammars change--- helix-loader/src/grammar.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'helix-loader/src/grammar.rs') diff --git a/helix-loader/src/grammar.rs b/helix-loader/src/grammar.rs index a85cb274..2eb59a38 100644 --- a/helix-loader/src/grammar.rs +++ b/helix-loader/src/grammar.rs @@ -413,6 +413,18 @@ fn build_tree_sitter_library( let mut library_path = parser_lib_path.join(&grammar.grammar_id); library_path.set_extension(DYLIB_EXTENSION); + // if we are running inside a buildscript emit cargo metadata + // to detect if we are running from a buildscript check some env variables + // that cargo only sets for build scripts + if std::env::var("OUT_DIR").is_ok() && std::env::var("CARGO").is_ok() { + if let Some(scanner_path) = scanner_path.as_ref().and_then(|path| path.to_str()) { + println!("cargo:rerun-if-changed={scanner_path}"); + } + if let Some(parser_path) = parser_path.to_str() { + println!("cargo:rerun-if-changed={parser_path}"); + } + } + let recompile = needs_recompile(&library_path, &parser_path, &scanner_path) .context("Failed to compare source and binary timestamps")?; -- cgit v1.2.3-70-g09d2