Enable unit tests with Gradle
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
This commit is contained in:
committed by
Facebook Github Bot
parent
629e401deb
commit
e9e1e084da
27
build.gradle
27
build.gradle
@@ -30,6 +30,33 @@ ext {
|
||||
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
|
||||
}
|
||||
|
@@ -41,7 +41,10 @@ android {
|
||||
java.srcDir 'com'
|
||||
manifest.srcFile 'AndroidManifest.xml'
|
||||
res.srcDirs = ['res']
|
||||
jniLibs.srcDirs = ['build/buck-out/jniLibs']
|
||||
}
|
||||
|
||||
test {
|
||||
java.srcDirs 'tests'
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -50,6 +53,7 @@ dependencies {
|
||||
compile 'com.google.code.findbugs:jsr305:3.0.1'
|
||||
compile 'com.facebook.soloader:soloader:0.2.0'
|
||||
provided project(':yoga:proguard-annotations')
|
||||
testCompile 'junit:junit:4.12'
|
||||
}
|
||||
|
||||
task sourcesJar(type: Jar) {
|
||||
|
Reference in New Issue
Block a user