mirror of https://github.com/weisJ/darklaf.git
Browse Source
* Added multiple build-scripts to support different development environments. * Cleaned up build-script. * Removed unnecessary tasks.pull/16/head
Jannis Weis
5 years ago
committed by
GitHub
10 changed files with 483 additions and 21 deletions
@ -0,0 +1,229 @@
|
||||
import org.gradle.internal.jvm.Jvm |
||||
|
||||
plugins { |
||||
id 'com.github.johnrengelman.shadow' version '5.1.0' |
||||
id 'java' |
||||
id 'maven-publish' |
||||
id 'signing' |
||||
id 'idea' |
||||
id 'cpp' |
||||
} |
||||
|
||||
def signingKey = project.findProperty('signingKeyProp') ?: System.getenv('signingKeyProp') ?: "" |
||||
def signingPassword = project.findProperty('signingPasswordProp') ?: System.getenv('signingPasswordProp') ?: "" |
||||
def deployRepoUrl = project.findProperty('deployRepoUrlProp') ?: System.getenv('deployRepoUrlProp') ?: "" |
||||
def deployRepoUsername = project.findProperty('deployRepoUsernameProp') ?: System.getenv('deployRepoUsernameProp') ?: "" |
||||
def deployRepoPassword = project.findProperty('deployRepoPasswordProp') ?: System.getenv('deployRepoPasswordProp') ?: "" |
||||
if (signingKey.isEmpty()) { |
||||
project.gradle.startParameter.excludedTaskNames.add('signArchives') |
||||
} |
||||
|
||||
project.gradle.startParameter.excludedTaskNames.add('jniplatformStaticLibrary') |
||||
|
||||
repositories { |
||||
mavenLocal() |
||||
mavenCentral() |
||||
maven { |
||||
url = 'https://repo.maven.apache.org/maven2' |
||||
} |
||||
} |
||||
|
||||
dependencies { |
||||
compile 'com.metsci.ext.com.kitfox.svg:svg-salamander:[0.1.19,)' |
||||
compile 'org.jetbrains:annotations:16.0.1' |
||||
compile 'net.java.dev.jna:jna:4.1.0' |
||||
compile 'org.swinglabs:jxlayer:3.0.4' |
||||
compileOnly 'org.swinglabs:swingx:1.6.1' |
||||
testCompile 'org.swinglabs:swingx:1.6.1' |
||||
} |
||||
|
||||
task sourceJar(type: Jar, dependsOn: classes) { |
||||
classifier 'sources' |
||||
from sourceSets.main.allSource |
||||
} |
||||
|
||||
artifacts { |
||||
archives jar |
||||
archives sourceJar |
||||
} |
||||
|
||||
signing { |
||||
def key = signingKey.replaceAll("#", "\n") |
||||
useInMemoryPgpKeys(key, signingPassword) |
||||
sign configurations.archives |
||||
} |
||||
|
||||
publishing { |
||||
publications { |
||||
mavenJava(MavenPublication) { |
||||
customizePom(pom) |
||||
groupId = 'com.github.weisj' |
||||
artifactId 'darklaf' |
||||
version = '1.3.1.4' |
||||
|
||||
from components.java |
||||
|
||||
// create the sign pom artifact |
||||
pom.withXml { |
||||
def pomFile = file("${project.buildDir}/generated-pom.xml") |
||||
writeTo(pomFile) |
||||
def pomAscFile = signing.sign(pomFile).signatureFiles[0] |
||||
artifact(pomAscFile) { |
||||
classifier = null |
||||
extension = 'pom.asc' |
||||
} |
||||
} |
||||
|
||||
artifact(sourceJar) { |
||||
classifier = 'sources' |
||||
} |
||||
|
||||
// create the signed artifacts |
||||
project.tasks.signArchives.signatureFiles.each { |
||||
artifact(it) { |
||||
def matcher = it.file =~ /-(sources|javadoc)\.jar\.asc$/ |
||||
if (matcher.find()) { |
||||
classifier = matcher.group(1) |
||||
} else { |
||||
classifier = null |
||||
} |
||||
extension = 'jar.asc' |
||||
} |
||||
} |
||||
} |
||||
} |
||||
repositories { |
||||
maven { |
||||
url = deployRepoUrl |
||||
credentials { |
||||
username = deployRepoUsername |
||||
password = deployRepoPassword |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
def customizePom(pom) { |
||||
pom.withXml { |
||||
def root = asNode() |
||||
|
||||
// eliminate test-scoped dependencies (no need in maven central POMs) |
||||
root.dependencies.removeAll { dep -> |
||||
dep.scope == "test" |
||||
} |
||||
|
||||
// add all items necessary for maven central publication |
||||
root.children().last() + { |
||||
resolveStrategy = DELEGATE_FIRST |
||||
|
||||
description 'A themeable Look and Feel for java swing.' |
||||
name 'Darklaf' |
||||
url 'https://github.com/mautini/schemaorg-java' |
||||
organization { |
||||
name 'com.github.weisj' |
||||
url 'https://github.com/weisj' |
||||
} |
||||
issueManagement { |
||||
system 'GitHub' |
||||
url 'https://github.com/weisJ/darklaf/issues' |
||||
} |
||||
licenses { |
||||
license { |
||||
name 'MIT' |
||||
url 'https://github.com/weisJ/darklaf/blob/master/licence/LICENSE' |
||||
distribution 'repo' |
||||
} |
||||
} |
||||
scm { |
||||
url 'https://github.com/weisJ/darklaf' |
||||
connection 'scm:git:git://github.com/weisJ/darklaf.git' |
||||
developerConnection 'scm:git:ssh://git@github.com:weisj/darklaf.git' |
||||
} |
||||
developers { |
||||
developer { |
||||
name 'Jannis Weis' |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
model { |
||||
tasks.generatePomFileForMavenJavaPublication { |
||||
destination = file("$buildDir/generated-pom.xml") |
||||
} |
||||
tasks.publishMavenJavaPublicationToMavenLocal { |
||||
dependsOn project.tasks.signArchives |
||||
} |
||||
tasks.publishMavenJavaPublicationToMavenRepository { |
||||
dependsOn project.tasks.signArchives |
||||
} |
||||
platforms { |
||||
x64 { |
||||
architecture 'x64' |
||||
} |
||||
} |
||||
components { |
||||
jniplatform(NativeLibrarySpec) { |
||||
targetPlatform "x64" |
||||
binaries.all { |
||||
cppCompiler.args "-I${Jvm.current().javaHome}/include" |
||||
cppCompiler.args "-I${Jvm.current().javaHome}/include/win32" |
||||
cppCompiler.args "-std=c++11" |
||||
linker.args "dwmapi.lib" |
||||
linker.args "user32.lib" |
||||
linker.args "Gdi32.lib" |
||||
linker.args "-ldwmapi" |
||||
linker.args "-lGdi32" |
||||
linker.args "-luser32" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
println "Building on OS: " + System.properties['os.name'] |
||||
println "Using JDK: " + System.properties['java.home'] |
||||
|
||||
compileJava { |
||||
sourceCompatibility = 8 |
||||
targetCompatibility = 8 |
||||
} |
||||
|
||||
tasks.withType(JavaCompile) { |
||||
dependsOn 'buildLibraries' |
||||
configure(options) { |
||||
options.encoding = 'UTF-8' |
||||
options.compilerArgs += [ |
||||
'-h', file("${projectDir}/src/jniplatform/cpp"), |
||||
] |
||||
} |
||||
} |
||||
|
||||
task copyLibraries(type: Copy) { |
||||
from "${buildDir}/libs/jniplatform/shared" |
||||
into "${projectDir}/src/main/resources/com/github/weisj/darklaf/platform/windows/x64" |
||||
include "*.dll" |
||||
} |
||||
|
||||
task buildLibraries { |
||||
dependsOn('jniplatformSharedLibrary') |
||||
finalizedBy(copyLibraries) |
||||
} |
||||
|
||||
shadowJar { |
||||
exclude 'help/' |
||||
exclude 'icons/' |
||||
exclude 'org/jdesktop/jxlayer/plaf/ext/images/' |
||||
exclude 'com/sun/jna/darwin/' |
||||
exclude 'com/sun/jna/freebsd-x86/' |
||||
exclude 'com/sun/jna/freebsd-x86-64/' |
||||
exclude 'com/sun/jna/linux-arm/' |
||||
exclude 'com/sun/jna/linux-x86/' |
||||
exclude 'com/sun/jna/linux-x86-64/' |
||||
exclude 'com/sun/jna/openbsd-x86/' |
||||
exclude 'com/sun/jna/openbsd-x86-64/' |
||||
exclude 'com/sun/jna/sunos-sparc/' |
||||
exclude 'com/sun/jna/sunos-sparcv9/' |
||||
exclude 'com/sun/jna/sunos-x86/' |
||||
exclude 'com/sun/jna/sunos-x86-64/' |
||||
} |
@ -0,0 +1,229 @@
|
||||
import org.gradle.internal.jvm.Jvm |
||||
|
||||
plugins { |
||||
id 'com.github.johnrengelman.shadow' version '5.1.0' |
||||
id 'java' |
||||
id 'maven-publish' |
||||
id 'signing' |
||||
id 'idea' |
||||
id 'cpp' |
||||
} |
||||
|
||||
def signingKey = project.findProperty('signingKeyProp') ?: System.getenv('signingKeyProp') ?: "" |
||||
def signingPassword = project.findProperty('signingPasswordProp') ?: System.getenv('signingPasswordProp') ?: "" |
||||
def deployRepoUrl = project.findProperty('deployRepoUrlProp') ?: System.getenv('deployRepoUrlProp') ?: "" |
||||
def deployRepoUsername = project.findProperty('deployRepoUsernameProp') ?: System.getenv('deployRepoUsernameProp') ?: "" |
||||
def deployRepoPassword = project.findProperty('deployRepoPasswordProp') ?: System.getenv('deployRepoPasswordProp') ?: "" |
||||
if (signingKey.isEmpty()) { |
||||
project.gradle.startParameter.excludedTaskNames.add('signArchives') |
||||
} |
||||
|
||||
project.gradle.startParameter.excludedTaskNames.add('jniplatformStaticLibrary') |
||||
|
||||
repositories { |
||||
mavenLocal() |
||||
mavenCentral() |
||||
maven { |
||||
url = 'https://repo.maven.apache.org/maven2' |
||||
} |
||||
} |
||||
|
||||
dependencies { |
||||
compile 'com.metsci.ext.com.kitfox.svg:svg-salamander:[0.1.19,)' |
||||
compile 'org.jetbrains:annotations:16.0.1' |
||||
compile 'net.java.dev.jna:jna:4.1.0' |
||||
compile 'org.swinglabs:jxlayer:3.0.4' |
||||
compileOnly 'org.swinglabs:swingx:1.6.1' |
||||
testCompile 'org.swinglabs:swingx:1.6.1' |
||||
} |
||||
|
||||
task sourceJar(type: Jar, dependsOn: classes) { |
||||
classifier 'sources' |
||||
from sourceSets.main.allSource |
||||
} |
||||
|
||||
artifacts { |
||||
archives jar |
||||
archives sourceJar |
||||
} |
||||
|
||||
signing { |
||||
def key = signingKey.replaceAll("#", "\n") |
||||
useInMemoryPgpKeys(key, signingPassword) |
||||
sign configurations.archives |
||||
} |
||||
|
||||
publishing { |
||||
publications { |
||||
mavenJava(MavenPublication) { |
||||
customizePom(pom) |
||||
groupId = 'com.github.weisj' |
||||
artifactId 'darklaf' |
||||
version = '1.3.1.4' |
||||
|
||||
from components.java |
||||
|
||||
// create the sign pom artifact |
||||
pom.withXml { |
||||
def pomFile = file("${project.buildDir}/generated-pom.xml") |
||||
writeTo(pomFile) |
||||
def pomAscFile = signing.sign(pomFile).signatureFiles[0] |
||||
artifact(pomAscFile) { |
||||
classifier = null |
||||
extension = 'pom.asc' |
||||
} |
||||
} |
||||
|
||||
artifact(sourceJar) { |
||||
classifier = 'sources' |
||||
} |
||||
|
||||
// create the signed artifacts |
||||
project.tasks.signArchives.signatureFiles.each { |
||||
artifact(it) { |
||||
def matcher = it.file =~ /-(sources|javadoc)\.jar\.asc$/ |
||||
if (matcher.find()) { |
||||
classifier = matcher.group(1) |
||||
} else { |
||||
classifier = null |
||||
} |
||||
extension = 'jar.asc' |
||||
} |
||||
} |
||||
} |
||||
} |
||||
repositories { |
||||
maven { |
||||
url = deployRepoUrl |
||||
credentials { |
||||
username = deployRepoUsername |
||||
password = deployRepoPassword |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
def customizePom(pom) { |
||||
pom.withXml { |
||||
def root = asNode() |
||||
|
||||
// eliminate test-scoped dependencies (no need in maven central POMs) |
||||
root.dependencies.removeAll { dep -> |
||||
dep.scope == "test" |
||||
} |
||||
|
||||
// add all items necessary for maven central publication |
||||
root.children().last() + { |
||||
resolveStrategy = DELEGATE_FIRST |
||||
|
||||
description 'A themeable Look and Feel for java swing.' |
||||
name 'Darklaf' |
||||
url 'https://github.com/mautini/schemaorg-java' |
||||
organization { |
||||
name 'com.github.weisj' |
||||
url 'https://github.com/weisj' |
||||
} |
||||
issueManagement { |
||||
system 'GitHub' |
||||
url 'https://github.com/weisJ/darklaf/issues' |
||||
} |
||||
licenses { |
||||
license { |
||||
name 'MIT' |
||||
url 'https://github.com/weisJ/darklaf/blob/master/licence/LICENSE' |
||||
distribution 'repo' |
||||
} |
||||
} |
||||
scm { |
||||
url 'https://github.com/weisJ/darklaf' |
||||
connection 'scm:git:git://github.com/weisJ/darklaf.git' |
||||
developerConnection 'scm:git:ssh://git@github.com:weisj/darklaf.git' |
||||
} |
||||
developers { |
||||
developer { |
||||
name 'Jannis Weis' |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
model { |
||||
tasks.generatePomFileForMavenJavaPublication { |
||||
destination = file("$buildDir/generated-pom.xml") |
||||
} |
||||
tasks.publishMavenJavaPublicationToMavenLocal { |
||||
dependsOn project.tasks.signArchives |
||||
} |
||||
tasks.publishMavenJavaPublicationToMavenRepository { |
||||
dependsOn project.tasks.signArchives |
||||
} |
||||
platforms { |
||||
x86 { |
||||
architecture 'x86' |
||||
} |
||||
} |
||||
components { |
||||
jniplatform(NativeLibrarySpec) { |
||||
targetPlatform "x86" |
||||
binaries.all { |
||||
cppCompiler.args "-I${Jvm.current().javaHome}/include" |
||||
cppCompiler.args "-I${Jvm.current().javaHome}/include/win32" |
||||
cppCompiler.args "-std=c++11" |
||||
linker.args "dwmapi.lib" |
||||
linker.args "user32.lib" |
||||
linker.args "Gdi32.lib" |
||||
linker.args "-ldwmapi" |
||||
linker.args "-lGdi32" |
||||
linker.args "-luser32" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
println "Building on OS: " + System.properties['os.name'] |
||||
println "Using JDK: " + System.properties['java.home'] |
||||
|
||||
compileJava { |
||||
sourceCompatibility = 8 |
||||
targetCompatibility = 8 |
||||
} |
||||
|
||||
tasks.withType(JavaCompile) { |
||||
dependsOn 'buildLibraries' |
||||
configure(options) { |
||||
options.encoding = 'UTF-8' |
||||
options.compilerArgs += [ |
||||
'-h', file("${projectDir}/src/jniplatform/cpp"), |
||||
] |
||||
} |
||||
} |
||||
|
||||
task copyLibraries(type: Copy) { |
||||
from "${buildDir}/libs/jniplatform/shared" |
||||
into "${projectDir}/src/main/resources/com/github/weisj/darklaf/platform/windows/x86" |
||||
include "*.dll" |
||||
} |
||||
|
||||
task buildLibraries { |
||||
dependsOn('jniplatformSharedLibrary') |
||||
finalizedBy(copyLibraries) |
||||
} |
||||
|
||||
shadowJar { |
||||
exclude 'help/' |
||||
exclude 'icons/' |
||||
exclude 'org/jdesktop/jxlayer/plaf/ext/images/' |
||||
exclude 'com/sun/jna/darwin/' |
||||
exclude 'com/sun/jna/freebsd-x86/' |
||||
exclude 'com/sun/jna/freebsd-x86-64/' |
||||
exclude 'com/sun/jna/linux-arm/' |
||||
exclude 'com/sun/jna/linux-x86/' |
||||
exclude 'com/sun/jna/linux-x86-64/' |
||||
exclude 'com/sun/jna/openbsd-x86/' |
||||
exclude 'com/sun/jna/openbsd-x86-64/' |
||||
exclude 'com/sun/jna/sunos-sparc/' |
||||
exclude 'com/sun/jna/sunos-sparcv9/' |
||||
exclude 'com/sun/jna/sunos-x86/' |
||||
exclude 'com/sun/jna/sunos-x86-64/' |
||||
} |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue