apply plugin: 'com.android.application' android { compileSdkVersion 26 buildToolsVersion '27.0.3' 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' //disable 'ExtraTranslation' } defaultConfig { // TODO If this is ever modified, change application_id in strings.xml applicationId "org.dolphinemu.dolphinemu" minSdkVersion 21 targetSdkVersion 25 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 { signingConfig signingConfigs.release } // 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" } } defaultConfig { externalNativeBuild { cmake { arguments "-DANDROID_STL=c++_static", "-DCMAKE_BUILD_TYPE=RelWithDebInfo" // , "-DENABLE_GENERIC=ON" abiFilters "arm64-v8a", "x86_64" //, "armeabi-v7a", "x86" } } } } ext { androidSupportVersion = '26.1.0' } dependencies { implementation "com.android.support:support-v13:$androidSupportVersion" implementation "com.android.support:cardview-v7:$androidSupportVersion" implementation "com.android.support:recyclerview-v7:$androidSupportVersion" implementation "com.android.support:design:$androidSupportVersion" // Android TV UI libraries. implementation "com.android.support:leanback-v17:$androidSupportVersion" // For showing the banner as a circle a-la Material Design Guidelines implementation 'de.hdodenhof:circleimageview:2.1.0' // For loading huge screenshots from the disk. implementation 'com.squareup.picasso:picasso:2.5.2' // Allows FRP-style asynchronous operations in Android. implementation 'io.reactivex:rxandroid:1.2.1' implementation 'com.nononsenseapps:filepicker:4.1.0' } def getVersion() { def versionNumber = '0.0' try { versionNumber = 'git describe --always --long'.execute([], project.rootDir).text .trim() .replaceAll(/(-0)?-[^-]+$/, "") } catch (Exception e) { logger.error('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('Cannot find git, defaulting to dummy version number') } return 0; }