plugins {
	id 'com.android.application'
	id 'org.jetbrains.kotlin.android'
}

ext.vvl_version='1.4.321.0'
apply from: "./download_vvl.gradle"

android {
	ndkVersion '28.2.13676358'
	compileSdk 36

	defaultConfig {
		applicationId 'com.khronos.vulkan_samples'
	namespace "com.khronos.vulkan_samples"
		minSdk 28
		targetSdk 35
		versionCode 1
		versionName "1.0"

		externalNativeBuild {
			cmake {
				abiFilters.addAll( 'arm64-v8a')
				arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=c++_static', '-DVKB_VALIDATION_LAYERS=OFF'
				//arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=c++_static', '-DVKB_VALIDATION_LAYERS=OFF', "-DCMAKE_BUILD_TYPE=Release"
				//cppFlags "-DRELEASE_MODE"
			}
		}
	}

	buildTypes {
		debug {
			debuggable true
			jniDebuggable true
		}

		release {
			minifyEnabled false
			proguardFiles getDefaultProguardFile('proguard-android-optimize.txt')
			signingConfig debug.signingConfig
		}
		applicationVariants.all{variant ->
			variant.outputs.each{output->
                def tempName = output.outputFile.name
                tempName = tempName.replace("app-", "vulkan_samples-")
                output.outputFileName  = tempName
			}
        }
	}

	compileOptions {
		sourceCompatibility JavaVersion.VERSION_21
		targetCompatibility JavaVersion.VERSION_21
	}

	sourceSets {
		main {
			
			res.srcDirs += [ '../../app/android/res' ]
			java.srcDirs += [ '../../app/android/java' ]
			
			manifest.srcFile '../../app/android/AndroidManifest.xml'
		}
	}

	externalNativeBuild {
		cmake {
			version "3.22.1"
			path '../../CMakeLists.txt'
			buildStagingDirectory 'build-native'
		}
	}

	lint {
		abortOnError false
		checkReleaseBuilds false
	}
	
	buildFeatures {
		viewBinding true
		prefab true
	}
	kotlinOptions {
		jvmTarget = '21'
	}
}

dependencies {
	implementation 'androidx.appcompat:appcompat:1.7.0'
	implementation 'com.google.android.material:material:1.12.0'
	implementation 'androidx.constraintlayout:constraintlayout:2.2.0'
	implementation 'androidx.core:core:1.15.0'
	implementation 'androidx.games:games-activity:3.0.5'
	implementation 'androidx.core:core-ktx:1.17.0'
	// CameraX core library
	def camerax_version = '1.4.2'
	implementation "androidx.camera:camera-core:$camerax_version"
	implementation "androidx.camera:camera-camera2:$camerax_version"
	implementation "androidx.camera:camera-lifecycle:$camerax_version"
	implementation "androidx.camera:camera-view:$camerax_version"
	//noinspection Aligned16KB
	implementation 'com.google.mediapipe:tasks-vision:0.10.26'
}
