/*
 * Copyright 2021 DataCanvas
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

plugins {
    id 'java-conventions'
    id 'java-library'
}


dependencies {
    api project(':dingo-store-api')
    api project(':dingo-codec-api')

    implementation project(':dingo-meta-api')

    annotationProcessor group: 'com.google.auto.service', name: 'auto-service', version: 'auto-service'.v()
    compileOnly group: 'com.google.auto.service', name: 'auto-service', version: 'auto-service'.v()

    implementation project(':dingo-common')
    implementation group: 'org.rocksdb', name: 'rocksdbjni', version: 'rocksdb'.v()

}

task fatJar(type: Jar) {
    classifier 'all'
    from(
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) },
    )
    with jar

    exclude "META-INF/*.SF"
    exclude "META-INF/*.DSA"
    exclude "META-INF/*.RSA"
}

tasks.withType(Jar).configureEach {
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}

fatJar.dependsOn([
    ':dingo-common:jar',
    ':dingo-net-api:jar',
    ':dingo-serial:jar',
    ':dingo-codec-api:jar',
    ':dingo-meta-api:jar',
    ':dingo-store-api:jar'
])

tasks.named("build") { x ->
    x.finalizedBy("fatJar")
}
