/*
 * Copyright 2016 The Go Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style
 * license that can be found in the LICENSE file.
 */

buildscript {
	repositories {
		jcenter()
		maven {
			url "https://plugins.gradle.org/m2/"
		}
	}
	dependencies {
		classpath 'com.android.tools.build:gradle:2.2+'
		classpath "gradle.plugin.org.golang.mobile.bind:gobindPlugin:0.2.8"
	}
}

apply plugin: 'com.android.application'

repositories {
	jcenter()
}

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.3"

    defaultConfig {
        applicationId "org.golang.example.reverse"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
        }
    }
	dataBinding {
		enabled = true
	}
}

dependencies {
    compile 'com.android.support:appcompat-v7:24+'
}

apply plugin: "org.golang.mobile.bind"

gobind {
    pkg = "golang.org/x/mobile/example/reverse/reverse"
}
