jni-utils 0.1.1

Extra Utilities for JNI in Rust
Documentation
#[cfg(feature = "build-java-support")]
fn build_java() {
    use std::{env, path::PathBuf, process::Command};

    let mut java_src_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap());
    java_src_dir.push("java");

    let mut java_src_gradlew = java_src_dir.clone();
    java_src_gradlew.push(
        #[cfg(target_os = "windows")]
        "gradlew.bat",
        #[cfg(not(target_os = "windows"))]
        "gradlew",
    );

    let mut java_build_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
    java_build_dir.pop();
    java_build_dir.pop();
    java_build_dir.pop();
    java_build_dir.push("java");

    let result = Command::new(java_src_gradlew)
        .args(&[
            format!("-PbuildDir={}", java_build_dir.to_str().unwrap()),
            "-p".to_string(),
            java_src_dir.to_str().unwrap().to_string(),
            "build".to_string(),
        ])
        .spawn()
        .unwrap()
        .wait()
        .unwrap();
    if !result.success() {
        panic!("Gradle failed");
    }
}

fn main() {
    #[cfg(feature = "build-java-support")]
    build_java();
}