apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'

configurations {
  eclipseCompile
}

dependencies {
  compile project(':vtm')
  provided files("${rootDir}/vtm-ext-libs/native-libs.jar")

  compile 'com.android.support:support-v4:21.+'
  eclipseCompile project(':appcompat')
}

android {
  compileSdkVersion androidTargetSdk()
  buildToolsVersion = "$androidBuildVersionTools"

  sourceSets {
    main {
      manifest.srcFile 'AndroidManifest.xml'
      java.srcDirs = ['src']
      resources.srcDirs = ['src']
      res.srcDirs = ['res']
      assets.srcDirs = ['assets']
    }
    debug.setRoot('build-types/debug')
    release.setRoot('build-types/release')
  }

  lintOptions.abortOnError false
}

task sourcesJar(type: Jar) {
    classifier = 'sources'
   from android.sourceSets.main.java.srcDirs
}
artifacts {
   archives sourcesJar
}

eclipse {
  classpath {
    plusConfigurations += [ configurations.compile, configurations.eclipseCompile ]

    //noExportConfigurations += [ configurations.provided ]

    //customizing the classes output directory:
    defaultOutputDir = file('bin/classes')

    containers = ['com.android.ide.eclipse.adt.ANDROID_FRAMEWORK',
		  'com.android.ide.eclipse.adt.LIBRARIES',
		  'com.android.ide.eclipse.adt.DEPENDENCIES']

    file {
      // Manipulation of the classpath XML before merging local
      // and generated copies
      beforeMerged { classpath ->
	// Remove all source entries to avoid overlap
	classpath.entries.removeAll() { e ->
	  e.kind == 'src'
	}
      }

      // only used to explode jni .so into aar
      whenMerged {
	classpath ->
	  classpath.entries.findAll { e ->
	    e.path.contains('native-libs') ||
	    e.path.contains('ANDROID_FRAMEWORK')
	  }*.exported = false
	  classpath.entries.removeAll() { e ->
	    e.path.contains('support')
	}
      }

      // Direct manipulation of the generated classpath XML
      withXml {
	// Since non-default source directories are used
	// they need to be manually added to the classpath XML
	def node = it.asNode()
	// Main source directory and generated code directory
	node.appendNode('classpathentry kind="src" path="src"')
	node.appendNode('classpathentry kind="src" path="gen"')
      }
    }
  }
  project {
    natures = ['com.android.ide.eclipse.adt.AndroidNature',
	       'org.eclipse.jdt.core.javanature']
    buildCommand 'com.android.ide.eclipse.adt.ResourceManagerBuilder'
    buildCommand 'com.android.ide.eclipse.adt.PreCompilerBuilder'
    buildCommand 'com.android.ide.eclipse.adt.ApkBuilder'

    // use extracted jni .so in eclipse
    linkedResource name: 'libs', type: '2',
	   locationUri: 'PARENT-1-PROJECT_LOC/vtm-ext-libs/vtm-android'
  }
}

android.libraryVariants.all { variant ->
    def name = variant.buildType.name
    if (name.equals("debug")) {
        print "Skipping debug jar"
        return; // Skip debug builds.
    }
    def task = project.tasks.create "jar${name.capitalize()}", Jar
    task.dependsOn variant.javaCompile
    task.from variant.javaCompile.destinationDir
    artifacts.add('archives', task);
}