/*
 * 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.
 */

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        google()
        jcenter()
        maven { url 'https://maven.google.com/' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
  repositories {
    google()
    jcenter()
  }
}

ext {
    minSdkVersion = 14
    targetSdkVersion = 25
    compileSdkVersion = 26
    buildToolsVersion = '28.0.3'
    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
}
