/*
 * (c) Copyright 2018 Palantir Technologies Inc. All rights reserved.
 *
 * 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.
 */

buildscript {
    repositories {
        jcenter()
        gradlePluginPortal()
        maven { url  "http://palantir.bintray.com/releases" }
    }

    dependencies {
        classpath 'com.gradle.publish:plugin-publish-plugin:0.10.0'
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4'
        classpath 'com.netflix.nebula:nebula-publishing-plugin:9.5.0'
        classpath 'com.palantir.baseline:gradle-baseline-java:0.51.0'
        classpath 'gradle.plugin.com.palantir.gradle.gitversion:gradle-git-version:0.7.3'
        classpath 'gradle.plugin.org.inferred:gradle-processors:2.1.0'
    }
}


repositories {
    jcenter()
    gradlePluginPortal()
    maven { url  "http://palantir.bintray.com/releases" }
}

apply plugin: 'com.gradle.plugin-publish'
apply plugin: 'com.palantir.baseline'
apply plugin: 'com.palantir.git-version'
apply plugin: 'nebula.maven-publish'
apply plugin: 'nebula.source-jar'
apply plugin: 'org.inferred.processors'
apply plugin: 'java-gradle-plugin'
apply plugin: 'groovy'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply from: "${rootDir}/gradle/bintray-publish.gradle"

group 'com.palantir.graal'
version gitVersion()

dependencies {
    compile localGroovy()
    compile gradleApi()

    testCompile gradleTestKit()
    testCompile 'com.netflix.nebula:nebula-test'
    testCompile 'com.squareup.okhttp3:mockwebserver'

}

dependencyRecommendations {
    strategy OverrideTransitives
    propertiesFile file: project.rootProject.file('versions.props')
}

configurations.all {
    resolutionStrategy {
        failOnVersionConflict()
    }
}

gradlePlugin {
    // do not add new task to publish to plugins.gradle.org
    automatedPublishing = false

    plugins {
        graal {
            id = 'com.palantir.graal'
            implementationClass = 'com.palantir.gradle.graal.GradleGraalPlugin'
        }
    }
}

pluginBundle {
    website = 'https://github.com/palantir/gradle-graal'
    vcsUrl = 'https://github.com/palantir/gradle-graal'
    description = 'A plugin for Gradle that adds tasks to download, extract and interact with GraalVM tooling.'
    tags = ['graal', 'native-image']

    plugins {
        graal {
            id = 'com.palantir.graal'
            displayName = 'Palantir Graal Plugin'
        }
    }
}