mirror of
				https://git.eden-emu.dev/eden-emu/eden.git
				synced 2025-10-25 19:03:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			161 lines
		
	
	
	
		
			5.2 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
	
		
			5.2 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
| apply plugin: 'com.android.application'
 | |
| 
 | |
| /**
 | |
|  * Use the number of seconds/10 since Jan 1 2016 as the versionCode.
 | |
|  * This lets us upload a new build at most every 10 seconds for the
 | |
|  * next 680 years.
 | |
|  */
 | |
| def autoVersion = (int) (((new Date().getTime() / 1000) - 1451606400) / 10)
 | |
| def buildType
 | |
| def abiFilter = "arm64-v8a" //, "x86"
 | |
| 
 | |
| android {
 | |
|     compileSdkVersion 32
 | |
|     ndkVersion "25.2.9519653"
 | |
| 
 | |
|     compileOptions {
 | |
|         sourceCompatibility JavaVersion.VERSION_1_8
 | |
|         targetCompatibility JavaVersion.VERSION_1_8
 | |
|     }
 | |
| 
 | |
|     lintOptions {
 | |
|         // 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'bin
 | |
|         //disable 'ExtraTranslation'
 | |
|     }
 | |
| 
 | |
|     defaultConfig {
 | |
|         // TODO If this is ever modified, change application_id in strings.xml
 | |
|         applicationId "org.yuzu.yuzu_emu"
 | |
|         minSdkVersion 28
 | |
|         targetSdkVersion 31
 | |
|         versionCode autoVersion
 | |
|         versionName getVersion()
 | |
|         ndk.abiFilters abiFilter
 | |
|     }
 | |
| 
 | |
|     signingConfigs {
 | |
|         //release {
 | |
|         //    storeFile file('')
 | |
|         //    storePassword System.getenv('ANDROID_KEYPASS')
 | |
|         //    keyAlias = 'key0'
 | |
|         //    keyPassword System.getenv('ANDROID_KEYPASS')
 | |
|         //}
 | |
|     }
 | |
| 
 | |
|     applicationVariants.all { variant ->
 | |
|         buildType = variant.buildType.name // sets the current build type
 | |
|     }
 | |
| 
 | |
|     // Define build types, which are orthogonal to product flavors.
 | |
|     buildTypes {
 | |
| 
 | |
|         // Signed by release key, allowing for upload to Play Store.
 | |
|         release {
 | |
|             signingConfig signingConfigs.debug
 | |
|         }
 | |
| 
 | |
|         // builds a release build that doesn't need signing
 | |
|         // Attaches 'debug' suffix to version and package name, allowing installation alongside the release build.
 | |
|         relWithDebInfo {
 | |
|             initWith release
 | |
|             applicationIdSuffix ".debug"
 | |
|             versionNameSuffix '-debug'
 | |
|             signingConfig signingConfigs.debug
 | |
|             minifyEnabled false
 | |
|             testCoverageEnabled false
 | |
|             debuggable true
 | |
|             jniDebuggable true
 | |
|         }
 | |
| 
 | |
|         // 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'
 | |
|             debuggable true
 | |
|             jniDebuggable true
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     flavorDimensions "version"
 | |
|     productFlavors {
 | |
|         canary {
 | |
|             dimension "version"
 | |
|             applicationIdSuffix ".canary"
 | |
|         }
 | |
|         nightly {
 | |
|             dimension "version"
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     externalNativeBuild {
 | |
|         cmake {
 | |
|             version "3.22.1"
 | |
|             path "../../../CMakeLists.txt"
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     defaultConfig {
 | |
|         externalNativeBuild {
 | |
|             cmake {
 | |
|                 arguments "-DENABLE_QT=0", // Don't use QT
 | |
|                         "-DENABLE_SDL2=0", // Don't use SDL
 | |
|                         "-DENABLE_WEB_SERVICE=0", // Don't use telemetry
 | |
|                         "-DANDROID_ARM_NEON=true", // cryptopp requires Neon to work
 | |
|                         "-DYUZU_USE_BUNDLED_VCPKG=ON",
 | |
|                         "-DYUZU_USE_BUNDLED_FFMPEG=ON"
 | |
| 
 | |
|                 abiFilters abiFilter
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| dependencies {
 | |
|     implementation 'androidx.appcompat:appcompat:1.5.1'
 | |
|     implementation 'androidx.exifinterface:exifinterface:1.3.4'
 | |
|     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.3'
 | |
|     implementation "androidx.slidingpanelayout:slidingpanelayout:1.2.0"
 | |
|     implementation "androidx.documentfile:documentfile:1.0.1"
 | |
|     implementation 'com.google.android.material:material:1.6.1'
 | |
| 
 | |
|     // For loading huge screenshots from the disk.
 | |
|     implementation 'com.squareup.picasso:picasso:2.71828'
 | |
| 
 | |
|     // Allows FRP-style asynchronous operations in Android.
 | |
|     implementation 'io.reactivex:rxandroid:1.2.1'
 | |
|     implementation 'com.nononsenseapps:filepicker:4.2.1'
 | |
|     implementation 'org.ini4j:ini4j:0.5.4'
 | |
|     implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
 | |
|     implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0'
 | |
|     implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
 | |
| }
 | |
| 
 | |
| def getVersion() {
 | |
|     def versionName = '0.0'
 | |
| 
 | |
|     try {
 | |
|         versionName = 'git describe --always --long'.execute([], project.rootDir).text
 | |
|                 .trim()
 | |
|                 .replaceAll(/(-0)?-[^-]+$/, "")
 | |
|     } catch (Exception) {
 | |
|         logger.error('Cannot find git, defaulting to dummy version number')
 | |
|     }
 | |
| 
 | |
|     if (System.getenv("GITHUB_ACTIONS") != null) {
 | |
|         def gitTag = System.getenv("GIT_TAG_NAME")
 | |
|         versionName = gitTag ?: versionName
 | |
|     }
 | |
| 
 | |
|     return versionName
 | |
| }
 | 
