mirror of
https://github.com/hexedtech/codemp.git
synced 2024-12-23 05:14:54 +01:00
185 lines
3.8 KiB
Groovy
185 lines
3.8 KiB
Groovy
plugins {
|
|
id 'java-library'
|
|
id "com.vanniktech.maven.publish.base" version "0.30.0"
|
|
id 'com.google.osdetector' version '1.7.3'
|
|
}
|
|
|
|
group = 'mp.code'
|
|
version = '0.8.4'
|
|
|
|
tasks.register('windowsJar', Jar) {
|
|
outputs.upToDateWhen { false }
|
|
archiveClassifier = 'windows-x86_64'
|
|
from sourceSets.main.runtimeClasspath
|
|
from('artifacts') {
|
|
include('*.dll')
|
|
into('natives/')
|
|
}
|
|
doFirst {
|
|
if(!(new File('artifacts/codemp.dll').exists())) {
|
|
throw new GradleException("The required file does not exist!")
|
|
}
|
|
}
|
|
}
|
|
|
|
tasks.register('macosJar', Jar) {
|
|
outputs.upToDateWhen { false }
|
|
archiveClassifier = 'osx-aarch_64'
|
|
from sourceSets.main.runtimeClasspath
|
|
from('artifacts') {
|
|
include('*.dylib')
|
|
into('natives/')
|
|
}
|
|
doFirst {
|
|
if(!(new File('artifacts/libcodemp.dylib').exists())) {
|
|
throw new GradleException("The required file does not exist!")
|
|
}
|
|
}
|
|
}
|
|
|
|
tasks.register('linuxJar', Jar) {
|
|
outputs.upToDateWhen { false }
|
|
archiveClassifier = 'linux-x86_64'
|
|
from sourceSets.main.runtimeClasspath
|
|
from('artifacts') {
|
|
include('*.so')
|
|
into('natives/')
|
|
}
|
|
doFirst {
|
|
if(!(new File('artifacts/libcodemp.so').exists())) {
|
|
throw new GradleException("The required file does not exist! Maybe you need to `cargo build` the main library first?")
|
|
}
|
|
}
|
|
}
|
|
|
|
tasks.register('multiplatformJar', Jar) {
|
|
outputs.upToDateWhen { false }
|
|
archiveClassifier = 'all'
|
|
from sourceSets.main.runtimeClasspath
|
|
from('artifacts') {
|
|
include('*')
|
|
into('natives/')
|
|
}
|
|
}
|
|
|
|
configurations {
|
|
windowsJar {
|
|
canBeConsumed = true
|
|
canBeResolved = false
|
|
extendsFrom implementation, runtimeOnly
|
|
}
|
|
linuxJar {
|
|
canBeConsumed = true
|
|
canBeResolved = false
|
|
extendsFrom implementation, runtimeOnly
|
|
}
|
|
macosJar {
|
|
canBeConsumed = true
|
|
canBeResolved = false
|
|
extendsFrom implementation, runtimeOnly
|
|
}
|
|
multiplatformJar {
|
|
canBeConsumed = true
|
|
canBeResolved = false
|
|
extendsFrom implementation, runtimeOnly
|
|
}
|
|
}
|
|
|
|
java {
|
|
sourceCompatibility = targetCompatibility = JavaVersion.VERSION_11
|
|
withSourcesJar()
|
|
withJavadocJar()
|
|
}
|
|
|
|
artifacts {
|
|
archives jar
|
|
archives sourcesJar
|
|
archives javadocJar
|
|
windowsJar(windowsJar)
|
|
macosJar(macosJar)
|
|
linuxJar(linuxJar)
|
|
multiplatformJar(multiplatformJar)
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
sourceSets {
|
|
main.java.srcDirs = ['src/']
|
|
}
|
|
|
|
dependencies {
|
|
compileOnly 'org.projectlombok:lombok:1.18.34'
|
|
annotationProcessor 'org.projectlombok:lombok:1.18.34'
|
|
}
|
|
|
|
tasks.register('cargoBuild', Exec) {
|
|
workingDir '.'
|
|
commandLine 'cargo', 'build', '--release', '--features=java'
|
|
}
|
|
|
|
def rustDir = projectDir.toPath()
|
|
.parent
|
|
.parent
|
|
.resolve('target')
|
|
.resolve('release')
|
|
.toFile()
|
|
|
|
tasks.register('nativeBuild', Jar) {
|
|
archiveClassifier = osdetector.classifier
|
|
dependsOn cargoBuild
|
|
from sourceSets.main.runtimeClasspath
|
|
from(rustDir) {
|
|
include('*.dll')
|
|
include('*.so')
|
|
include('*dylib')
|
|
into('natives/')
|
|
}
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
mavenJava(MavenPublication) {
|
|
artifact jar
|
|
artifact sourcesJar
|
|
artifact javadocJar
|
|
artifact windowsJar
|
|
artifact linuxJar
|
|
artifact macosJar
|
|
artifact multiplatformJar
|
|
}
|
|
}
|
|
}
|
|
|
|
import com.vanniktech.maven.publish.SonatypeHost
|
|
mavenPublishing {
|
|
publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, true)
|
|
signAllPublications()
|
|
coordinates(project.group, rootProject.name, project.version)
|
|
|
|
pom {
|
|
name = rootProject.name
|
|
description = "A collaborative editor plugin ecosystem"
|
|
inceptionYear = "2022"
|
|
url = "https://code.mp/"
|
|
licenses {
|
|
license {
|
|
name = "The GNU General Public License v3.0"
|
|
url = "https://www.gnu.org/licenses/gpl-3.0.txt"
|
|
}
|
|
}
|
|
developers {
|
|
developer {
|
|
id = "zaaarf"
|
|
name = "zaaarf"
|
|
email = "zaaarf@codemp.dev"
|
|
}
|
|
}
|
|
scm {
|
|
url = "https://github.com/hexedtech/codemp/"
|
|
connection = "scm:git:git://github.com/hexedtech/codemp.git"
|
|
developerConnection = "scm:git:ssh://git@github.com/hexedtech/codemp.git"
|
|
}
|
|
}
|
|
}
|