mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-16 21:00:14 +00:00
* java - adding deployment information to build.gradle. * java - adding support for model metadata.
190 lines
4.1 KiB
Groovy
190 lines
4.1 KiB
Groovy
plugins {
|
|
id 'java'
|
|
id 'jacoco'
|
|
id 'maven-publish'
|
|
id 'com.diffplug.gradle.spotless' version '3.26.0'
|
|
}
|
|
|
|
allprojects {
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
}
|
|
|
|
java {
|
|
sourceCompatibility = JavaVersion.VERSION_1_8
|
|
targetCompatibility = JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
project.group = "ai.onnxruntime"
|
|
version = rootProject.file('../VERSION_NUMBER').text.trim()
|
|
|
|
jar {
|
|
into("META-INF/maven/$project.group/$project.name") {
|
|
from { generatePomFileForMavenPublication }
|
|
rename ".*", "pom.xml"
|
|
}
|
|
}
|
|
|
|
// Add explicit sources jar with pom file.
|
|
task sourcesJar(type: Jar, dependsOn: classes) {
|
|
classifier = "sources"
|
|
from sourceSets.main.allSource
|
|
into("META-INF/maven/$project.group/$project.name") {
|
|
from { generatePomFileForMavenPublication }
|
|
rename ".*", "pom.xml"
|
|
}
|
|
}
|
|
|
|
// Add explicit javadoc jar with pom file
|
|
task javadocJar(type: Jar, dependsOn: javadoc) {
|
|
classifier = "javadoc"
|
|
from javadoc.destinationDir
|
|
into("META-INF/maven/$project.group/$project.name") {
|
|
from { generatePomFileForMavenPublication }
|
|
rename ".*", "pom.xml"
|
|
}
|
|
}
|
|
|
|
wrapper {
|
|
gradleVersion = '6.1.1'
|
|
}
|
|
|
|
spotless {
|
|
java {
|
|
removeUnusedImports()
|
|
googleJavaFormat()
|
|
}
|
|
format 'gradle', {
|
|
target '**/*.gradle'
|
|
trimTrailingWhitespace()
|
|
indentWithTabs()
|
|
}
|
|
}
|
|
|
|
// cmake runs will inform us of the build directory of the current run
|
|
def cmakeBuildDir = System.properties['cmakeBuildDir']
|
|
def cmakeJavaDir = "${cmakeBuildDir}/java"
|
|
def cmakeNativeLibDir = "${cmakeJavaDir}/native-lib"
|
|
def cmakeNativeJniDir = "${cmakeJavaDir}/native-jni"
|
|
def cmakeBuildOutputDir = "${cmakeJavaDir}/build"
|
|
|
|
compileJava {
|
|
options.compilerArgs += ["-h", "${project.buildDir}/headers/"]
|
|
}
|
|
|
|
sourceSets.test {
|
|
// add test resource files
|
|
resources.srcDirs += [
|
|
"${rootProject.projectDir}/../csharp/testdata",
|
|
"${rootProject.projectDir}/../onnxruntime/test/testdata",
|
|
"${rootProject.projectDir}/../java/testdata"
|
|
]
|
|
if (cmakeBuildDir != null) {
|
|
// add compiled native libs
|
|
resources.srcDirs += [
|
|
cmakeNativeLibDir,
|
|
cmakeNativeJniDir
|
|
]
|
|
}
|
|
}
|
|
|
|
if (cmakeBuildDir != null) {
|
|
// generate tasks to be called from cmake
|
|
|
|
task jniJar(type: Jar) {
|
|
classifier = 'jni'
|
|
from cmakeNativeJniDir
|
|
}
|
|
|
|
task libJar(type: Jar) {
|
|
classifier = 'lib'
|
|
from cmakeNativeLibDir
|
|
}
|
|
|
|
task allJar(type: Jar) {
|
|
into("META-INF/maven/$project.group/$project.name") {
|
|
from { generatePomFileForMavenPublication }
|
|
rename ".*", "pom.xml"
|
|
}
|
|
classifier = 'all'
|
|
from sourceSets.main.output
|
|
from cmakeNativeJniDir
|
|
from cmakeNativeLibDir
|
|
}
|
|
|
|
task cmakeBuild(type: Copy) {
|
|
from project.buildDir
|
|
include 'libs/**'
|
|
include 'docs/**'
|
|
into cmakeBuildOutputDir
|
|
}
|
|
cmakeBuild.dependsOn jar
|
|
cmakeBuild.dependsOn jniJar
|
|
cmakeBuild.dependsOn libJar
|
|
cmakeBuild.dependsOn allJar
|
|
cmakeBuild.dependsOn sourcesJar
|
|
cmakeBuild.dependsOn javadocJar
|
|
cmakeBuild.dependsOn javadoc
|
|
|
|
task cmakeCheck(type: Copy) {
|
|
from project.buildDir
|
|
include 'reports/**'
|
|
into cmakeBuildOutputDir
|
|
}
|
|
cmakeCheck.dependsOn check
|
|
|
|
}
|
|
|
|
dependencies {
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.1.1'
|
|
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.1.1'
|
|
testImplementation 'com.google.protobuf:protobuf-java:3.10.0'
|
|
}
|
|
|
|
test {
|
|
useJUnitPlatform()
|
|
testLogging {
|
|
events "passed", "skipped", "failed"
|
|
showStandardStreams = true
|
|
}
|
|
}
|
|
|
|
jacocoTestReport {
|
|
reports {
|
|
xml.enabled true
|
|
csv.enabled true
|
|
html.destination file("${buildDir}/jacocoHtml")
|
|
}
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
maven(MavenPublication) {
|
|
groupId = project.group
|
|
artifactId = project.name
|
|
|
|
from components.java
|
|
pom {
|
|
name = 'onnx-runtime'
|
|
description = 'ONNX Runtime is a performance-focused inference engine for ONNX (Open Neural Network Exchange) models.'
|
|
url = 'https://microsoft.github.io/onnxruntime/'
|
|
licenses {
|
|
license {
|
|
name = 'MIT License'
|
|
url = 'https://opensource.org/licenses/MIT'
|
|
}
|
|
}
|
|
organization {
|
|
name = 'Microsoft'
|
|
url = 'http://www.microsoft.com'
|
|
}
|
|
scm {
|
|
connection = 'scm:git:git://github.com:microsoft/onnxruntime.git'
|
|
developerConnection = 'scm:git:ssh://github.com/microsoft/onnxruntime.git'
|
|
url = 'http://github.com/microsoft/onnxruntime'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|