/*
 * Copyright (C) 2011 Google Inc.
 *
 * 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.
 */

task wrapper(type: Wrapper) {
    gradleVersion = "4.10.2"
}

buildscript {
    apply from: project.file("buildscript.gradle")
}

apply plugin: "catkin"

allprojects {
    group "org.ros.android_core"
    version = project.catkin.pkg.version
}

configure(subprojects.findAll { it.name.startsWith("android_") }) {
    /*
     * The android plugin configures a few things:
     *
     *  - local deployment repository : where it dumps the jars and packaged artifacts)
     *  - local maven repositories    : where it finds your locally installed/built artifacts)
     *  - external maven repositories : where it goes looking if it can't find dependencies locally
     *  - android build tools version : which version we use across the board
     * 
     * To modify, or add repos to the default external maven repositories list, pull request against this code:
     *
     *   https://github.com/rosjava/rosjava_bootstrap/blob/kinetic/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/RosPlugin.groovy#L31
     * 
     * To modify the build tools version, pull request against this code:
     * 
     *   https://github.com/rosjava/rosjava_bootstrap/blob/kinetic/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/RosAndroid.groovy#L14
     */
    apply plugin: "ros-android"
    afterEvaluate { project ->
        // Change the layout of Android projects to be compatible with Eclipse.
        android {
            sourceSets {
                //noinspection GroovyAssignabilityCheck
                main {
                    manifest.srcFile "AndroidManifest.xml"
                    res.srcDirs "res"
                    assets.srcDirs "assets"
                    java.srcDirs "src"
                }
            }

            // Copy JAR dependencies into the libs directory for Eclipse.
            task deployLibs(type: Copy) {
                from { configurations.compile }
                into { "${project.projectDir}/libs" }
            }

            // Exclude a few files that are duplicated across our dependencies and
            // prevent packaging Android applications.
            packagingOptions {
                /* https://github.com/rosjava/android_core/issues/194 */
                exclude "META-INF/LICENSE.txt"
                exclude "META-INF/NOTICE.txt"
            }

            lintOptions {
                abortOnError false
            }
        }
    }
}

defaultTasks 'assembleRelease', 'uploadArchives'
