buildscript {
    repositories {
        maven { url '../../../../out/host/gradle/repo' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.0-SNAPSHOT'
    }
}
apply plugin: 'android'

repositories {
  mavenCentral()
}

dependencies {
    compile 'com.android.support:support-v4:13.0.0'
    debugCompile 'com.android.support:support-v13:13.0.0'

    compile 'com.google.android.gms:play-services:3.1.36'
}

android {
    compileSdkVersion 15
    buildToolsVersion "18.0.1"

    testBuildType "debug"

    signingConfigs {
        myConfig {
            storeFile file("debug.keystore")
            storePassword "android"
            keyAlias "androiddebugkey"
            keyPassword "android"
        }
    }

    defaultConfig {
        versionCode 12
        versionName "2.0"
        minSdkVersion 16
        targetSdkVersion 16

        testInstrumentationRunner "android.test.InstrumentationTestRunner"
        testHandleProfiling false

        buildConfigField "boolean", "DEFAULT", "true"
        buildConfigField "String", "FOO", "\"foo\""

        resConfig "en"
        resConfigs "nodpi", "hdpi"
    }

    buildTypes {
        debug {
            packageNameSuffix ".debug"
            signingConfig signingConfigs.myConfig

            buildConfigField "String", "FOO", "\"bar\""
        }
    }

    aaptOptions {
        noCompress 'txt'
        ignoreAssetsPattern "!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"
    }
}