apply plugin: 'com.android.application'

group = 'com.artifex.mupdf'
version = '1.12.0'

dependencies {
	compile 'com.android.support:appcompat-v7:25.+'
	if (file('../lib/build.gradle').isFile())
		compile project(':lib')
	else
		compile 'com.artifex.mupdf:viewer:1.12.0'
}

android {
	compileSdkVersion 25
	buildToolsVersion '25.0.3'
	defaultConfig {
		minSdkVersion 16
		targetSdkVersion 25
		versionName '1.12.0'
		versionCode 20
	}

	splits {
		abi {
			enable true
			universalApk true
		}
	}

	// Increment version code for each ABI variant
	def abiOffsets = [ 'armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5, 'mips':6, 'mips64':7, ]
	applicationVariants.all { variant ->
		variant.outputs.each { output ->
			def offset = abiOffsets.get(output.getFilter(com.android.build.OutputFile.ABI))
			if (offset != null)
				output.versionCodeOverride = variant.versionCode + offset
		}
	}

	if (project.hasProperty('release_storeFile')) {
		signingConfigs {
			release {
				storeFile file(release_storeFile)
				storePassword release_storePassword
				keyAlias release_keyAlias
				keyPassword release_keyPassword
			}
		}
		buildTypes {
			release {
				signingConfig signingConfigs.release
			}
		}
	}
}
