summaryrefslogtreecommitdiff
path: root/vendor/logos-codegen/build.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/logos-codegen/build.rs')
-rw-r--r--vendor/logos-codegen/build.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/vendor/logos-codegen/build.rs b/vendor/logos-codegen/build.rs
new file mode 100644
index 00000000..f11a575f
--- /dev/null
+++ b/vendor/logos-codegen/build.rs
@@ -0,0 +1,21 @@
+use rustc_version::{version_meta, Version};
+
+fn main() {
+ let version_meta = version_meta().expect("Could not get Rust version");
+
+ let rustc_version = version_meta.semver;
+ let trimmed_rustc_version = Version::new(
+ rustc_version.major,
+ rustc_version.minor,
+ rustc_version.patch,
+ );
+
+ // Add cfg flag for Rust >= 1.82
+ // Required for precise capturing in edition 2024
+ // Due to changes in lifetime and type capture behavior for impl trait
+ // see: https://github.com/maciejhirsz/logos/issues/434, https://github.com/rust-lang/rfcs/pull/3498
+ println!("cargo:rustc-check-cfg=cfg(rust_1_82)");
+ if trimmed_rustc_version >= Version::new(1, 82, 0) {
+ println!("cargo:rustc-cfg=rust_1_82");
+ }
+}