samples: Port android build to stable android gradle plugin

This commit is contained in:
Ilya Matveev
2017-11-08 17:49:19 +03:00
committed by ilmat192
parent 97f666e643
commit 3a1a6fd6fb
2 changed files with 54 additions and 63 deletions
+2 -1
View File
@@ -53,4 +53,5 @@ kotstd/ll
backend.native/tests/teamcity-test.property
# Sample output
samples/**/*.kt.bc-build
samples/**/*.kt.bc-build
samples/androidNativeActivity/Polyhedron
+52 -62
View File
@@ -1,12 +1,6 @@
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle-experimental:0.9.2'
}
repositories {
jcenter()
mavenCentral()
maven {
url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies"
@@ -14,81 +8,77 @@ buildscript {
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-native-gradle-plugin:+"
classpath "com.android.tools.build:gradle:2.3.3"
}
}
allprojects {
repositories {
jcenter()
}
repositories {
jcenter()
}
apply plugin: "konan"
apply plugin: 'konan'
apply plugin: 'com.android.application'
def platforms = ["armeabi-v7a", "arm64-v8a"]
konan.targets = ["android_arm32", "android_arm64"]
konan.targets = ['android_arm32', 'android_arm64']
def outDir = file('Polyhedron')
def libsDir = file("$outDir/libs")
def platforms = [
"armeabi-v7a": [konanTarget: "android_arm32"],
"arm64-v8a" : [konanTarget: "android_arm64"]
]
konanArtifacts {
program('Polyhedron') {
baseDir 'Polyhedron'
artifactName 'libpoly'
}
}
apply plugin: "com.android.model.application"
task copyLibs(type: Copy) {
dependsOn konanArtifacts.Polyhedron
destinationDir libsDir
model {
android {
compileSdkVersion = 25
buildToolsVersion = '25.0.2'
defaultConfig {
applicationId = 'com.android.konan_activity'
minSdkVersion.apiLevel 9
targetSdkVersion.apiLevel 25
}
ndk {
moduleName = "polyhedron"
}
productFlavors {
create("arm") {
ndk {
abiFilters.addAll(platforms)
}
}
}
}
repositories {
libs(PrebuiltLibraries) {
libpoly {
binaries.withType(SharedLibraryBinary) {
def name = targetPlatform.getName()
def index = platforms.indexOf(name)
if (index >= 0)
sharedLibraryFile = konanArtifacts.Polyhedron."${konan.targets[index]}".artifact
}
}
}
}
android.sources {
main {
jniLibs {
dependencies {
library "libpoly"
}
}
platforms.each { name, platform ->
into(name) {
from konanArtifacts.Polyhedron."${platform.konanTarget}".artifact
}
}
}
task deleteOut(type: Delete) {
delete outDir
}
clean.dependsOn deleteOut
tasks.matching { it.name == 'preBuild' }.all {
it.dependsOn 'compileKonan'
it.dependsOn copyLibs
}
task buildApk(type: DefaultTask) {
dependsOn "compileKonan"
android {
compileSdkVersion 25
buildToolsVersion '25.0.2'
defaultConfig {
applicationId 'com.jetbrains.konan_activity2'
minSdkVersion 9
targetSdkVersion 25
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
sourceSets {
main {
jniLibs.srcDir libsDir
}
}
}
task buildApk(type: Copy) {
dependsOn "assembleDebug"
destinationDir outDir
from 'build/outputs/apk'
}