plugins {
	id 'com.android.library'
}

// https://stackoverflow.com/a/29164335, https://stackoverflow.com/a/52286740, https://stackoverflow.com/a/71848953, https://stackoverflow.com/a/63547141
android.libraryVariants.all { variant ->
	project.tasks.create("generate${variant.name.capitalize()}Javadoc", Javadoc) {
		description "Generates Javadoc for $variant.name."
		source = variant.sourceSets.collect { it.java.sourceFiles }.inject { m, i -> m + i }
		doFirst {
			classpath = project.files(variant.javaCompileProvider.get().classpath.files,
					project.android.getBootClasspath())
		}
		exclude "**/R"
		exclude "**/R.**"
		exclude "**/R\$**"
		exclude "**/BuildConfig*"
		ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
		options.links("https://d.android.com/reference/")
		options.linksOffline('https://d.android.com/reference/', 'https://d.android.com/reference/androidx/')
	}
}

android {
	namespace 'com.libremobileos.yifan.face.shared'
	compileSdk 33

	defaultConfig {
		minSdk 26
		targetSdk 33

		consumerProguardFiles "consumer-rules.pro"
	}

	buildTypes {
		release {
			minifyEnabled false
			proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
		}
	}
	compileOptions {
		sourceCompatibility JavaVersion.VERSION_11
		targetCompatibility JavaVersion.VERSION_11
	}

	flavorDimensions "gpu"
	productFlavors {
		withGpu {
			dependencies {
				implementation('org.tensorflow:tensorflow-lite-gpu:2.11.0')
			}
		}
		withoutGpu {}
	}

}

dependencies {
	implementation('androidx.annotation:annotation:1.6.0')
	implementation('org.tensorflow:tensorflow-lite:2.11.0')
}