/*
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you 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.
 */
import org.gradle.util.GradleVersion

pluginManagement {
    repositories {
        gradlePluginPortal()
        mavenCentral()
//        maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
    }

    includeBuild("build-logic")
}

// check https://gradle.com/enterprise/releases with new versions. GE plugin version should not lag behind Gradle version
plugins {
    // Before updating this, please check the compatibility from https://docs.gradle.com/enterprise/compatibility/#develocity_compatibility and https://ge.apache.org/scans.
    id "com.gradle.enterprise" version "3.16.2"
    id 'com.gradle.common-custom-user-data-gradle-plugin' version '1.12.2'
}

apply from: 'gradle/build-scans.gradle'

dependencyResolutionManagement {
    repositories {
        mavenCentral()
    }
}

enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")

def subprojects = [
        'groovy-all',
        'groovy-ant',
        'groovy-astbuilder',
        'groovy-binary',
        'groovy-bom',
        'groovy-cli-commons',
        'groovy-cli-picocli',
        'groovy-console',
        'groovy-contracts',
        'groovy-datetime',
        'groovy-dateutil',
        'groovy-docgenerator',
        'groovy-groovydoc',
        'groovy-groovysh',
        'groovy-jmx',
        'groovy-json',
        'groovy-jsr223',
        'groovy-ginq',
        'groovy-macro',
        'groovy-macro-library',
        'groovy-nio',
        'groovy-servlet',
        'groovy-sql',
        'groovy-swing',
        'groovy-templates',
        'groovy-test',
        'groovy-test-junit5',
        'groovy-testng',
        'groovy-toml',
        'groovy-typecheckers',
        'groovy-xml',
        'groovy-yaml',
        'performance',
        'tests-preview',
        'binary-compatibility',
        'stress'
]

include(subprojects as String[])

rootProject.children.each { prj ->
    prj.projectDir = new File("$rootDir/subprojects/$prj.name")
}

rootProject.name = 'groovy'

enableFeaturePreview('GROOVY_COMPILATION_AVOIDANCE')
