plugins { id 'java-library' id 'maven-publish' id 'com.github.johnrengelman.shadow' version '7.1.2' } apply from: rootProject.projectDir.path+"/chooseBackend.gradle" dependencies { afterEvaluate { //Todo clean this api platform(project(":cavis-common-platform")) //api "org.bytedeco:javacpp:1.5.7" //for some reason we needed to apply version numbers here, they do not end up in POM otherwise //api "com.fasterxml.jackson.datatype:jackson-datatype-joda:2.10.5" //api 'org.slf4j:slf4j-simple:2.0.3' //api 'org.slf4j:slf4j-api:2.0.3' //TODO for the two below.. either platform specific uber jars or a single big one with all platforms //api group: "org.bytedeco", name: "javacpp", version: "1.5.7", classifier: "linux-x86_64" rootProject.getAllprojects().each { Project sproj -> if (!sproj.name.equals(name) && !sproj.name.equals("cavis-common-platform") && !sproj.name.equals("Cavis") && !sproj.name.equals("cavis-datavec") && !sproj.name.equals("cavis-dnn") && !sproj.name.equals("cavis-native") && !sproj.name.equals("cavis-nd4j") && !sproj.name.equals("cavis-ui") && !sproj.name.equals("cavis-zoo")) { api project(path: sproj.path, configuration: 'runtimeElements') } } // if(withCpu) api project(path: ":cavis-native:cavis-native-lib", configuration: "cpuSupportApiElements") // if(withCuda) api project(path: ":cavis-native:cavis-native-lib", configuration: "cudaSupportApiElements") /* api(projects.cavisNative.cavisNativeLib) { capabilities { //if(withCuda()) it.requireCapability(group: "net.brutex.cavis.cavis-native", name: "cavis-native-lib-cuda-support", version: project.version) if (withCpu()) it.requireCapability(group: "net.brutex.cavis.cavis-native", name: "cavis-native-lib-cpu-support", version: project.version) } } api(projects.cavisNative.cavisNativeLib) { capabilities { if (withCuda()) it.requireCapability(group: "net.brutex.cavis.cavis-native", name: "cavis-native-lib-cuda-support", version: project.version) //if(withCpu()) it.requireCapability(group: "net.brutex.cavis.cavis-native", name: "cavis-native-lib-cpu-support", version: project.version) } } */ //if(withCpu()) api project(path: ":cavis-native:cavis-native-lib", configuration: "cpuSupportImplementation") //if(withCuda()) api project(path: ":cavis-native:cavis-native-lib", configuration: "cudaSupportImplementation") //if(withCuda()) api project(path: ":cavis-native:cavis-native-lib", configuration: "cudaSupportCompileClasspath") /* api (project(':cavis-native:cavis-native-lib')) { capabilities { if(withCpu()) requireCapability("net.brutex.cavis.cavis-native:cavis-native-lib-cpu-support") //if(withCuda()) requireCapability("net.brutex.cavis.cavis-native:cavis-native-lib-cuda-support") } } */ } } /* tasks.getByName("jar") { manifest { attributes 'Main-Class': 'net.brutex.ai.Dummy' } zip64=true duplicatesStrategy = DuplicatesStrategy.EXCLUDE from { configurations.compileClasspath.collect { File f -> if (f.exists()) { f.isDirectory() ? f : zipTree(f) } } configurations.runtimeClasspath.collect { File f -> if (f.exists()) { f.isDirectory() ? f : zipTree(f) } } } } */ artifacts { archives shadowJar } shadowJar { enabled true; zip64 true //need this to support jars with more than 65535 entries archiveClassifier.set('') } publishing { publications { /*mavenJava(MavenPublication) { //artifact customFatJar // from components.java /* pom.withXml { def dependenciesNode = asNode().dependencies def dependencyNode = dependenciesNode.appendNode() dependencyNode.appendNode('groupId', 'net.brutex.cavis') dependencyNode.appendNode('artifactId', 'cavis-native-lib') dependencyNode.appendNode('version', '1.0.0-SNAPSHOT') //dependencyNode.appendNode('classifier', 'linux-x86_64-avx2-cpu') //dependencyNode.appendNode('scope', 'compile') } } */ shadow(MavenPublication) { publication -> project.shadow.component(publication) } } }