repositories {
    mavenCentral()
}

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'io.v:gradle-plugin:1.4'
    }
}

apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'io.v.vdl'

mainClassName = 'io.v.rpcbench.RpcBenchmark'

sourceCompatibility = 1.7
targetCompatibility = 1.7

dependencies {
    compile 'com.google.guava:guava:18'
    compile project(':lib')
    compile 'com.google.caliper:caliper:1.0-beta-2'
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.7'
}

clean {
    delete 'src/main/resources/libv23.so'
}

vdl {
    inputPaths += ['src/main/java']
}

def libProject = rootProject.findProject(':lib')

tasks.run.dependsOn libProject.tasks.copyVanadiumLib
tasks.run.jvmArgs "-Djava.library.path=${libProject.buildDir}/libs"
