Spaces:
Sleeping
Sleeping
Tong Li
examples : add whisper.android.java for compatibility with older Android versions using Java (#1382)
bb48f57
unverified
| plugins { | |
| id 'java' | |
| id 'java-library' | |
| id 'maven-publish' | |
| id 'signing' | |
| } | |
| archivesBaseName = 'whispercpp' | |
| group = 'io.github.ggerganov' | |
| version = '1.4.0' | |
| sourceCompatibility = 1.8 | |
| targetCompatibility = 1.8 | |
| sourceSets { | |
| main { | |
| resources { | |
| srcDirs = ['src/main/resources', 'build/generated/resources/main'] | |
| } | |
| } | |
| test { | |
| runtimeClasspath += files('build/generated/resources/main') | |
| } | |
| } | |
| tasks.register('copyLibwhisperDynlib', Copy) { | |
| from '../../build' | |
| include 'libwhisper.dynlib' | |
| into 'build/generated/resources/main/darwin' | |
| } | |
| 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' | |
| } | |
| tasks.register('copyLibs') { | |
| dependsOn copyLibwhisperDynlib, copyLibwhisperSo, copyWhisperDll | |
| } | |
| 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 = '[email protected]' | |
| } | |
| developer { | |
| id = 'nalbion' | |
| name = 'Nicholas Albion' | |
| email = '[email protected]' | |
| } | |
| } | |
| scm { | |
| connection = 'scm:git:git://github.com/ggerganov/whisper.cpp.git' | |
| url = 'https://github.com/ggerganov/whisper.cpp' | |
| } | |
| } | |
| } | |
| } | |
| repositories { | |
| maven { | |
| 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 | |
| credentials { | |
| username = System.getenv("MAVEN_USERNAME") | |
| password = System.getenv("MAVEN_PASSWORD") | |
| } | |
| } | |
| } | |
| } | |
| signing { | |
| def signingKey = System.getenv("PGP_SECRET") | |
| def signingPassword = System.getenv("PGP_PASSPHRASE") | |
| useInMemoryPgpKeys(signingKey, signingPassword) | |
| sign publishing.publications.mavenJava | |
| } | |