Summary: Pull Request resolved: https://github.com/facebook/flipper/pull/538 Upgrades libevent to the August release 2.1.11. Some notable things: - The CMake file they ship with is actually broken. It contains a reference to an "uninstall.cmake" script that they don't include in the archive. - There is some git magic in the CMake script which throws very annoying warnings if you're not in a git repository and if you are, it's still super useless because it assumes it's the libevent repo. - I've removed the uninstall reference and replaced version detection magic with hardcoded values. The result is the "CMakeLists.txt" in the overrides folder. For future upgraders: You'll have to either remove the override or apply similar steps to the next release. - The `event-config.h` is simply one of the outputs I found under `android/build/libevent/x86/include/event2/event-config.h`. They seem to be stable across architectures so it's easier to just copy it over than to fix the CMake logic that should actually pick it up from the Android build path. - The cmake target names have changed and have an underscore in them, now. - Verified with an SDK 28 x86_64 that this does fix https://github.com/facebook/flipper/issues/482. Fixes GH482. Reviewed By: jknoxville Differential Revision: D17164731 fbshipit-source-id: 642744118065bea2674dbb0e1af91a11598066cc
130 lines
3.4 KiB
Groovy
130 lines
3.4 KiB
Groovy
/*
|
|
* 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)
|
|
}
|
|
}
|