Desktop native libraries split per platform, closes #86

This commit is contained in:
Emux 2016-07-21 10:38:34 +03:00
parent f1cc7c98b0
commit ecb76f9af7
9 changed files with 49 additions and 39 deletions

View File

@ -51,30 +51,30 @@ android.applicationVariants.all { variant ->
return; // Skip debug builds. return; // Skip debug builds.
} }
def taskJar = project.tasks.create "jar${name.capitalize()}", Jar def jar = project.tasks.create "jar${name.capitalize()}", Jar
taskJar.dependsOn variant.javaCompile jar.dependsOn variant.javaCompile
taskJar.from variant.javaCompile.destinationDir jar.from variant.javaCompile.destinationDir
taskJar.exclude 'android-logger.properties' jar.exclude 'android-logger.properties'
artifacts.add('archives', taskJar); artifacts.add('archives', jar);
file('natives').eachDir() { dir -> file('natives').eachDir() { dir ->
def taskNatives = project.tasks.create "natives_${dir.name}_Jar${name.capitalize()}", Jar def nativesJar = project.tasks.create "nativesJar${name.capitalize()}-${dir.name}", Jar
taskNatives.classifier = "natives-${dir.name}" nativesJar.classifier = "natives-${dir.name}"
taskNatives.from(dir.path) nativesJar.from(dir.path)
artifacts.add('archives', taskNatives); artifacts.add('archives', nativesJar);
} }
def taskFat = project.tasks.create "fatJar${name.capitalize()}", Jar def fatJar = project.tasks.create "fatJar${name.capitalize()}", Jar
taskFat.classifier = 'jar-with-dependencies' fatJar.classifier = 'jar-with-dependencies'
taskFat.dependsOn variant.javaCompile fatJar.dependsOn variant.javaCompile
taskFat.from variant.javaCompile.destinationDir fatJar.from variant.javaCompile.destinationDir
taskFat.from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } fatJar.from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
file('natives').eachDir() { dir -> file('natives').eachDir() { dir ->
taskFat.from(dir.path) fatJar.from(dir.path)
taskFat.from("${rootProject.projectDir}/vtm-android/natives/${dir.name}") fatJar.from("${rootProject.projectDir}/vtm-android/natives/${dir.name}")
} }
taskFat.exclude 'android-logger.properties' fatJar.exclude 'android-logger.properties'
artifacts.add('archives', taskFat); artifacts.add('archives', fatJar);
} }
afterEvaluate { afterEvaluate {

View File

@ -43,27 +43,27 @@ android.libraryVariants.all { variant ->
return; // Skip debug builds. return; // Skip debug builds.
} }
def taskJar = project.tasks.create "jar${name.capitalize()}", Jar def jar = project.tasks.create "jar${name.capitalize()}", Jar
taskJar.dependsOn variant.javaCompile jar.dependsOn variant.javaCompile
taskJar.from variant.javaCompile.destinationDir jar.from variant.javaCompile.destinationDir
artifacts.add('archives', taskJar); artifacts.add('archives', jar);
file('natives').eachDir() { dir -> file('natives').eachDir() { dir ->
def taskNatives = project.tasks.create "natives_${dir.name}_Jar${name.capitalize()}", Jar def nativesJar = project.tasks.create "nativesJar${name.capitalize()}-${dir.name}", Jar
taskNatives.classifier = "natives-${dir.name}" nativesJar.classifier = "natives-${dir.name}"
taskNatives.from(dir.path) nativesJar.from(dir.path)
artifacts.add('archives', taskNatives); artifacts.add('archives', nativesJar);
} }
def taskFat = project.tasks.create "fatJar${name.capitalize()}", Jar def fatJar = project.tasks.create "fatJar${name.capitalize()}", Jar
taskFat.classifier = 'jar-with-dependencies' fatJar.classifier = 'jar-with-dependencies'
taskFat.dependsOn variant.javaCompile fatJar.dependsOn variant.javaCompile
taskFat.from variant.javaCompile.destinationDir fatJar.from variant.javaCompile.destinationDir
taskFat.from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } fatJar.from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
file('natives').eachDir() { dir -> file('natives').eachDir() { dir ->
taskFat.from(dir.path) fatJar.from(dir.path)
} }
artifacts.add('archives', taskFat); artifacts.add('archives', fatJar);
} }
// Automated Gradle project deployment to Sonatype OSSRH // Automated Gradle project deployment to Sonatype OSSRH

View File

@ -4,7 +4,9 @@ apply plugin: 'application'
dependencies { dependencies {
compile project(':vtm-gdx') compile project(':vtm-gdx')
compile files('natives') file('natives').eachDir() { dir ->
compile files(dir.path)
}
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
compile "com.badlogicgames.gdx:gdx-backend-jglfw:$gdxVersion" compile "com.badlogicgames.gdx:gdx-backend-jglfw:$gdxVersion"
compile 'com.kitfox.svg:svg-salamander:1.0' compile 'com.kitfox.svg:svg-salamander:1.0'
@ -16,21 +18,29 @@ sourceSets {
} }
} }
task nativesJar(type: Jar) { file('natives').eachDir() { dir ->
classifier = 'natives' task("nativesJar-${dir.name}", type: Jar) {
from('natives') classifier = "natives-${dir.name}"
from(dir.path)
}
artifacts {
archives tasks["nativesJar-${dir.name}"]
}
} }
task fatJar(type: Jar, dependsOn: classes) { task fatJar(type: Jar, dependsOn: classes) {
classifier = 'jar-with-dependencies' classifier = 'jar-with-dependencies'
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
from('natives') // Natives come from compile configuration
/*file('natives').eachDir() { dir ->
fatJar.from(dir.path)
}*/
exclude 'META-INF/*.DSA', 'META-INF/*.RSA', 'META-INF/*.SF' exclude 'META-INF/*.DSA', 'META-INF/*.RSA', 'META-INF/*.SF'
with jar with jar
} }
artifacts { artifacts {
archives nativesJar
archives fatJar archives fatJar
} }