import org.apache.tools.ant.taskdefs.condition.Os apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion '25.0.2' 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 // TODO This should be set to the Buildbot build number for release builds, and be "1" for debug builds. versionCode 13 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 = '25.2.0' } dependencies { compile "com.android.support:support-v13:$androidSupportVersion" compile "com.android.support:cardview-v7:$androidSupportVersion" compile "com.android.support:recyclerview-v7:$androidSupportVersion" compile "com.android.support:design:$androidSupportVersion" // Android TV UI libraries. compile "com.android.support:leanback-v17:$androidSupportVersion" // For showing the banner as a circle a-la Material Design Guidelines compile 'de.hdodenhof:circleimageview:2.1.0' // For loading huge screenshots from the disk. compile 'com.squareup.picasso:picasso:2.5.2' // Allows FRP-style asynchronous operations in Android. compile 'io.reactivex:rxandroid:1.2.1' } def getVersion() { String result if(Os.isFamily(Os.FAMILY_WINDOWS)) { result = 'cmd /c git describe --always --long'.execute([], project.rootDir).text } else { result = 'git describe --always --long'.execute([], project.rootDir).text } return result.trim().replaceAll(/(-0)?-[^-]+$/, "") }