{# Copyright 2016 The Chromium Authors. All rights reserved. #}
{# Use of this source code is governed by a BSD-style license that can be #}
{# found in the LICENSE file. #}
// Generated by //build/android/generate_gradle.py

apply plugin: "java"
{% if template_type == 'java_binary' %}
apply plugin: "application"
{% endif %}

sourceSets {
    main {
        java.srcDirs = [
{% for path in main.java_dirs %}
            "{{ path }}",
{% endfor %}
        ]
{% if main.java_excludes is defined %}
        java.filter.exclude([
{% for path in main.java_excludes %}
            "{{ path }}",
{% endfor %}
        ])
{% endif %}
    }
}

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

{% if template_type == 'java_binary' %}
applicationName = "{{ target_name }}"
{% if main_class %}
mainClassName = "{{ main_class }}"
{% endif %}
{% endif %}
{% if template_type in ('java_binary', 'java_library') %}
archivesBaseName = "{{ target_name }}"
{% endif %}

{% include 'dependencies.jinja' %}
