apply plugin: 'java'

configurations {
    // similar to 'default', export compile-time dependencies
    host.extendsFrom(hostCompile)
    target.extendsFrom(targetCompile)
}

sourceSets {
    host {
        java {
            srcDirs = ['src', 'cglib-and-asm/src']
        }
    }

    target {
        java {
            srcDirs = ['src']
            exclude 'org/mockito/internal/creation/cglib/**',
                    'org/mockito/internal/creation/jmock/**',
                    'org/mockito/internal/creation/AbstractMockitoMethodProxy.java',
                    'org/mockito/internal/creation/AcrossJVMSerializationFeature.java',
                    'org/mockito/internal/creation/CglibMockMaker.java',
                    'org/mockito/internal/creation/DelegatingMockitoMethodProxy.java',
                    'org/mockito/internal/creation/MethodInterceptorFilter.java',
                    'org/mockito/internal/creation/MockitoMethodProxy.java',
                    'org/mockito/internal/creation/SerializableMockitoMethodProxy.java',
                    'org/mockito/internal/invocation/realmethod/FilteredCGLIBProxyRealMethod.java',
                    'org/mockito/internal/invocation/realmethod/CGLIBProxyRealMethod.java',
                    'org/mockito/internal/invocation/realmethod/HasCGLIBMethodProxy.java'
        }
    }
}

dependencies {
    targetCompile project(':hamcrest')
    targetCompile project(':objenesis')
    targetCompile project(path: ':junit', configuration: 'target')

    hostCompile project(':hamcrest')
    hostCompile project(':objenesis')
    hostCompile project(path: ':junit', configuration: 'host')
    hostCompile 'org.apache.ant:ant:1.8.0'
}

task targetJar(type: Jar) {
    from sourceSets.target.output
    dependsOn targetClasses
    baseName "mockito"
    classifier "target"
}

task hostJar(type: Jar) {
    from sourceSets.host.output
    dependsOn hostClasses
    baseName "mockito"
    classifier "host"
}

artifacts {
    host hostJar
    target targetJar
}
