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

android {
    compileSdkVersion 15
    buildToolsVersion "18.0.1"

    sourceSets {
        main {
            manifest {
                // there's only ever one file so srcFile replaces it.
                srcFile 'AndroidManifest.xml'
            }
            java {
                // writing:
                //    srcDir 'src'
                // would *add* to the default folder so we use a different syntax
                srcDirs = ['src']
                exclude 'some/unwanted/package/**'
            }
            res {
                srcDirs = ['res']
            }
            assets {
                srcDirs = ['assets']
            }
            resources {
                srcDirs = ['src']
            }
            aidl {
                srcDirs = ['src']
            }
            renderscript {
                srcDirs = ['src']
            }
        }

        // this moves src/instrumentTest to tests so all folders follow:
        // tests/java, tests/res, tests/assets, ...
        // This is a *reset* so it replaces the default paths
        instrumentTest.setRoot('tests')

        // Could also be done with:
        //main.manifest.srcFile 'AndroidManifest.xml'
        //main.java.srcDir 'src'
        //main.res.srcDir 'res'
        //main.assets.srcDir 'assets'
        //main.resources.srcDir 'src'
        //instrumentTest.java.srcDir 'tests/src'
    }
}