/*
 *
 * FlexUI is pleased to support the open source community by making
 * FlexUI available.
 *
 * Copyright (C) FlexUI Team.
 * 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.
 *
 */

import java.nio.file.Paths

include 'flexui-support'
project(':flexui-support').projectDir = new File('../android-modules/flexui_support')

include 'flexui-framework'
project(':flexui-framework').projectDir = new File('framework/android')

include 'serialization'
project(':serialization').projectDir = new File('../android-modules/serialization')

include 'vfs'
project(':vfs').projectDir = new File('modules/vfs/android')

include 'pool'
project(':pool').projectDir = new File('../android-modules/pool')

include 'as_apis'
project(':as_apis').projectDir = new File('../android-modules/as_apis')

include 'agent-runtime'
project(':agent-runtime').projectDir = new File('../android-modules/agent-runtime')

include 'example'
project(':example').projectDir = new File('../demos/android-demo')

include 'devtools-integration'
project(':devtools-integration').projectDir = new File('devtools/devtools-integration/android')

new LinkedHashSet(
        "${REQUIRED_MODULES}, ${OPTIONAL_MODULES}"
                .split("\\s*,\\s*").stream().filter({ !it.isEmpty() }).toList()
).each {
    def module = Paths.get(it.trim())
    def name = ['connector']
    def projectPath = module
    if (module.isAbsolute()) {
        name.push(module.getFileName())
    } else {
        projectPath = Paths.get('framework', 'android', 'connector', module.toString())
        for (def i = 0; i < module.getNameCount(); i++) {
            name.push(module.getName(i));
        }
    }

    def projectName = name.reverse().join('-')
    include projectName
    project(":${projectName}").projectDir = new File(projectPath.toString())

    def settingsGradle = Paths.get(projectPath.toString(), '/settings.gradle')
    if (file(settingsGradle).exists()) {
        apply from: settingsGradle.toString()
    }
}