apply plugin: 'com.android.library' apply plugin: 'maven-publish' apply plugin: 'kotlin-android' def openCVersionName = "4.9.0" def openCVersionCode = ((4 * 100 + 9) * 100 + 0) * 10 + 0 println "OpenCV: " +openCVersionName + " " + project.buildscript.sourceFile android { namespace 'org.opencv' compileSdkVersion 33 defaultConfig { minSdkVersion 24 targetSdkVersion 33 versionCode openCVersionCode versionName openCVersionName externalNativeBuild { cmake { arguments "-DANDROID_STL=c++_shared" targets "opencv_jni_shared" } } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } buildTypes { debug { packagingOptions { doNotStrip '**/*.so' // controlled by OpenCV CMake scripts } } release { packagingOptions { doNotStrip '**/*.so' // controlled by OpenCV CMake scripts } minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } buildFeatures { aidl true prefabPublishing true buildConfig true } prefab { opencv_jni_shared { headers "native/jni/include" } } sourceSets { main { jniLibs.srcDirs = ['native/libs'] java.srcDirs = ['java/src'] aidl.srcDirs = ['java/src'] res.srcDirs = ['java/res'] manifest.srcFile 'java/AndroidManifest.xml' } } externalNativeBuild { cmake { path (project.projectDir.toString() + '/libcxx_helper/CMakeLists.txt') } } } publishing { publications { release(MavenPublication) { groupId = 'org.opencv' artifactId = 'opencv' version = '4.9.0' afterEvaluate { from components.release } } } repositories { maven { name = 'myrepo' url = "${project.buildDir}/repo" } } } dependencies { }