mirror of
https://github.com/hexedtech/codemp-intellij.git
synced 2024-10-22 18:19:20 +02:00
48 lines
No EOL
1.2 KiB
Rust
48 lines
No EOL
1.2 KiB
Rust
use flapigen::{JavaConfig, LanguageConfig};
|
|
use std::{env, path::Path};
|
|
use rifgen::{Generator as RifgenGenerator, TypeCases, Language};
|
|
use flapigen::Generator as FlapigenGenerator;
|
|
|
|
fn main() {
|
|
let out_dir_var = env::var("OUT_DIR")
|
|
.expect("no OUT_DIR, but cargo should provide it");
|
|
let out_dir = Path::new(&out_dir_var);
|
|
|
|
let mut source_folders = Vec::new();
|
|
source_folders.push(Path::new("src/main/rust/"));
|
|
|
|
let glue_file = out_dir.join("glue.in");
|
|
RifgenGenerator::new(TypeCases::CamelCase,
|
|
Language::Java,
|
|
source_folders)
|
|
.generate_interface(&glue_file);
|
|
|
|
let jni_path = Path::new("src")
|
|
.join("main")
|
|
.join("java")
|
|
.join("com")
|
|
.join("codemp")
|
|
.join("intellij")
|
|
.join("jni");
|
|
|
|
//create folder if it doesn't exist
|
|
std::fs::create_dir_all(&jni_path)
|
|
.expect("An error occurred while creating the JNI folder!");
|
|
|
|
let java_gen = FlapigenGenerator::new(LanguageConfig::JavaConfig(
|
|
JavaConfig::new(
|
|
jni_path,
|
|
"com.codemp.intellij.jni".into()
|
|
))).rustfmt_bindings(true);
|
|
|
|
java_gen.expand(
|
|
"codemp-intellij",
|
|
&glue_file,
|
|
out_dir.join("glue.rs"),
|
|
);
|
|
|
|
println!(
|
|
"cargo:rerun-if-changed={}",
|
|
Path::new("src/main").join(&glue_file).display()
|
|
);
|
|
} |