mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-15 05:47:56 -07:00
b9fffa2e66
Similar to app themes, theme modes have to be loaded before directory initialization is ready. So we save the proper key the same way.
153 lines
4.8 KiB
Groovy
153 lines
4.8 KiB
Groovy
apply plugin: 'com.android.application'
|
|
|
|
android {
|
|
compileSdkVersion 33
|
|
ndkVersion "25.0.8775105"
|
|
|
|
viewBinding.enabled = true
|
|
|
|
compileOptions {
|
|
// Flag to enable support for the new language APIs
|
|
coreLibraryDesugaringEnabled true
|
|
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
lint {
|
|
// This is important as it will run lint but not abort on error
|
|
// Lint has some overly obnoxious "errors" that should really be warnings
|
|
abortOnError false
|
|
|
|
//Uncomment disable lines for test builds...
|
|
//disable 'MissingTranslation'
|
|
//disable 'ExtraTranslation'
|
|
}
|
|
|
|
defaultConfig {
|
|
// TODO If this is ever modified, change application_id in strings.xml
|
|
applicationId "org.dolphinemu.dolphinemu"
|
|
minSdkVersion 21
|
|
targetSdkVersion 33
|
|
|
|
versionCode(getBuildVersionCode())
|
|
|
|
versionName "${getVersion()}"
|
|
}
|
|
|
|
signingConfigs {
|
|
release {
|
|
if (project.hasProperty('keystore')) {
|
|
storeFile file(project.property('keystore'))
|
|
storePassword project.property('storepass')
|
|
keyAlias project.property('keyalias')
|
|
keyPassword project.property('keypass')
|
|
}
|
|
}
|
|
}
|
|
|
|
// Define build types, which are orthogonal to product flavors.
|
|
buildTypes {
|
|
// Signed by release key, allowing for upload to Play Store.
|
|
release {
|
|
if (project.hasProperty('keystore')) {
|
|
signingConfig signingConfigs.release
|
|
}
|
|
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
proguardFiles getDefaultProguardFile(
|
|
'proguard-android-optimize.txt'),
|
|
'proguard-rules.pro'
|
|
}
|
|
|
|
// Signed by debug key disallowing distribution on Play Store.
|
|
// Attaches 'debug' suffix to version and package name, allowing installation alongside the release build.
|
|
debug {
|
|
// TODO If this is ever modified, change application_id in debug/strings.xml
|
|
applicationIdSuffix ".debug"
|
|
versionNameSuffix '-debug'
|
|
jniDebuggable true
|
|
}
|
|
}
|
|
|
|
externalNativeBuild {
|
|
cmake {
|
|
path "../../../CMakeLists.txt"
|
|
version "3.18.1"
|
|
}
|
|
}
|
|
namespace 'org.dolphinemu.dolphinemu'
|
|
|
|
defaultConfig {
|
|
externalNativeBuild {
|
|
cmake {
|
|
arguments "-DANDROID_STL=c++_static", "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
|
|
// , "-DENABLE_GENERIC=ON"
|
|
abiFilters "arm64-v8a", "x86_64" //, "armeabi-v7a", "x86"
|
|
|
|
// Remove the line below if you want to build the C++ unit tests
|
|
targets "main"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
|
|
|
|
implementation 'androidx.appcompat:appcompat:1.5.1'
|
|
implementation 'androidx.exifinterface:exifinterface:1.3.3'
|
|
implementation 'androidx.cardview:cardview:1.0.0'
|
|
implementation 'androidx.recyclerview:recyclerview:1.2.1'
|
|
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
|
implementation 'androidx.lifecycle:lifecycle-viewmodel:2.5.1'
|
|
implementation 'androidx.fragment:fragment:1.5.2'
|
|
implementation 'androidx.slidingpanelayout:slidingpanelayout:1.2.0'
|
|
implementation 'com.google.android.material:material:1.6.1'
|
|
implementation 'androidx.core:core-splashscreen:1.0.0'
|
|
implementation 'androidx.preference:preference:1.2.0'
|
|
|
|
// Force dependency version to solve build conflict with androidx preferences
|
|
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1"
|
|
|
|
// Android TV UI libraries.
|
|
implementation 'androidx.leanback:leanback:1.0.0'
|
|
implementation 'androidx.tvprovider:tvprovider:1.0.0'
|
|
|
|
// For REST calls
|
|
implementation 'com.android.volley:volley:1.2.1'
|
|
|
|
// For loading game covers from disk and GameTDB
|
|
implementation 'com.github.bumptech.glide:glide:4.13.1'
|
|
|
|
implementation 'com.nononsenseapps:filepicker:4.2.1'
|
|
}
|
|
|
|
def getVersion() {
|
|
def versionNumber = '0.0'
|
|
|
|
try {
|
|
versionNumber = 'git describe --always --long'.execute([], project.rootDir).text
|
|
.trim()
|
|
.replaceAll(/(-0)?-[^-]+$/, "")
|
|
} catch (Exception e) {
|
|
logger.error(e + ': Cannot find git, defaulting to dummy version number')
|
|
}
|
|
|
|
return versionNumber
|
|
}
|
|
|
|
|
|
def getBuildVersionCode() {
|
|
try {
|
|
def versionNumber = 'git rev-list --first-parent --count HEAD'.execute([], project.rootDir).text
|
|
.trim()
|
|
return Integer.valueOf(versionNumber)
|
|
} catch (Exception e) {
|
|
logger.error(e + ': Cannot find git, defaulting to dummy version number')
|
|
}
|
|
|
|
return 1
|
|
}
|