mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-10 07:48:31 +07:00
Gradle Kotlin DSL (#2634)
* Ease migration to Gradle Kotlin DSL by changing quotes, function calls and plugin definitions * Migrate build scripts to Gradle Kotlin DSL
This commit is contained in:
@ -1,186 +0,0 @@
|
||||
android {
|
||||
buildToolsVersion "29.0.2"
|
||||
compileSdkVersion 29
|
||||
sourceSets {
|
||||
main {
|
||||
manifest.srcFile 'AndroidManifest.xml'
|
||||
java.srcDirs = ['src']
|
||||
aidl.srcDirs = ['src']
|
||||
renderscript.srcDirs = ['src']
|
||||
res.srcDirs = ['res']
|
||||
assets.srcDirs = ['assets']
|
||||
jniLibs.srcDirs = ['libs']
|
||||
}
|
||||
|
||||
androidTest.setRoot('tests')
|
||||
}
|
||||
packagingOptions {
|
||||
exclude 'META-INF/robovm/ios/robovm.xml'
|
||||
}
|
||||
defaultConfig {
|
||||
applicationId "com.unciv.app"
|
||||
minSdkVersion 14
|
||||
targetSdkVersion 29
|
||||
versionCode appCodeNumber
|
||||
versionName appVersion
|
||||
|
||||
archivesBaseName = "Unciv"
|
||||
}
|
||||
|
||||
// necessary for Android Work lib
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_1_8.toString()
|
||||
}
|
||||
|
||||
// Had to add this crap for Travis to build, it wanted to sign the app
|
||||
// but couldn't create the debug keystore for some reason
|
||||
|
||||
signingConfigs {
|
||||
debug {
|
||||
storeFile rootProject.file('debug.keystore')
|
||||
keyAlias 'androiddebugkey'
|
||||
keyPassword 'android'
|
||||
storePassword 'android'
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
// Don't add local save files and fonts to release, obviously
|
||||
aaptOptions {
|
||||
ignoreAssetsPattern "!SaveFiles:!fonts:!maps:!music:!mods"
|
||||
}
|
||||
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
|
||||
debug {
|
||||
// Don't add local save files and fonts to release, obviously
|
||||
aaptOptions {
|
||||
ignoreAssetsPattern "!SaveFiles:!fonts:!maps:!music"
|
||||
}
|
||||
}
|
||||
}
|
||||
lintOptions {
|
||||
disable 'MissingTranslation'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// called every time gradle gets executed, takes the native dependencies of
|
||||
// the natives configuration, and extracts them to the proper libs/ folders
|
||||
// so they get packed with the APK.
|
||||
task copyAndroidNatives() {
|
||||
doFirst {
|
||||
file("libs/armeabi/").mkdirs()
|
||||
file("libs/armeabi-v7a/").mkdirs()
|
||||
file("libs/arm64-v8a/").mkdirs()
|
||||
file("libs/x86_64/").mkdirs()
|
||||
file("libs/x86/").mkdirs()
|
||||
configurations.natives.files.each { jar ->
|
||||
def outputDir = null
|
||||
if(jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
|
||||
if(jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
|
||||
if(jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi")
|
||||
if(jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
|
||||
if(jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
|
||||
if(outputDir != null) {
|
||||
copy {
|
||||
from zipTree(jar)
|
||||
into outputDir
|
||||
include "*.so"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.whenTaskAdded { packageTask ->
|
||||
if (packageTask.name.contains("package")) {
|
||||
packageTask.dependsOn 'copyAndroidNatives'
|
||||
}
|
||||
}
|
||||
|
||||
task run(type: Exec) {
|
||||
def path
|
||||
def localProperties = project.file("../local.properties")
|
||||
if (localProperties.exists()) {
|
||||
Properties properties = new Properties()
|
||||
localProperties.withInputStream { instr ->
|
||||
properties.load(instr)
|
||||
}
|
||||
def sdkDir = properties.getProperty('sdk.dir')
|
||||
if (sdkDir) {
|
||||
path = sdkDir
|
||||
} else {
|
||||
path = "$System.env.ANDROID_HOME"
|
||||
}
|
||||
} else {
|
||||
path = "$System.env.ANDROID_HOME"
|
||||
}
|
||||
|
||||
def adb = path + "/platform-tools/adb"
|
||||
commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.unciv.app/AndroidLauncher'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'androidx.core:core:1.2.0'
|
||||
implementation "androidx.work:work-runtime-ktx:2.3.2"
|
||||
}
|
||||
|
||||
// sets up the Android Eclipse project, using the old Ant based build.
|
||||
eclipse {
|
||||
// need to specify Java source sets explicitly, SpringSource Gradle Eclipse plugin
|
||||
// ignores any nodes added in classpath.file.withXml
|
||||
sourceSets {
|
||||
main {
|
||||
java.srcDirs "src", 'gen'
|
||||
}
|
||||
}
|
||||
|
||||
jdt {
|
||||
sourceCompatibility = 1.6
|
||||
targetCompatibility = 1.6
|
||||
}
|
||||
|
||||
classpath {
|
||||
plusConfigurations += [ project.configurations.compile ]
|
||||
containers 'com.android.ide.eclipse.adt.ANDROID_FRAMEWORK', 'com.android.ide.eclipse.adt.LIBRARIES'
|
||||
}
|
||||
|
||||
project {
|
||||
name = appName + "-android"
|
||||
natures 'com.android.ide.eclipse.adt.AndroidNature'
|
||||
buildCommands.clear()
|
||||
buildCommand "com.android.ide.eclipse.adt.ResourceManagerBuilder"
|
||||
buildCommand "com.android.ide.eclipse.adt.PreCompilerBuilder"
|
||||
buildCommand "org.eclipse.jdt.core.javabuilder"
|
||||
buildCommand "com.android.ide.eclipse.adt.ApkBuilder"
|
||||
}
|
||||
}
|
||||
|
||||
// sets up the Android Idea project, using the old Ant based build.
|
||||
idea {
|
||||
module {
|
||||
sourceDirs += file("src")
|
||||
scopes = [ COMPILE: [plus:[project.configurations.compile]]]
|
||||
|
||||
iml {
|
||||
withXml {
|
||||
def node = it.asNode()
|
||||
def builder = NodeBuilder.newInstance()
|
||||
builder.current = node
|
||||
builder.component(name: "FacetManager") {
|
||||
facet(type: "android", name: "Android") {
|
||||
configuration {
|
||||
option(name: "UPDATE_PROPERTY_FILES", value:"true")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
162
android/build.gradle.kts
Normal file
162
android/build.gradle.kts
Normal file
@ -0,0 +1,162 @@
|
||||
import com.unciv.build.BuildConfig
|
||||
import java.util.*
|
||||
|
||||
plugins {
|
||||
id("com.android.application")
|
||||
id("kotlin-android")
|
||||
id("kotlin-android-extensions")
|
||||
}
|
||||
|
||||
android {
|
||||
buildToolsVersion("29.0.2")
|
||||
compileSdkVersion(29)
|
||||
sourceSets {
|
||||
getByName("main").apply {
|
||||
manifest.srcFile("AndroidManifest.xml")
|
||||
java.srcDirs("src")
|
||||
aidl.srcDirs("src")
|
||||
renderscript.srcDirs("src")
|
||||
res.srcDirs("res")
|
||||
assets.srcDirs("assets")
|
||||
jniLibs.srcDirs("libs")
|
||||
}
|
||||
}
|
||||
packagingOptions {
|
||||
exclude("META-INF/robovm/ios/robovm.xml")
|
||||
}
|
||||
defaultConfig {
|
||||
applicationId = "com.unciv.app"
|
||||
minSdkVersion(14)
|
||||
targetSdkVersion(29)
|
||||
versionCode = BuildConfig.appCodeNumber
|
||||
versionName = BuildConfig.appVersion
|
||||
|
||||
base.archivesBaseName = "Unciv"
|
||||
}
|
||||
|
||||
// necessary for Android Work lib
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_1_8.toString()
|
||||
}
|
||||
|
||||
// Had to add this crap for Travis to build, it wanted to sign the app
|
||||
// but couldn't create the debug keystore for some reason
|
||||
|
||||
signingConfigs {
|
||||
getByName("debug") {
|
||||
storeFile = rootProject.file("debug.keystore")
|
||||
keyAlias = "androiddebugkey"
|
||||
keyPassword = "android"
|
||||
storePassword = "android"
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
getByName("release") {
|
||||
// Don't add local save files and fonts to release, obviously
|
||||
aaptOptions {
|
||||
ignoreAssetsPattern = "!SaveFiles:!fonts:!maps:!music:!mods"
|
||||
}
|
||||
|
||||
isMinifyEnabled = false
|
||||
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
|
||||
}
|
||||
|
||||
getByName("debug") {
|
||||
// Don't add local save files and fonts to release, obviously
|
||||
aaptOptions {
|
||||
ignoreAssetsPattern = "!SaveFiles:!fonts:!maps:!music"
|
||||
}
|
||||
}
|
||||
}
|
||||
lintOptions {
|
||||
disable("MissingTranslation")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// called every time gradle gets executed, takes the native dependencies of
|
||||
// the natives configuration, and extracts them to the proper libs/ folders
|
||||
// so they get packed with the APK.
|
||||
task("copyAndroidNatives") {
|
||||
val natives: Configuration by configurations
|
||||
|
||||
doFirst {
|
||||
file("libs/armeabi/").mkdirs()
|
||||
file("libs/armeabi-v7a/").mkdirs()
|
||||
file("libs/arm64-v8a/").mkdirs()
|
||||
file("libs/x86_64/").mkdirs()
|
||||
file("libs/x86/").mkdirs()
|
||||
natives.forEach { jar ->
|
||||
val outputDir: File? = when {
|
||||
jar.name.endsWith("natives-arm64-v8a.jar") -> file("libs/arm64-v8a")
|
||||
jar.name.endsWith("natives-armeabi-v7a.jar") -> file("libs/armeabi-v7a")
|
||||
jar.name.endsWith("natives-armeabi.jar") -> file("libs/armeabi")
|
||||
jar.name.endsWith("natives-x86_64.jar") -> file("libs/x86_64")
|
||||
jar.name.endsWith("natives-x86.jar") -> file("libs/x86")
|
||||
else -> null
|
||||
}
|
||||
outputDir?.let {
|
||||
copy {
|
||||
from(zipTree(jar))
|
||||
into(outputDir)
|
||||
include("*.so")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.whenTaskAdded {
|
||||
if ("package" in name) {
|
||||
dependsOn("copyAndroidNatives")
|
||||
}
|
||||
}
|
||||
|
||||
tasks.register<JavaExec>("run") {
|
||||
val localProperties = project.file("../local.properties")
|
||||
val path = if (localProperties.exists()) {
|
||||
val properties = Properties()
|
||||
localProperties.inputStream().use { properties.load(it) }
|
||||
|
||||
properties.getProperty("sdk.dir") ?: System.getenv("ANDROID_HOME")
|
||||
} else {
|
||||
System.getenv("ANDROID_HOME")
|
||||
}
|
||||
|
||||
val adb = "$path/platform-tools/adb"
|
||||
|
||||
doFirst {
|
||||
project.exec {
|
||||
commandLine(adb, "shell", "am", "start", "-n", "com.unciv.app/AndroidLauncher")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation("androidx.core:core:1.2.0")
|
||||
implementation("androidx.work:work-runtime-ktx:2.3.2")
|
||||
}
|
||||
|
||||
// sets up the Android Eclipse project, using the old Ant based build.
|
||||
eclipse {
|
||||
jdt {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_6
|
||||
targetCompatibility = JavaVersion.VERSION_1_6
|
||||
}
|
||||
|
||||
classpath {
|
||||
plusConfigurations = plusConfigurations.apply { add(project.configurations.compile.get()) }
|
||||
containers("com.android.ide.eclipse.adt.ANDROID_FRAMEWORK", "com.android.ide.eclipse.adt.LIBRARIES")
|
||||
}
|
||||
|
||||
project {
|
||||
name = "${BuildConfig.appName}-android"
|
||||
natures("com.android.ide.eclipse.adt.AndroidNature")
|
||||
buildCommands.clear()
|
||||
buildCommand("com.android.ide.eclipse.adt.ResourceManagerBuilder")
|
||||
buildCommand("com.android.ide.eclipse.adt.PreCompilerBuilder")
|
||||
buildCommand("org.eclipse.jdt.core.javabuilder")
|
||||
buildCommand("com.android.ide.eclipse.adt.ApkBuilder")
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user