mirror of
https://github.com/opencv/opencv.git
synced 2024-12-13 07:59:27 +08:00
6c57ce9e09
Updated Android samples for modern Android studio. Added OpenCV from Maven support. #24473 Updated samples for recent Android studio: - added namespace field that is required in build.gradle files - replaced _switch_ by _if-else_ because it doesn't work with constants from resources - added missed log library dependency in face-detection/jni/CMakeLists.txt - use local.properties to define NDK location Added support for OpenCV from Maven. Now you can choose 3 possible sources of OpenCV lib in settings.gradle: SDK path, local Maven repository, public Maven repository. (Creating Maven repository from SDK is added here #24456 ) There are differences in project configs for SDK and Maven versions: - different dependencies in build.gradle - different OpenCV library names in CMakeLists.txt - SDK version requires OpenCV_DIR definition Requires: - https://github.com/opencv/ci-gha-workflow/pull/124 - https://github.com/opencv-infrastructure/opencv-gha-dockerfile/pull/26
110 lines
3.5 KiB
Groovy
110 lines
3.5 KiB
Groovy
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
|
|
|
buildscript {
|
|
|
|
repositories {
|
|
google()
|
|
jcenter()
|
|
}
|
|
dependencies {
|
|
classpath 'com.android.tools.build:gradle:@ANDROID_GRADLE_PLUGIN_VERSION@'
|
|
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:@KOTLIN_PLUGIN_VERSION@'
|
|
|
|
// NOTE: Do not place your application dependencies here; they belong
|
|
// in the individual module build.gradle files
|
|
}
|
|
}
|
|
|
|
allprojects {
|
|
repositories {
|
|
google()
|
|
jcenter()
|
|
if (gradle.opencv_source == "maven_local") {
|
|
maven {
|
|
url gradle.opencv_maven_path
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
task clean(type: Delete) {
|
|
delete rootProject.buildDir
|
|
}
|
|
|
|
//allprojects {
|
|
// gradle.projectsEvaluated {
|
|
// tasks.withType(JavaCompile) {
|
|
// options.compilerArgs << "-Xlint:unchecked"
|
|
// options.compilerArgs << "-Xlint:deprecation"
|
|
// }
|
|
// }
|
|
//}
|
|
|
|
def opencv_strict_build_configuration = @ANDROID_STRICT_BUILD_CONFIGURATION@;
|
|
|
|
gradle.afterProject { project ->
|
|
if (project.pluginManager.hasPlugin('com.android.application')
|
|
|| project.pluginManager.hasPlugin('com.android.library')
|
|
|| project.pluginManager.hasPlugin('com.android.test')
|
|
|| project.pluginManager.hasPlugin('com.android.feature') ) {
|
|
if (true) {
|
|
gradle.println("Override build ABIs for the project ${project.name}")
|
|
project.android {
|
|
splits {
|
|
abi {
|
|
enable true
|
|
universalApk false
|
|
@ANDROID_ABI_FILTER@
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (true) {
|
|
gradle.println("Override lintOptions for the project ${project.name}")
|
|
project.android {
|
|
lintOptions {
|
|
// checkReleaseBuilds false
|
|
abortOnError false
|
|
}
|
|
}
|
|
}
|
|
|
|
// (you still need to re-build OpenCV with debug information to debug it)
|
|
if (true) {
|
|
gradle.println("Override doNotStrip-debug for the project ${project.name}")
|
|
project.android {
|
|
buildTypes {
|
|
debug {
|
|
packagingOptions {
|
|
doNotStrip '**/*.so' // controlled by OpenCV CMake scripts
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (false || project.hasProperty("doNotStrip")) {
|
|
gradle.println("Override doNotStrip-release for the project ${project.name}")
|
|
project.android {
|
|
buildTypes {
|
|
release {
|
|
packagingOptions {
|
|
doNotStrip '**/*.so' // controlled by OpenCV CMake scripts
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Android Gradle Plugin (AGP) 3.5+ is required
|
|
// https://github.com/android/ndk-samples/wiki/Configure-NDK-Path
|
|
def isNdkVersionSupported = project.android.metaClass.getProperties().find { it.name == 'ndkVersion' } != null
|
|
if ((false || opencv_strict_build_configuration) && isNdkVersionSupported) {
|
|
gradle.println("Override ndkVersion for the project ${project.name}")
|
|
project.android {
|
|
ndkVersion '@ANDROID_NDK_REVISION@'
|
|
}
|
|
}
|
|
}
|
|
}
|