From c05947466dc907116699504f1c238471eeee0555 Mon Sep 17 00:00:00 2001 From: zaaarf Date: Mon, 28 Aug 2023 12:33:15 +0200 Subject: [PATCH] feat: have cargo handle folder creation instead of gradle --- Cargo.toml | 1 - build.gradle | 17 ++++------------- build.rs | 20 +++++++++++++------- 3 files changed, 17 insertions(+), 21 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 09634e6..9c4fa7d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,7 +6,6 @@ edition = "2021" [dependencies] codemp = { git = "ssh://git@github.com-irl/codewithotherpeopleandchangenamelater/codemp.git", tag = "v0.4.2" } jni = "0.21.1" -flapigen = "0.6.0" rifgen = "0.1.61" [build-dependencies] diff --git a/build.gradle b/build.gradle index a0fc56a..e289e55 100644 --- a/build.gradle +++ b/build.gradle @@ -41,8 +41,6 @@ tasks { } //define rust tasks -def jniSourcesFolder = 'src/main/java/com/codemp/intellij/jni' - tasks.register('cargoBuild', Exec) { workingDir '.' commandLine 'cargo', 'build' @@ -50,21 +48,14 @@ tasks.register('cargoBuild', Exec) { compileJava.dependsOn cargoBuild -tasks.register('prepareJniFolder') { - mkdir jniSourcesFolder +tasks.register('deleteGeneratedNativeInterface', Delete) { + delete 'src/main/java/com/codemp/intellij/jni' } -cargoBuild.dependsOn prepareJniFolder - tasks.register('cargoClean', Exec) { workingDir '.' commandLine 'cargo', 'clean' + dependsOn deleteGeneratedNativeInterface } -clean.dependsOn cargoClean - -tasks.register('deleteGeneratedNativeInterface', Delete) { - delete jniSourcesFolder -} - -cargoClean.dependsOn deleteGeneratedNativeInterface \ No newline at end of file +clean.dependsOn cargoClean \ No newline at end of file diff --git a/build.rs b/build.rs index 0620772..936fbfd 100644 --- a/build.rs +++ b/build.rs @@ -12,15 +12,21 @@ fn main() { Generator::new(TypeCases::CamelCase,Language::Java,source_folder) .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 = flapigen::Generator::new(LanguageConfig::JavaConfig( JavaConfig::new( - Path::new("src") - .join("main") - .join("java") - .join("com") - .join("codemp") - .join("intellij") - .join("jni"), + jni_path, "com.codemp.intellij.jni".into() ))).rustfmt_bindings(true);