Summary: This adds the same logic that we have in place with Litho for Yoga, allowing unit tests to run with Gradle for Yoga. It'll still shell out to Buck to build the native library, but that's hopefully only until we have found a way to reuse the NDK build. For CI this shouldn't matter as we want to run `buck build` anyway and the build step should be a no-op. FB-Only: This should unlock D5020044. Reviewed By: emilsjolander Differential Revision: D5104154 fbshipit-source-id: 48732fff6c1d100a155452f675de343aaf06427b
63 lines
1.8 KiB
Groovy
63 lines
1.8 KiB
Groovy
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
|
|
|
buildscript {
|
|
repositories {
|
|
jcenter()
|
|
}
|
|
dependencies {
|
|
classpath 'com.android.tools.build:gradle:2.3.1'
|
|
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
|
|
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
|
|
classpath 'com.nabilhachicha:android-native-dependencies:0.1'
|
|
|
|
// NOTE: Do not place your application dependencies here; they belong
|
|
// in the individual module build.gradle files
|
|
}
|
|
}
|
|
|
|
allprojects {
|
|
repositories {
|
|
jcenter()
|
|
}
|
|
}
|
|
|
|
ext {
|
|
minSdkVersion = 15
|
|
targetSdkVersion = 25
|
|
compileSdkVersion = 25
|
|
buildToolsVersion = '25.0.2'
|
|
sourceCompatibilityVersion = JavaVersion.VERSION_1_7
|
|
targetCompatibilityVersion = JavaVersion.VERSION_1_7
|
|
}
|
|
|
|
// If you have an idea on how to avoid this, please get in touch or
|
|
// answer https://stackoverflow.com/questions/43867014/how-to-use-the-gradle-ndk-build-to-compile-for-the-host-machine.
|
|
task copyNativeLibs(type: Copy, dependsOn: ':buckBuildNative') {
|
|
from "${rootDir}/buck-out/gen/java/tests#default,shared-library-symlink-tree/"
|
|
include '*.so'
|
|
include '*.dylib'
|
|
into "$buildDir/jniLibs"
|
|
}
|
|
|
|
task buckBuildNative(type: Exec) {
|
|
workingDir rootDir
|
|
environment BUCKVERSION: 'last'
|
|
commandLine 'buck', 'build', '//java/...'
|
|
}
|
|
|
|
allprojects {
|
|
afterEvaluate {
|
|
tasks.withType(Test) {
|
|
dependsOn copyNativeLibs
|
|
def libDir = "${rootDir}/build/jniLibs"
|
|
systemProperty 'java.library.path', libDir
|
|
environment 'LD_LIBRARY_PATH', libDir
|
|
environment 'DYLD_LIBRARY_PATH', libDir
|
|
}
|
|
}
|
|
}
|
|
|
|
task clean(type: Delete) {
|
|
delete rootProject.buildDir
|
|
}
|