if(JavaVersion.current().ordinal() < JavaVersion.VERSION_16.ordinal()){
    throw new Exception("!!! YOU MUST USE JAVA 16 OR ABOVE TO COMPILE AND RUN MINDUSTRY !!! Read the README. Your version: ${System.properties["java.version"]}")
}

include 'desktop', 'core', 'server', 'ios', 'annotations', 'tools', 'tests'

def use = { ... names ->
    for(String name : names){
        include(name)
        project(name).projectDir = new File(settingsDir, "../${name.substring(1).replace(":", "/")}")
    }
}

def hasSdk = System.getenv("ANDROID_HOME") != null

if(new File(settingsDir, 'local.properties').exists()){
	def properties = new Properties()
	properties.load(new File(settingsDir, 'local.properties').newDataInputStream())
	if(properties.containsKey("sdk.dir")) hasSdk = true
}

if(System.getenv("JITPACK") == "true") hasSdk = false

if(hasSdk){
    //hack: pretend the Android module doesn't exist when imported through IntelliJ
    //why? because IntelliJ chokes on the new version of the Android plugin

    //UPDATE: it no longer chokes on AGP with the latest version, but instead gives a completely different error. brilliant.
    if(!System.getProperty("jna.tmpdir")?.contains("JetBrains")){
        include 'android'
    }
}else{
    println("No Android SDK found. Skipping Android module.")
}

if(!hasProperty("release")){
    if(new File(settingsDir, '../Arc').exists()){
        use(
        ':Arc',
        ':Arc:arc-core',
        ':Arc:extensions',
        ':Arc:extensions:freetype',
        ':Arc:extensions:recorder',
        ':Arc:extensions:arcnet',
        ':Arc:extensions:packer',
        ':Arc:extensions:g3d',
        ':Arc:extensions:fx',
        ':Arc:extensions:flabel',
        ':Arc:extensions:discord',
        ':Arc:extensions:profiling',
        ':Arc:natives',
        ':Arc:natives:natives-desktop',
        ':Arc:natives:natives-android',
        ':Arc:natives:natives-ios',
        ':Arc:natives:natives-freetype-desktop',
        ':Arc:natives:natives-freetype-android',
        ':Arc:natives:natives-freetype-ios',
        ':Arc:backends',
        ':Arc:backends:backend-sdl',
        ':Arc:backends:backend-android',
        ':Arc:backends:backend-robovm',
        ':Arc:backends:backend-headless'
        )
    }

    if(new File(settingsDir, '../Mindustry-Debug').exists()){
        include(":debug")
        project(":debug").projectDir = new File(settingsDir, "../Mindustry-Debug")
    }
}else{
    println("Not including local repositories.")
}