/*
 * MIT License
 *
 * Copyright (c) 2020-present Cloudogu GmbH and Contributors
 *
 * 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.
 */

rootProject.name = 'scm'

// enfore rules
// http://kordamp.org/enforcer-gradle-plugin/#_applying_the_plugin

buildscript {
  repositories {
    mavenCentral()
    gradlePluginPortal()
  }
  dependencies {
    classpath 'org.kordamp.gradle:enforcer-gradle-plugin:0.10.0'
  }
}
apply plugin: 'org.kordamp.gradle.enforcer'

// https://kordamp.org/enforcer-gradle-plugin/

enforce {
  rule(enforcer.rules.RequireGradleVersion) { r ->
    r.version = '6.7'
  }
  rule(enforcer.rules.RequireJavaVersion) { r ->
    r.version = '11'
  }
  rule(enforcer.rules.EnforceBytecodeVersion) { r ->
    r.maxJdkVersion = '11'
  }
}

includeBuild 'build-plugins'
include 'scm-annotations'
include 'scm-annotation-processor'
include 'scm-core'
include 'scm-test'
include 'scm-ui'
include 'scm-plugins:scm-git-plugin'
include 'scm-plugins:scm-hg-plugin'
include 'scm-plugins:scm-svn-plugin'
include 'scm-plugins:scm-legacy-plugin'
include 'scm-plugins:scm-integration-test-plugin'
include 'scm-dao-xml'
include 'scm-webapp'
include 'scm-server'
include 'scm-it'

// Do not add scm-packaging modules to every build,
// These modules drastically increase the time Gradle spends in the configuration phase.
// To build a distribution of SCM-Manager you have to pass -PenablePackaging
if (settings.hasProperty("enablePackaging")) {
  include 'scm-packaging:unix'
  include 'scm-packaging:windows'
  include 'scm-packaging:deb'
  include 'scm-packaging:rpm'
  include 'scm-packaging:docker'
  include 'scm-packaging:helm'
  include 'scm-packaging:release-yaml'
}

