/* * Copyright (c) Facebook, Inc. and its 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: 'maven' android { compileSdkVersion rootProject.compileSdkVersion buildToolsVersion rootProject.buildToolsVersion // 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' ndk { abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' } externalNativeBuild { cmake { arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=c++_shared', '-DEVENT__DISABLE_OPENSSL=on' targets 'flipper', 'event_shared', 'event_extra_shared', 'event_core_shared' } } } lintOptions { abortOnError false } configurations { extractHeaders extractJNI } sourceSets { test { java { exclude 'com/facebook/flipper/plugins/facebook/**' } } } externalNativeBuild { cmake { path './CMakeLists.txt' } } dependencies { compileOnly deps.lithoAnnotations compileOnly deps.proguardAnnotations implementation 'com.facebook.fbjni:fbjni:0.0.1' extractHeaders 'com.facebook.fbjni:fbjni:0.0.1:headers' extractJNI 'com.facebook.fbjni:fbjni:0.0.1' implementation deps.soloader implementation deps.jsr305 implementation deps.supportAppCompat implementation deps.stetho implementation deps.okhttp3 implementation deps.lithoCore implementation deps.lithoSectionsDebug implementation deps.lithoSectionsCore implementation deps.lithoWidget implementation deps.fresco implementation deps.frescoFlipper implementation deps.frescoStetho compileOnly deps.leakcanary testImplementation deps.mockito testImplementation deps.robolectric testImplementation deps.testCore testImplementation deps.testRules testImplementation deps.hamcrest testImplementation deps.junit } } preBuild.dependsOn(tasks.getByPath(':third-party:prepare')) apply from: rootProject.file('gradle/release.gradle') task sourcesJar(type: Jar) { from android.sourceSets.main.java.srcDirs classifier = 'sources' } artifacts.add('archives', sourcesJar) task extractAARHeaders { doLast { configurations.extractHeaders.files.each { def file = it.absoluteFile copy { from zipTree(file) into "$buildDir/$file.name" include "**/*.h" } } } } task extractJNIFiles { doLast { configurations.extractJNI.files.each { def file = it.absoluteFile copy { from zipTree(file) into "$buildDir/$file.name" include "jni/**/*" } } } } tasks.whenTaskAdded { task -> if (task.name.contains('externalNativeBuild')) { task.dependsOn(extractAARHeaders) task.dependsOn(extractJNIFiles) } }