/*
 * Copyright (c) 2006-2017 DMDirc Developers
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
 * documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
 * Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
 * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

plugins {
  id 'com.dmdirc.git-version' version '1.0'
  id 'com.github.kt3k.coveralls' version '2.6.3'
  id 'maven-publish'
  id 'java'
  id 'findbugs'
  id 'idea'
}

group = 'com.dmdirc'

idea {
    module {
         sourceDirs += file('src/main/generated')
         testSourceDirs += file('src/test/generated_tests')
         generatedSourceDirs = [file('src/main/generated'), file('src/test/generated_tests')]
    }
}

configurations {
    bundle

    compile {
        extendsFrom bundle
    }
}

configurations.all {
    resolutionStrategy.cacheDynamicVersionsFor 2, 'minutes'
    resolutionStrategy.cacheChangingModulesFor 2, 'minutes'
}

dependencies {
    compile group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1'
    compile group: 'com.squareup.dagger', name: 'dagger-compiler', version: '1.2.5'
    compile group: 'com.google.auto.value', name: 'auto-value', version: '1.3'
    compile group: 'org.osgi', name: 'org.osgi.core', version: '6.0.0'

    bundle group: 'ch.qos.logback', name: 'logback-classic', version: '1.1.7'
    bundle group: 'org.slf4j', name: 'slf4j-api', version:'1.7.21'
    bundle group: 'com.squareup.dagger', name: 'dagger', version: '1.2.5'
    bundle group: 'com.esotericsoftware.yamlbeans', name: 'yamlbeans', version: '1.09'
    bundle group: 'com.getsentry.raven', name: 'raven', version: '7.8.0'
    bundle group: 'com.google.guava', name:'guava', version: '19.0'
    bundle group: 'net.engio', name: 'mbassador', version: '1.3.0'
    bundle group: 'com.google.code.gson', name: 'gson', 'version': '2.5'

    bundle group: 'com.dmdirc', name: 'com.dmdirc.config.binding', version: '+', changing: true
    bundle group: 'com.dmdirc', name: 'com.dmdirc.config.provider', version: '+', changing: true
    bundle group: 'com.dmdirc', name: 'com.dmdirc.events.eventbus', version: '+', changing: true
    bundle group: 'com.dmdirc', name: 'com.dmdirc.util.io.yaml', version: '+', changing: true
    bundle group: 'com.dmdirc', name: 'com.dmdirc.util.system', version: '+', changing: true

    bundle group: 'com.dmdirc', name: 'api', version: '+', changing: true
    bundle group: 'com.dmdirc', name: 'util', version: '+', changing: true
    bundle group: 'com.dmdirc', name: 'parser-common', version: '+', changing: true

    testCompile group: 'junit', name: 'junit', version: '4.12'
    testCompile group: 'org.mockito', name: 'mockito-core', version: '2.2.7'
    testCompile group: 'com.google.jimfs', name: 'jimfs', version: '1.1'
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
    mavenCentral()
    maven { url 'https://artifactory.dmdirc.com/artifactory/repo' }
    maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
    maven { url 'http://dl.bintray.com/typesafe/maven-releases' }
}

apply from: 'gradle/analysis.gradle'
apply from: 'gradle/codacy.gradle'
apply from: 'gradle/publishing.gradle'
apply from: 'gradle/jar.gradle'
apply from: 'gradle/fatjar.gradle'

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