plugins {
    id 'java-library'
    id 'maven-publish'
    id 'signing'
}

ext {
    buildTarget = rootProject.ext.buildTarget
}

dependencies {
    implementation platform(projects.cavisCommonPlatform)
    implementation projects.cavisNative.cavisNativeBlas

    implementation group: "org.bytedeco", name: "cuda"
    implementation group: "org.bytedeco", name: "cuda", classifier: buildTarget
    //implementation group: "org.bytedeco", name: "cuda", classifier: "${buildTarget}-redist"

    implementation group: "org.bytedeco", name: "javacpp"
    implementation group: "org.bytedeco", name: "javacpp", classifier: buildTarget

    implementation projects.cavisNative.cavisNativeCudaPresets
    implementation(project(":cavis-native:cavis-native-lib")) {
        capabilities {
            requireCapability("${project.group}:cavis-native-lib-cuda-support:${project.version}")
        }
    }

    implementation project(":cavis-native:cavis-native-common")
    implementation project(":cavis-dnn:cavis-dnn-api")
    implementation project(":cavis-dnn:cavis-dnn-common")

    implementation "com.google.guava:guava"
    implementation "com.google.flatbuffers:flatbuffers-java"
    implementation "org.slf4j:slf4j-api"
    implementation "org.apache.commons:commons-lang3"
}

tasks.named("compileJava").configure {
    dependsOn ":cavis-native:cavis-native-lib:javacppCudaSupportBuildParser",
            ":cavis-native:cavis-native-lib:cudaJar"

}