diff --git a/build.gradle b/build.gradle index bc4f8ad5..424f590d 100644 --- a/build.gradle +++ b/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 } diff --git a/java/build.gradle b/java/build.gradle index 998f57c8..2222e8c3 100644 --- a/java/build.gradle +++ b/java/build.gradle @@ -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) {