mirror of
https://github.com/libretro/RetroArch
synced 2025-02-02 05:54:16 +00:00
172 lines
3.9 KiB
Groovy
172 lines
3.9 KiB
Groovy
buildscript {
|
|
repositories {
|
|
google()
|
|
jcenter()
|
|
}
|
|
|
|
dependencies {
|
|
classpath 'com.android.tools.build:gradle:4.1.0'
|
|
}
|
|
}
|
|
|
|
allprojects {
|
|
repositories {
|
|
google()
|
|
jcenter()
|
|
}
|
|
|
|
Properties props = new Properties()
|
|
props.load(new FileInputStream(new File(project.rootDir, "retroarch.properties")))
|
|
props.each { prop ->
|
|
project.ext.set(prop.key, prop.value)
|
|
}
|
|
}
|
|
|
|
apply plugin: 'com.android.application'
|
|
|
|
android {
|
|
compileSdkVersion 29
|
|
buildToolsVersion "29.0.3"
|
|
ndkVersion '21.3.6528147'
|
|
|
|
flavorDimensions "variant"
|
|
|
|
defaultConfig {
|
|
minSdkVersion 16
|
|
externalNativeBuild {
|
|
ndkBuild {
|
|
arguments "-j${Runtime.runtime.availableProcessors()}"
|
|
}
|
|
}
|
|
targetSdkVersion 28
|
|
versionCode System.currentTimeSeconds().toInteger()
|
|
versionName "${getManifestAttribute("versionName")}_GIT"
|
|
}
|
|
|
|
productFlavors {
|
|
normal {
|
|
resValue "string", "app_name", "RetroArch"
|
|
buildConfigField "boolean", "PLAY_STORE_BUILD", "false"
|
|
|
|
dimension "variant"
|
|
}
|
|
aarch64 {
|
|
applicationIdSuffix '.aarch64'
|
|
resValue "string", "app_name", "RetroArch (AArch64)"
|
|
buildConfigField "boolean", "PLAY_STORE_BUILD", "false"
|
|
|
|
dimension "variant"
|
|
ndk {
|
|
abiFilters 'arm64-v8a', 'x86_64'
|
|
}
|
|
}
|
|
ra32 {
|
|
applicationIdSuffix '.ra32'
|
|
resValue "string", "app_name", "RetroArch (32-bit)"
|
|
buildConfigField "boolean", "PLAY_STORE_BUILD", "false"
|
|
|
|
dimension "variant"
|
|
ndk {
|
|
abiFilters 'armeabi-v7a', 'x86'
|
|
}
|
|
}
|
|
playStoreNormal {
|
|
minSdkVersion 21
|
|
targetSdkVersion 29
|
|
versionCode getPlayStoreVersionCode()
|
|
versionName getPlayStoreVersionName()
|
|
|
|
resValue "string", "app_name", "RetroArch"
|
|
buildConfigField "boolean", "PLAY_STORE_BUILD", "true"
|
|
|
|
dimension "variant"
|
|
}
|
|
playStorePlus {
|
|
minSdkVersion 26
|
|
targetSdkVersion 29
|
|
versionCode getPlayStoreVersionCode()
|
|
versionName getPlayStoreVersionName()
|
|
|
|
applicationIdSuffix '.aarch64'
|
|
resValue "string", "app_name", "RetroArch Plus"
|
|
buildConfigField "boolean", "PLAY_STORE_BUILD", "true"
|
|
|
|
dimension "variant"
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
manifest.srcFile 'AndroidManifest.xml'
|
|
assets.srcDirs = ['assets']
|
|
java.srcDirs = ['src', '../phoenix-common/src']
|
|
jniLibs.srcDir '../phoenix-common/libs'
|
|
jni.srcDirs = []
|
|
res.srcDirs = ['res', '../phoenix-common/res']
|
|
}
|
|
aarch64 {
|
|
res.srcDirs = ['res', 'res64']
|
|
}
|
|
}
|
|
|
|
externalNativeBuild {
|
|
ndkBuild {
|
|
path '../phoenix-common/jni/Android.mk'
|
|
}
|
|
}
|
|
|
|
signingConfigs {
|
|
if (project.hasProperty("RELEASE_STORE_FILE")) {
|
|
release {
|
|
storeFile file(RELEASE_STORE_FILE)
|
|
storePassword RELEASE_STORE_PASSWORD
|
|
keyAlias RELEASE_KEY_ALIAS
|
|
keyPassword RELEASE_KEY_PASSWORD
|
|
}
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
if (project.hasProperty("RELEASE_STORE_FILE")) {
|
|
release {
|
|
signingConfig signingConfigs.release
|
|
}
|
|
}
|
|
else {
|
|
release {
|
|
signingConfig signingConfigs.debug
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation 'com.google.android.play:core:1.8.0'
|
|
}
|
|
|
|
def dynamicFeatures = file("dynamic_features.gradle")
|
|
if(dynamicFeatures.exists()) {
|
|
apply from: "dynamic_features.gradle"
|
|
}
|
|
|
|
static int getPlayStoreVersionCode() {
|
|
def baseVersion = getManifestAttribute("versionCode").toInteger()
|
|
def baseTime = 1609632000
|
|
def halfWeek = 302400
|
|
def increment = (System.currentTimeSeconds() - baseTime) / halfWeek
|
|
|
|
return baseVersion + increment
|
|
}
|
|
|
|
static String getPlayStoreVersionName() {
|
|
def versionName = getManifestAttribute("versionName")
|
|
return "$versionName (${new Date().format("yyyy-MM-dd")})"
|
|
}
|
|
|
|
static String getManifestAttribute(String attribute) {
|
|
def manifest = new XmlParser().parse("AndroidManifest.xml")
|
|
return manifest.attributes().find {
|
|
((String) it.key).contains(attribute)
|
|
}.value
|
|
}
|