2022-08-15 17:06:34 +03:00
|
|
|
use std::{
|
|
|
|
env,
|
|
|
|
fs::File,
|
|
|
|
io::{BufWriter, Write},
|
|
|
|
path::Path,
|
|
|
|
};
|
2022-08-09 04:49:06 +03:00
|
|
|
|
2023-11-23 14:20:12 +03:00
|
|
|
use vergen::EmitBuilder;
|
2022-08-18 07:29:19 +03:00
|
|
|
|
2022-08-03 06:38:05 +03:00
|
|
|
// Validate conflict between host / plugin features
|
|
|
|
#[cfg(all(
|
|
|
|
feature = "plugin_transform",
|
|
|
|
any(
|
|
|
|
feature = "plugin_transform_host_native",
|
|
|
|
feature = "plugin_transform_host_js"
|
|
|
|
)
|
|
|
|
))]
|
|
|
|
compile_error!(
|
|
|
|
"'plugin_transform' and 'plugin_transform_host*' features are mutually exclusive. If you're \
|
|
|
|
writing a plugin, use 'plugin_transform' feature. If you're writing a custom SWC binary to \
|
|
|
|
run plugin, use 'plugin_transform_host_*' instead."
|
|
|
|
);
|
|
|
|
|
2022-08-05 08:11:40 +03:00
|
|
|
#[cfg(all(feature = "__plugin_transform", feature = "common_concurrent"))]
|
|
|
|
compile_error!("plugin transform cannot enable concurrent mode.");
|
|
|
|
|
|
|
|
#[cfg(all(feature = "transforms", feature = "transforms_concurrent"))]
|
|
|
|
compile_error!(
|
|
|
|
"'transforms' and 'transforms_concurrent' features are mutually exclusive. Please choose only \
|
|
|
|
one feature."
|
|
|
|
);
|
|
|
|
|
2022-08-03 06:38:05 +03:00
|
|
|
fn main() {
|
2022-08-15 17:06:34 +03:00
|
|
|
// Creates a static compile time constants for the version of swc_core.
|
|
|
|
let pkg_version = env::var("CARGO_PKG_VERSION").unwrap();
|
|
|
|
let out_dir = env::var("OUT_DIR").expect("Outdir should exist");
|
|
|
|
let dest_path = Path::new(&out_dir).join("core_pkg_version.txt");
|
|
|
|
let mut f = BufWriter::new(
|
2023-03-14 07:56:21 +03:00
|
|
|
File::create(dest_path).expect("Failed to create swc_core version constant"),
|
2022-08-15 17:06:34 +03:00
|
|
|
);
|
|
|
|
write!(f, "{}", pkg_version).expect("Failed to write swc_core version constant");
|
2022-08-18 07:29:19 +03:00
|
|
|
|
|
|
|
// Attempt to collect some build time env values but will skip if there are any
|
|
|
|
// errors.
|
2023-11-23 14:20:12 +03:00
|
|
|
let _ = EmitBuilder::builder().all_cargo().emit();
|
2022-08-03 06:38:05 +03:00
|
|
|
}
|