2023-05-20 17:25:02 +02:00
|
|
|
plugins {
|
|
|
|
id 'java'
|
|
|
|
id 'java-library'
|
|
|
|
id 'maven-publish'
|
2023-09-07 03:45:01 +02:00
|
|
|
id 'signing'
|
2023-05-20 17:25:02 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
archivesBaseName = 'whispercpp'
|
|
|
|
group = 'io.github.ggerganov'
|
|
|
|
version = '1.4.0'
|
|
|
|
|
2023-11-12 17:31:58 +01:00
|
|
|
|
2023-05-20 17:25:02 +02:00
|
|
|
sourceCompatibility = 1.8
|
|
|
|
targetCompatibility = 1.8
|
|
|
|
|
|
|
|
sourceSets {
|
|
|
|
main {
|
|
|
|
resources {
|
|
|
|
srcDirs = ['src/main/resources', 'build/generated/resources/main']
|
|
|
|
}
|
|
|
|
}
|
|
|
|
test {
|
|
|
|
runtimeClasspath += files('build/generated/resources/main')
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-05-29 01:38:58 +02:00
|
|
|
tasks.register('copyLibwhisperDynlib', Copy) {
|
|
|
|
from '../../build'
|
|
|
|
include 'libwhisper.dynlib'
|
|
|
|
into 'build/generated/resources/main/darwin'
|
|
|
|
}
|
|
|
|
|
2023-05-20 17:25:02 +02:00
|
|
|
tasks.register('copyLibwhisperSo', Copy) {
|
|
|
|
from '../../build'
|
|
|
|
include 'libwhisper.so'
|
|
|
|
into 'build/generated/resources/main/linux-x86-64'
|
|
|
|
}
|
|
|
|
|
|
|
|
tasks.register('copyWhisperDll', Copy) {
|
|
|
|
from '../../build/Release'
|
|
|
|
include 'whisper.dll'
|
|
|
|
into 'build/generated/resources/main/windows-x86-64'
|
|
|
|
}
|
|
|
|
|
2023-05-29 01:38:58 +02:00
|
|
|
tasks.register('copyLibs') {
|
|
|
|
dependsOn copyLibwhisperDynlib, copyLibwhisperSo, copyWhisperDll
|
|
|
|
}
|
2023-05-20 17:25:02 +02:00
|
|
|
|
|
|
|
test {
|
|
|
|
systemProperty 'jna.library.path', project.file('build/generated/resources/main').absolutePath
|
|
|
|
}
|
|
|
|
|
|
|
|
java {
|
|
|
|
withSourcesJar()
|
|
|
|
withJavadocJar()
|
|
|
|
}
|
|
|
|
|
|
|
|
jar {
|
|
|
|
exclude '**/whisper_java.exp', '**/whisper_java.lib'
|
|
|
|
}
|
|
|
|
|
|
|
|
javadoc {
|
|
|
|
options.addStringOption('Xdoclint:none', '-quiet')
|
|
|
|
}
|
|
|
|
|
|
|
|
tasks.withType(Test) {
|
|
|
|
useJUnitPlatform()
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
implementation "net.java.dev.jna:jna:5.13.0"
|
|
|
|
testImplementation "org.junit.jupiter:junit-jupiter:5.9.2"
|
|
|
|
testImplementation "org.assertj:assertj-core:3.24.2"
|
|
|
|
}
|
|
|
|
|
|
|
|
repositories {
|
|
|
|
mavenCentral()
|
|
|
|
}
|
|
|
|
|
|
|
|
publishing {
|
|
|
|
publications {
|
|
|
|
mavenJava(MavenPublication) {
|
|
|
|
artifactId = 'whispercpp'
|
|
|
|
from components.java
|
|
|
|
pom {
|
|
|
|
name = 'whispercpp'
|
|
|
|
description = "Java JNA bindings for OpenAI's Whisper model, implemented in C/C++"
|
|
|
|
url = 'https://github.com/ggerganov/whisper.cpp'
|
|
|
|
licenses {
|
|
|
|
license {
|
|
|
|
name = 'MIT licence'
|
|
|
|
url = 'https://raw.githubusercontent.com/ggerganov/whisper.cpp/master/LICENSE'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
developers {
|
|
|
|
developer {
|
|
|
|
id = 'ggerganov'
|
|
|
|
name = 'Georgi Gerganov'
|
|
|
|
email = 'ggerganov@gmail.com'
|
|
|
|
}
|
|
|
|
developer {
|
|
|
|
id = 'nalbion'
|
|
|
|
name = 'Nicholas Albion'
|
|
|
|
email = 'nalbion@yahoo.com'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
scm {
|
|
|
|
connection = 'scm:git:git://github.com/ggerganov/whisper.cpp.git'
|
|
|
|
url = 'https://github.com/ggerganov/whisper.cpp'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-09-06 05:13:36 +02:00
|
|
|
|
|
|
|
repositories {
|
|
|
|
maven {
|
2023-09-07 03:45:01 +02:00
|
|
|
def releasesRepoUrl = 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/'
|
|
|
|
def snapshotsRepoUrl = 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
|
|
|
|
url = version.endsWith('-SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
|
2023-09-06 05:13:36 +02:00
|
|
|
credentials {
|
|
|
|
username = System.getenv("MAVEN_USERNAME")
|
|
|
|
password = System.getenv("MAVEN_PASSWORD")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-05-20 17:25:02 +02:00
|
|
|
}
|
2023-09-07 03:45:01 +02:00
|
|
|
|
|
|
|
signing {
|
|
|
|
def signingKey = System.getenv("PGP_SECRET")
|
|
|
|
def signingPassword = System.getenv("PGP_PASSPHRASE")
|
|
|
|
useInMemoryPgpKeys(signingKey, signingPassword)
|
|
|
|
sign publishing.publications.mavenJava
|
|
|
|
}
|