plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-parcelize' id 'com.google.android.gms.oss-licenses-plugin' } android { namespace "com.itsaky.androidide" compileSdkVersion rootProject.ext.compileSdk buildToolsVersion rootProject.ext.buildTools defaultConfig { applicationId rootProject.ext.packageName minSdkVersion rootProject.ext.minSdk targetSdkVersion rootProject.ext.targetSdk versionCode rootProject.ext.versionCode versionName rootProject.ext.versionName multiDexEnabled true vectorDrawables.useSupportLibrary = true } compileOptions { coreLibraryDesugaringEnabled true sourceCompatibility rootProject.ext.javaSourceVersion targetCompatibility rootProject.ext.javaTargetVersion } kotlinOptions { jvmTarget = "11" } buildFeatures { viewBinding true } signingConfigs { debug { storeFile file ("dev.keystore") keyAlias "androidide" storePassword "ed68424fb109e5aa8146e4b86caa72e3" keyPassword "ed68424fb109e5aa8146e4b86caa72e3" } release { storeFile file ("dev.keystore") keyAlias "androidide" storePassword "ed68424fb109e5aa8146e4b86caa72e3" keyPassword "ed68424fb109e5aa8146e4b86caa72e3" } } buildTypes { debug { minifyEnabled false proguardFiles getDefaultProguardFile ('proguard-android-optimize.txt'), 'proguard-rules.pro' signingConfig signingConfigs.debug } release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile ('proguard-android-optimize.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } } packagingOptions { resources { excludes += ['META-INF/eclipse.inf', 'META-INF/CHANGES', 'META-INF/README.md', 'about_files/LICENSE-2.0.txt', 'META-INF/AL2.0', 'META-INF/LGPL2.1', 'plugin.xml', 'plugin.properties', 'about.mappings', 'about.properties', 'about.ini', 'modeling32.png'] } } lint { abortOnError false disable 'VectorPath', 'NestedWeights', 'ContentDescription', 'SmallSp' } } configurations.all { exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel-ktx' } kapt { arguments { arg ('eventBusIndex', 'com.itsaky.androidide.events.AppEventsIndex') } } dependencies { // Annotation processors kapt common.glide_ap kapt common.eventbus_ap implementation common.editor implementation common.utilcode implementation common.glide implementation common.jsoup implementation common.quickaction implementation google.gson implementation google.guava // AndroidX implementation androidx.splashscreen implementation androidx.annotation implementation androidx.appcompat implementation androidx.cardview implementation androidx.constraintlayout implementation androidx.coordinatorlayout implementation androidx.drawer implementation androidx.grid implementation androidx.preference implementation androidx.recyclerview implementation androidx.vectors implementation androidx.animated_vectors implementation google.material implementation google.oss_licenses // Kotlin implementation androidx.ktx implementation common.kotlin // Local projects here implementation project (':actions') implementation project (':common') implementation project (':editor') implementation project (':emulatorview') implementation project (':eventbus-android') implementation project (':eventbus-events') implementation project (':build-tools:aaptcompiler') implementation project (':build-tools:javac-services') implementation project (':build-tools:xml-utils') implementation project (':build-tools:projects') implementation project (':build-tools:tooling-api') implementation project (':lsp:api') implementation project (':lsp:java') implementation project (':lsp:xml') implementation project (':lexers') implementation project (':lookup') implementation project (':preferences') implementation project (':resources') implementation project (':treeview') implementation project (':xml-inflater') implementation fileTree (dir: 'libs', include: ['*.jar']) coreLibraryDesugaring androidx.lib_desugaring // This is to build the tooling-api-impl project before the app is built // So we always copy the latest JAR file to assets compileOnly project (path: ':build-tools:tooling-api-impl') testImplementation common.editor testImplementation tests.junit testImplementation tests.google_truth testImplementation tests.robolectric androidTestImplementation tests.androidx_junit androidTestImplementation tests.androidx_espresso androidTestImplementation tests.google_truth }