/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'kotlinx-serialization' android { namespace 'com.facebook.flipper' compileSdkVersion rootProject.compileSdkVersion buildToolsVersion rootProject.buildToolsVersion ndkVersion rootProject.ndkVersion // Uncomment this and enable the database plugin test when roboelectric is upgraded // testOptions.unitTests.includeAndroidResources = true defaultConfig { minSdkVersion rootProject.minSdkVersion targetSdkVersion rootProject.targetSdkVersion buildConfigField "boolean", "IS_INTERNAL_BUILD", 'true' buildConfigField "boolean", "IS_ASAN_BUILD", 'false' buildConfigField "boolean", "LOAD_FLIPPER_EXPLICIT", 'false' ndk { abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' } externalNativeBuild { cmake { arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=c++_shared' targets 'flipper' } } } lintOptions { abortOnError false } sourceSets { test { java { exclude 'com/facebook/flipper/plugins/facebook/**' } } } compileOptions { targetCompatibility rootProject.javaTargetVersion sourceCompatibility rootProject.javaTargetVersion } buildFeatures { prefab true } packagingOptions { exclude("**/libfbjni.so") exclude("**/libc++_shared.so") } externalNativeBuild { cmake { path './CMakeLists.txt' } } dependencies { compileOnly deps.proguardAnnotations implementation deps.kotlinStdLibrary implementation deps.kotlinCoroutinesAndroid implementation deps.openssl implementation deps.fbjni implementation deps.soloader implementation deps.jsr305 implementation deps.supportAppCompat implementation deps.supportSqlite implementation deps.websocket implementation deps.kotlinxSerializationJson testImplementation deps.mockito testImplementation deps.robolectric testImplementation deps.testCore testImplementation deps.testRules testImplementation deps.hamcrest testImplementation deps.junit } } // Patch below is used in case the 'configureCMake' task // gets executed in parallel with the 'preBuild' task. // Our CMakeFile expects third-party dependencies to be already // in-place and patched. tasks.matching { it.name.startsWith("configureCMake") }.all { dependsOn(tasks.getByPath(':third-party:prepare')) } preBuild.dependsOn(tasks.getByPath(':third-party:prepare')) apply plugin: 'com.vanniktech.maven.publish'