From 7f4b1106f8aed2336cb3be649239afadd4b5fc92 Mon Sep 17 00:00:00 2001 From: Alexander Lyulkov Date: Fri, 28 Jul 2023 14:05:00 +0800 Subject: [PATCH 01/14] updated android samples for gradle 8.0, added opencv from maven support for android samples --- cmake/android/android_gradle_projects.cmake | 25 +++++++++++++++---- samples/android/15-puzzle/build.gradle.in | 7 +++++- samples/android/build.gradle.in | 5 ++++ .../camera-calibration/build.gradle.in | 7 +++++- .../CameraCalibrationActivity.java | 11 ++++---- .../color-blob-detection/build.gradle.in | 7 +++++- .../android/face-detection/build.gradle.in | 20 +++++++++++++-- .../android/face-detection/jni/CMakeLists.txt | 10 ++++++-- .../image-manipulations/build.gradle.in | 7 +++++- .../mobilenet-objdetect/build.gradle.in | 7 +++++- .../tutorial-1-camerapreview/build.gradle.in | 7 +++++- .../build.gradle.in | 20 +++++++++++++-- .../jni/CMakeLists.txt | 7 +++++- .../tutorial-3-cameracontrol/build.gradle.in | 7 +++++- .../android/tutorial-4-opencl/build.gradle.in | 20 +++++++++++++-- .../tutorial-4-opencl/jni/CMakeLists.txt | 2 +- 16 files changed, 141 insertions(+), 28 deletions(-) diff --git a/cmake/android/android_gradle_projects.cmake b/cmake/android/android_gradle_projects.cmake index 0a8b9f4b606c..122987e89f1b 100644 --- a/cmake/android/android_gradle_projects.cmake +++ b/cmake/android/android_gradle_projects.cmake @@ -1,3 +1,5 @@ +set (OPENCV_VERSION "4.8.0") + # https://developer.android.com/studio/releases/gradle-plugin set(ANDROID_GRADLE_PLUGIN_VERSION "3.2.1" CACHE STRING "Android Gradle Plugin version") message(STATUS "Android Gradle Plugin version: ${ANDROID_GRADLE_PLUGIN_VERSION}") @@ -119,11 +121,24 @@ include ':opencv' file(WRITE "${ANDROID_TMP_INSTALL_BASE_DIR}/settings.gradle" " rootProject.name = 'opencv_samples' -def opencvsdk='../' -//def opencvsdk='/' -//println opencvsdk -include ':opencv' -project(':opencv').projectDir = new File(opencvsdk + '/sdk') +gradle.ext { + //opencv_source = "maven_central" + //opencv_source = "maven_local" + opencv_source = "sdk_path" +} + +if (gradle.opencv_source == "maven_local") { + gradle.ext { + opencv_maven_path = '../maven_repo' + } +} + +if (gradle.opencv_source == "sdk_path") { + def opencvsdk = "../" + //def opencvsdk='/' + include ':opencv' + project(':opencv').projectDir = new File(opencvsdk + '/sdk') +} ") ocv_check_environment_variables(OPENCV_GRADLE_VERBOSE_OPTIONS) diff --git a/samples/android/15-puzzle/build.gradle.in b/samples/android/15-puzzle/build.gradle.in index ad5c9f93f9ef..e1c5de95bca6 100644 --- a/samples/android/15-puzzle/build.gradle.in +++ b/samples/android/15-puzzle/build.gradle.in @@ -1,6 +1,7 @@ apply plugin: 'com.android.application' android { + namespace 'org.opencv.samples.puzzle15' compileSdkVersion @ANDROID_COMPILE_SDK_VERSION@ defaultConfig { applicationId "org.opencv.samples.puzzle15" @@ -27,5 +28,9 @@ android { dependencies { //implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation project(':opencv') + if (gradle.opencv_source == "sdk_path") { + implementation project(':opencv') + } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { + implementation 'org.opencv:opencv:@OPENCV_VERSION@' + } } diff --git a/samples/android/build.gradle.in b/samples/android/build.gradle.in index f36fe216f5a9..d1598991321f 100644 --- a/samples/android/build.gradle.in +++ b/samples/android/build.gradle.in @@ -19,6 +19,11 @@ allprojects { repositories { google() jcenter() + if (gradle.opencv_source == "maven_local") { + maven { + url gradle.opencv_maven_path + } + } } } diff --git a/samples/android/camera-calibration/build.gradle.in b/samples/android/camera-calibration/build.gradle.in index d62b15186789..d59253066317 100644 --- a/samples/android/camera-calibration/build.gradle.in +++ b/samples/android/camera-calibration/build.gradle.in @@ -1,6 +1,7 @@ apply plugin: 'com.android.application' android { + namespace 'org.opencv.samples.cameracalibration' compileSdkVersion @ANDROID_COMPILE_SDK_VERSION@ defaultConfig { applicationId "org.opencv.samples.cameracalibration" @@ -27,5 +28,9 @@ android { dependencies { //implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation project(':opencv') + if (gradle.opencv_source == "sdk_path") { + implementation project(':opencv') + } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { + implementation 'org.opencv:opencv:@OPENCV_VERSION@' + } } diff --git a/samples/android/camera-calibration/src/org/opencv/samples/cameracalibration/CameraCalibrationActivity.java b/samples/android/camera-calibration/src/org/opencv/samples/cameracalibration/CameraCalibrationActivity.java index 30a6ad9c1d48..43132ab93b9f 100644 --- a/samples/android/camera-calibration/src/org/opencv/samples/cameracalibration/CameraCalibrationActivity.java +++ b/samples/android/camera-calibration/src/org/opencv/samples/cameracalibration/CameraCalibrationActivity.java @@ -136,23 +136,22 @@ public boolean onPrepareOptionsMenu (Menu menu) { @Override public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.calibration: + if (item.getItemId() == R.id.calibration) { mOnCameraFrameRender = new OnCameraFrameRender(new CalibrationFrameRender(mCalibrator)); item.setChecked(true); return true; - case R.id.undistortion: + } else if (item.getItemId() == R.id.undistortion) { mOnCameraFrameRender = new OnCameraFrameRender(new UndistortionFrameRender(mCalibrator)); item.setChecked(true); return true; - case R.id.comparison: + } else if (item.getItemId() == R.id.comparison) { mOnCameraFrameRender = new OnCameraFrameRender(new ComparisonFrameRender(mCalibrator, mWidth, mHeight, getResources())); item.setChecked(true); return true; - case R.id.calibrate: + } else if (item.getItemId() == R.id.calibrate) { final Resources res = getResources(); if (mCalibrator.getCornersBufferSize() < 2) { (Toast.makeText(this, res.getString(R.string.more_samples), Toast.LENGTH_SHORT)).show(); @@ -196,7 +195,7 @@ protected void onPostExecute(Void result) { } }.execute(); return true; - default: + } else { return super.onOptionsItemSelected(item); } } diff --git a/samples/android/color-blob-detection/build.gradle.in b/samples/android/color-blob-detection/build.gradle.in index 8900e25c1652..8d363f9bf0f0 100644 --- a/samples/android/color-blob-detection/build.gradle.in +++ b/samples/android/color-blob-detection/build.gradle.in @@ -1,6 +1,7 @@ apply plugin: 'com.android.application' android { + namespace 'org.opencv.samples.colorblobdetect' compileSdkVersion @ANDROID_COMPILE_SDK_VERSION@ defaultConfig { applicationId "org.opencv.samples.colorblobdetect" @@ -27,5 +28,9 @@ android { dependencies { //implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation project(':opencv') + if (gradle.opencv_source == "sdk_path") { + implementation project(':opencv') + } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { + implementation 'org.opencv:opencv:@OPENCV_VERSION@' + } } diff --git a/samples/android/face-detection/build.gradle.in b/samples/android/face-detection/build.gradle.in index 9e3b187a8453..159f18ae8792 100644 --- a/samples/android/face-detection/build.gradle.in +++ b/samples/android/face-detection/build.gradle.in @@ -1,6 +1,7 @@ apply plugin: 'com.android.application' android { + namespace 'org.opencv.samples.facedetect' compileSdkVersion @ANDROID_COMPILE_SDK_VERSION@ defaultConfig { applicationId "org.opencv.samples.facedetect" @@ -11,7 +12,13 @@ android { externalNativeBuild { cmake { - arguments "-DOpenCV_DIR=" + project(':opencv').projectDir + "/@ANDROID_PROJECT_JNI_PATH@"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ + if (gradle.opencv_source == "sdk_path") { + arguments "-DOpenCV_DIR=" + project(':opencv').projectDir + "/@ANDROID_PROJECT_JNI_PATH@", + "-DOPENCV_FROM_SDK=TRUE"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ + + } else { + arguments "-DOPENCV_FROM_SDK=FALSE"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ + } targets "detection_based_tracker" } } @@ -35,9 +42,18 @@ android { path '@ANDROID_SAMPLE_JNI_PATH@/CMakeLists.txt' } } + buildFeatures { + if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { + prefab true + } + } } dependencies { //implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation project(':opencv') + if (gradle.opencv_source == "sdk_path") { + implementation project(':opencv') + } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { + implementation 'org.opencv:opencv:@OPENCV_VERSION@' + } } diff --git a/samples/android/face-detection/jni/CMakeLists.txt b/samples/android/face-detection/jni/CMakeLists.txt index 15f8f4db385d..3e8c4cafefc3 100644 --- a/samples/android/face-detection/jni/CMakeLists.txt +++ b/samples/android/face-detection/jni/CMakeLists.txt @@ -3,7 +3,12 @@ cmake_minimum_required(VERSION 3.6) set(target detection_based_tracker) project(${target} CXX) -set(ANDROID_OPENCV_COMPONENTS "opencv_java" CACHE STRING "") +if (OPENCV_FROM_SDK) + set(ANDROID_OPENCV_COMPONENTS "opencv_java" CACHE STRING "") +else() + set(ANDROID_OPENCV_COMPONENTS "OpenCV::opencv_java4" CACHE STRING "") +endif() + message(STATUS "ANDROID_ABI=${ANDROID_ABI}") find_package(OpenCV REQUIRED COMPONENTS ${ANDROID_OPENCV_COMPONENTS}) @@ -12,4 +17,5 @@ file(GLOB hdrs *.hpp *.h) include_directories("${CMAKE_CURRENT_LIST_DIR}") add_library(${target} SHARED ${srcs} ${hdrs}) -target_link_libraries(${target} ${ANDROID_OPENCV_COMPONENTS}) +find_library(log-lib log) +target_link_libraries(${target} ${ANDROID_OPENCV_COMPONENTS} ${log-lib}) diff --git a/samples/android/image-manipulations/build.gradle.in b/samples/android/image-manipulations/build.gradle.in index 0d685ed41014..3f09b2a665f8 100644 --- a/samples/android/image-manipulations/build.gradle.in +++ b/samples/android/image-manipulations/build.gradle.in @@ -1,6 +1,7 @@ apply plugin: 'com.android.application' android { + namespace 'org.opencv.samples.imagemanipulations' compileSdkVersion @ANDROID_COMPILE_SDK_VERSION@ defaultConfig { applicationId "org.opencv.samples.imagemanipulations" @@ -27,5 +28,9 @@ android { dependencies { //implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation project(':opencv') + if (gradle.opencv_source == "sdk_path") { + implementation project(':opencv') + } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { + implementation 'org.opencv:opencv:@OPENCV_VERSION@' + } } diff --git a/samples/android/mobilenet-objdetect/build.gradle.in b/samples/android/mobilenet-objdetect/build.gradle.in index e8238f7324d8..f1a9a36af079 100644 --- a/samples/android/mobilenet-objdetect/build.gradle.in +++ b/samples/android/mobilenet-objdetect/build.gradle.in @@ -1,6 +1,7 @@ apply plugin: 'com.android.application' android { + namespace 'org.opencv.samples.opencv_mobilenet' compileSdkVersion @ANDROID_COMPILE_SDK_VERSION@ defaultConfig { applicationId "org.opencv.samples.opencv_mobilenet" @@ -27,5 +28,9 @@ android { dependencies { //implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation project(':opencv') + if (gradle.opencv_source == "sdk_path") { + implementation project(':opencv') + } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { + implementation 'org.opencv:opencv:@OPENCV_VERSION@' + } } diff --git a/samples/android/tutorial-1-camerapreview/build.gradle.in b/samples/android/tutorial-1-camerapreview/build.gradle.in index 5a649175dcb2..c29e80e1f07b 100644 --- a/samples/android/tutorial-1-camerapreview/build.gradle.in +++ b/samples/android/tutorial-1-camerapreview/build.gradle.in @@ -1,6 +1,7 @@ apply plugin: 'com.android.application' android { + namespace 'org.opencv.samples.tutorial1' compileSdkVersion @ANDROID_COMPILE_SDK_VERSION@ defaultConfig { applicationId "org.opencv.samples.tutorial1" @@ -27,5 +28,9 @@ android { dependencies { //implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation project(':opencv') + if (gradle.opencv_source == "sdk_path") { + implementation project(':opencv') + } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { + implementation 'org.opencv:opencv:@OPENCV_VERSION@' + } } diff --git a/samples/android/tutorial-2-mixedprocessing/build.gradle.in b/samples/android/tutorial-2-mixedprocessing/build.gradle.in index 7eca49b1b17f..13a6973b4cea 100644 --- a/samples/android/tutorial-2-mixedprocessing/build.gradle.in +++ b/samples/android/tutorial-2-mixedprocessing/build.gradle.in @@ -1,6 +1,7 @@ apply plugin: 'com.android.application' android { + namespace 'org.opencv.samples.tutorial2' compileSdkVersion @ANDROID_COMPILE_SDK_VERSION@ defaultConfig { applicationId "org.opencv.samples.tutorial2" @@ -11,7 +12,13 @@ android { externalNativeBuild { cmake { - arguments "-DOpenCV_DIR=" + project(':opencv').projectDir + "/@ANDROID_PROJECT_JNI_PATH@"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ + if (gradle.opencv_source == "sdk_path") { + arguments "-DOpenCV_DIR=" + project(':opencv').projectDir + "/@ANDROID_PROJECT_JNI_PATH@", + "-DOPENCV_FROM_SDK=TRUE"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ + + } else { + arguments "-DOPENCV_FROM_SDK=FALSE"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ + } targets "mixed_sample" } } @@ -35,9 +42,18 @@ android { path '@ANDROID_SAMPLE_JNI_PATH@/CMakeLists.txt' } } + buildFeatures { + if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { + prefab true + } + } } dependencies { //implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation project(':opencv') + if (gradle.opencv_source == "sdk_path") { + implementation project(':opencv') + } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { + implementation 'org.opencv:opencv:@OPENCV_VERSION@' + } } diff --git a/samples/android/tutorial-2-mixedprocessing/jni/CMakeLists.txt b/samples/android/tutorial-2-mixedprocessing/jni/CMakeLists.txt index 5b34f8b9480e..9e1caad88a1c 100644 --- a/samples/android/tutorial-2-mixedprocessing/jni/CMakeLists.txt +++ b/samples/android/tutorial-2-mixedprocessing/jni/CMakeLists.txt @@ -3,7 +3,12 @@ cmake_minimum_required(VERSION 3.6) set(target mixed_sample) project(${target} CXX) -set(ANDROID_OPENCV_COMPONENTS "opencv_java" CACHE STRING "") +if (OPENCV_FROM_SDK) + set(ANDROID_OPENCV_COMPONENTS "opencv_java" CACHE STRING "") +else() + set(ANDROID_OPENCV_COMPONENTS "OpenCV::opencv_java4" CACHE STRING "") +endif() + message(STATUS "ANDROID_ABI=${ANDROID_ABI}") find_package(OpenCV REQUIRED COMPONENTS ${ANDROID_OPENCV_COMPONENTS}) diff --git a/samples/android/tutorial-3-cameracontrol/build.gradle.in b/samples/android/tutorial-3-cameracontrol/build.gradle.in index 0ba304f5e51f..907fdcf86735 100644 --- a/samples/android/tutorial-3-cameracontrol/build.gradle.in +++ b/samples/android/tutorial-3-cameracontrol/build.gradle.in @@ -1,6 +1,7 @@ apply plugin: 'com.android.application' android { + namespace 'org.opencv.samples.tutorial3' compileSdkVersion @ANDROID_COMPILE_SDK_VERSION@ defaultConfig { applicationId "org.opencv.samples.tutorial3" @@ -27,5 +28,9 @@ android { dependencies { //implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation project(':opencv') + if (gradle.opencv_source == "sdk_path") { + implementation project(':opencv') + } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { + implementation 'org.opencv:opencv:@OPENCV_VERSION@' + } } diff --git a/samples/android/tutorial-4-opencl/build.gradle.in b/samples/android/tutorial-4-opencl/build.gradle.in index 2cb9a7bcb961..e531be1e4b0b 100644 --- a/samples/android/tutorial-4-opencl/build.gradle.in +++ b/samples/android/tutorial-4-opencl/build.gradle.in @@ -1,6 +1,7 @@ apply plugin: 'com.android.application' android { + namespace 'org.opencv.samples.tutorial4' compileSdkVersion @ANDROID_COMPILE_SDK_VERSION@ defaultConfig { applicationId "org.opencv.samples.tutorial4" @@ -11,7 +12,13 @@ android { externalNativeBuild { cmake { - arguments "-DOpenCV_DIR=" + project(':opencv').projectDir + "/@ANDROID_PROJECT_JNI_PATH@"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ + if (gradle.opencv_source == "sdk_path") { + arguments "-DOpenCV_DIR=" + project(':opencv').projectDir + "/@ANDROID_PROJECT_JNI_PATH@", + "-DOPENCV_FROM_SDK=TRUE"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ + + } else { + arguments "-DOPENCV_FROM_SDK=FALSE"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ + } targets "JNIpart" } } @@ -35,9 +42,18 @@ android { path '@ANDROID_SAMPLE_JNI_PATH@/CMakeLists.txt' } } + buildFeatures { + if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { + prefab true + } + } } dependencies { //implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation project(':opencv') + if (gradle.opencv_source == "sdk_path") { + implementation project(':opencv') + } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { + implementation 'org.opencv:opencv:@OPENCV_VERSION@' + } } diff --git a/samples/android/tutorial-4-opencl/jni/CMakeLists.txt b/samples/android/tutorial-4-opencl/jni/CMakeLists.txt index 4fdea1356ed6..12ea92ee10e5 100644 --- a/samples/android/tutorial-4-opencl/jni/CMakeLists.txt +++ b/samples/android/tutorial-4-opencl/jni/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.6) -set(target mixed_sample) +set(target JNIpart) project(${target} CXX) set(ANDROID_OPENCV_COMPONENTS "opencv_java" CACHE STRING "") From 117a7f04c26dbfbc1a6c820442fb783a5ab08d40 Mon Sep 17 00:00:00 2001 From: Alexander Lyulkov Date: Tue, 31 Oct 2023 12:45:50 +0700 Subject: [PATCH 02/14] added aar option to turtorial4, minor changes --- cmake/android/android_gradle_projects.cmake | 5 ++--- samples/android/tutorial-4-opencl/jni/CMakeLists.txt | 7 ++++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/cmake/android/android_gradle_projects.cmake b/cmake/android/android_gradle_projects.cmake index 122987e89f1b..272b7943a28f 100644 --- a/cmake/android/android_gradle_projects.cmake +++ b/cmake/android/android_gradle_projects.cmake @@ -129,13 +129,12 @@ gradle.ext { if (gradle.opencv_source == "maven_local") { gradle.ext { - opencv_maven_path = '../maven_repo' + opencv_maven_path = '/' } } if (gradle.opencv_source == "sdk_path") { - def opencvsdk = "../" - //def opencvsdk='/' + def opencvsdk='/' include ':opencv' project(':opencv').projectDir = new File(opencvsdk + '/sdk') } diff --git a/samples/android/tutorial-4-opencl/jni/CMakeLists.txt b/samples/android/tutorial-4-opencl/jni/CMakeLists.txt index 12ea92ee10e5..6da1a5bfadda 100644 --- a/samples/android/tutorial-4-opencl/jni/CMakeLists.txt +++ b/samples/android/tutorial-4-opencl/jni/CMakeLists.txt @@ -3,7 +3,12 @@ cmake_minimum_required(VERSION 3.6) set(target JNIpart) project(${target} CXX) -set(ANDROID_OPENCV_COMPONENTS "opencv_java" CACHE STRING "") +if (OPENCV_FROM_SDK) + set(ANDROID_OPENCV_COMPONENTS "opencv_java" CACHE STRING "") +else() + set(ANDROID_OPENCV_COMPONENTS "OpenCV::opencv_java4" CACHE STRING "") +endif() + message(STATUS "ANDROID_ABI=${ANDROID_ABI}") find_package(OpenCV REQUIRED COMPONENTS ${ANDROID_OPENCV_COMPONENTS}) From aee523f442f3371f834d40dc5b8b3a641ecdba0b Mon Sep 17 00:00:00 2001 From: Alexander Lyulkov Date: Wed, 1 Nov 2023 13:31:52 +0700 Subject: [PATCH 03/14] Fixed quotes in cmake --- cmake/android/android_gradle_projects.cmake | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cmake/android/android_gradle_projects.cmake b/cmake/android/android_gradle_projects.cmake index 272b7943a28f..522c5f6c0114 100644 --- a/cmake/android/android_gradle_projects.cmake +++ b/cmake/android/android_gradle_projects.cmake @@ -122,18 +122,18 @@ file(WRITE "${ANDROID_TMP_INSTALL_BASE_DIR}/settings.gradle" " rootProject.name = 'opencv_samples' gradle.ext { - //opencv_source = "maven_central" - //opencv_source = "maven_local" - opencv_source = "sdk_path" + //opencv_source = 'maven_central' + //opencv_source = 'maven_local' + opencv_source = 'sdk_path' } -if (gradle.opencv_source == "maven_local") { +if (gradle.opencv_source == 'maven_local') { gradle.ext { opencv_maven_path = '/' } } -if (gradle.opencv_source == "sdk_path") { +if (gradle.opencv_source == 'sdk_path') { def opencvsdk='/' include ':opencv' project(':opencv').projectDir = new File(opencvsdk + '/sdk') From ddfa79512aa2f9f546747c99b20a19e2fdb1bbd1 Mon Sep 17 00:00:00 2001 From: Alexander Lyulkov Date: Wed, 1 Nov 2023 15:16:29 +0700 Subject: [PATCH 04/14] Added similar modifications to CI version of setting.gradle --- cmake/android/android_gradle_projects.cmake | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cmake/android/android_gradle_projects.cmake b/cmake/android/android_gradle_projects.cmake index 522c5f6c0114..55afd2ad8b23 100644 --- a/cmake/android/android_gradle_projects.cmake +++ b/cmake/android/android_gradle_projects.cmake @@ -115,6 +115,12 @@ if(NOT OPENCV_SKIP_ANDROID_FORCE_CMAKE) endif() file(WRITE "${ANDROID_BUILD_BASE_DIR}/settings.gradle" " +gradle.ext { + //opencv_source = 'maven_central' + //opencv_source = 'maven_local' + opencv_source = 'sdk_path' +} + include ':opencv' ") From 6585a841319fa4a2cfd3dcb73c96ff0cb6b8acab Mon Sep 17 00:00:00 2001 From: Alexander Lyulkov Date: Fri, 3 Nov 2023 20:11:38 +0700 Subject: [PATCH 05/14] removed new OPENCV_VERSION cmake variable, renamed log_lib in face-detection sample --- samples/android/15-puzzle/build.gradle.in | 2 +- samples/android/camera-calibration/build.gradle.in | 2 +- samples/android/color-blob-detection/build.gradle.in | 2 +- samples/android/face-detection/build.gradle.in | 2 +- samples/android/face-detection/jni/CMakeLists.txt | 4 ++-- samples/android/image-manipulations/build.gradle.in | 2 +- samples/android/mobilenet-objdetect/build.gradle.in | 2 +- samples/android/tutorial-1-camerapreview/build.gradle.in | 2 +- samples/android/tutorial-2-mixedprocessing/build.gradle.in | 2 +- samples/android/tutorial-3-cameracontrol/build.gradle.in | 2 +- samples/android/tutorial-4-opencl/build.gradle.in | 2 +- 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/samples/android/15-puzzle/build.gradle.in b/samples/android/15-puzzle/build.gradle.in index e1c5de95bca6..b1808d38921f 100644 --- a/samples/android/15-puzzle/build.gradle.in +++ b/samples/android/15-puzzle/build.gradle.in @@ -31,6 +31,6 @@ dependencies { if (gradle.opencv_source == "sdk_path") { implementation project(':opencv') } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { - implementation 'org.opencv:opencv:@OPENCV_VERSION@' + implementation 'org.opencv:opencv:@OPENCV_VERSION_PLAIN@' } } diff --git a/samples/android/camera-calibration/build.gradle.in b/samples/android/camera-calibration/build.gradle.in index d59253066317..69c5b5bbeea1 100644 --- a/samples/android/camera-calibration/build.gradle.in +++ b/samples/android/camera-calibration/build.gradle.in @@ -31,6 +31,6 @@ dependencies { if (gradle.opencv_source == "sdk_path") { implementation project(':opencv') } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { - implementation 'org.opencv:opencv:@OPENCV_VERSION@' + implementation 'org.opencv:opencv:@OPENCV_VERSION_PLAIN@' } } diff --git a/samples/android/color-blob-detection/build.gradle.in b/samples/android/color-blob-detection/build.gradle.in index 8d363f9bf0f0..82cbfe79f69b 100644 --- a/samples/android/color-blob-detection/build.gradle.in +++ b/samples/android/color-blob-detection/build.gradle.in @@ -31,6 +31,6 @@ dependencies { if (gradle.opencv_source == "sdk_path") { implementation project(':opencv') } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { - implementation 'org.opencv:opencv:@OPENCV_VERSION@' + implementation 'org.opencv:opencv:@OPENCV_VERSION_PLAIN@' } } diff --git a/samples/android/face-detection/build.gradle.in b/samples/android/face-detection/build.gradle.in index 159f18ae8792..eb588fa01fa4 100644 --- a/samples/android/face-detection/build.gradle.in +++ b/samples/android/face-detection/build.gradle.in @@ -54,6 +54,6 @@ dependencies { if (gradle.opencv_source == "sdk_path") { implementation project(':opencv') } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { - implementation 'org.opencv:opencv:@OPENCV_VERSION@' + implementation 'org.opencv:opencv:@OPENCV_VERSION_PLAIN@' } } diff --git a/samples/android/face-detection/jni/CMakeLists.txt b/samples/android/face-detection/jni/CMakeLists.txt index 3e8c4cafefc3..b36f462b3ca2 100644 --- a/samples/android/face-detection/jni/CMakeLists.txt +++ b/samples/android/face-detection/jni/CMakeLists.txt @@ -17,5 +17,5 @@ file(GLOB hdrs *.hpp *.h) include_directories("${CMAKE_CURRENT_LIST_DIR}") add_library(${target} SHARED ${srcs} ${hdrs}) -find_library(log-lib log) -target_link_libraries(${target} ${ANDROID_OPENCV_COMPONENTS} ${log-lib}) +find_library(log_lib log) +target_link_libraries(${target} ${ANDROID_OPENCV_COMPONENTS} ${log_lib}) diff --git a/samples/android/image-manipulations/build.gradle.in b/samples/android/image-manipulations/build.gradle.in index 3f09b2a665f8..d36d270a19ff 100644 --- a/samples/android/image-manipulations/build.gradle.in +++ b/samples/android/image-manipulations/build.gradle.in @@ -31,6 +31,6 @@ dependencies { if (gradle.opencv_source == "sdk_path") { implementation project(':opencv') } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { - implementation 'org.opencv:opencv:@OPENCV_VERSION@' + implementation 'org.opencv:opencv:@OPENCV_VERSION_PLAIN@' } } diff --git a/samples/android/mobilenet-objdetect/build.gradle.in b/samples/android/mobilenet-objdetect/build.gradle.in index f1a9a36af079..e1ac8b503e27 100644 --- a/samples/android/mobilenet-objdetect/build.gradle.in +++ b/samples/android/mobilenet-objdetect/build.gradle.in @@ -31,6 +31,6 @@ dependencies { if (gradle.opencv_source == "sdk_path") { implementation project(':opencv') } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { - implementation 'org.opencv:opencv:@OPENCV_VERSION@' + implementation 'org.opencv:opencv:@OPENCV_VERSION_PLAIN@' } } diff --git a/samples/android/tutorial-1-camerapreview/build.gradle.in b/samples/android/tutorial-1-camerapreview/build.gradle.in index c29e80e1f07b..9de83844ab1d 100644 --- a/samples/android/tutorial-1-camerapreview/build.gradle.in +++ b/samples/android/tutorial-1-camerapreview/build.gradle.in @@ -31,6 +31,6 @@ dependencies { if (gradle.opencv_source == "sdk_path") { implementation project(':opencv') } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { - implementation 'org.opencv:opencv:@OPENCV_VERSION@' + implementation 'org.opencv:opencv:@OPENCV_VERSION_PLAIN@' } } diff --git a/samples/android/tutorial-2-mixedprocessing/build.gradle.in b/samples/android/tutorial-2-mixedprocessing/build.gradle.in index 13a6973b4cea..244e74dff714 100644 --- a/samples/android/tutorial-2-mixedprocessing/build.gradle.in +++ b/samples/android/tutorial-2-mixedprocessing/build.gradle.in @@ -54,6 +54,6 @@ dependencies { if (gradle.opencv_source == "sdk_path") { implementation project(':opencv') } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { - implementation 'org.opencv:opencv:@OPENCV_VERSION@' + implementation 'org.opencv:opencv:@OPENCV_VERSION_PLAIN@' } } diff --git a/samples/android/tutorial-3-cameracontrol/build.gradle.in b/samples/android/tutorial-3-cameracontrol/build.gradle.in index 907fdcf86735..a577cb6984a0 100644 --- a/samples/android/tutorial-3-cameracontrol/build.gradle.in +++ b/samples/android/tutorial-3-cameracontrol/build.gradle.in @@ -31,6 +31,6 @@ dependencies { if (gradle.opencv_source == "sdk_path") { implementation project(':opencv') } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { - implementation 'org.opencv:opencv:@OPENCV_VERSION@' + implementation 'org.opencv:opencv:@OPENCV_VERSION_PLAIN@' } } diff --git a/samples/android/tutorial-4-opencl/build.gradle.in b/samples/android/tutorial-4-opencl/build.gradle.in index e531be1e4b0b..bbcb229e0aa0 100644 --- a/samples/android/tutorial-4-opencl/build.gradle.in +++ b/samples/android/tutorial-4-opencl/build.gradle.in @@ -54,6 +54,6 @@ dependencies { if (gradle.opencv_source == "sdk_path") { implementation project(':opencv') } else if (gradle.opencv_source == "maven_local" || gradle.opencv_source == "maven_cenral") { - implementation 'org.opencv:opencv:@OPENCV_VERSION@' + implementation 'org.opencv:opencv:@OPENCV_VERSION_PLAIN@' } } From 90ac3b7da98ad53a655d5b93cc5461782e1e450f Mon Sep 17 00:00:00 2001 From: Alexander Lyulkov Date: Fri, 3 Nov 2023 20:34:52 +0700 Subject: [PATCH 06/14] Fixed constant opencv_java version in CMakeLists.txt in Android samples --- samples/android/face-detection/build.gradle.in | 3 ++- samples/android/face-detection/jni/CMakeLists.txt | 2 +- samples/android/tutorial-2-mixedprocessing/build.gradle.in | 3 ++- samples/android/tutorial-2-mixedprocessing/jni/CMakeLists.txt | 2 +- samples/android/tutorial-4-opencl/build.gradle.in | 3 ++- samples/android/tutorial-4-opencl/jni/CMakeLists.txt | 2 +- 6 files changed, 9 insertions(+), 6 deletions(-) diff --git a/samples/android/face-detection/build.gradle.in b/samples/android/face-detection/build.gradle.in index eb588fa01fa4..87fdbbf533cd 100644 --- a/samples/android/face-detection/build.gradle.in +++ b/samples/android/face-detection/build.gradle.in @@ -17,7 +17,8 @@ android { "-DOPENCV_FROM_SDK=TRUE"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ } else { - arguments "-DOPENCV_FROM_SDK=FALSE"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ + arguments "-DOPENCV_VERSION_MAJOR=@OPENCV_VERSION_MAJOR@", + "-DOPENCV_FROM_SDK=FALSE"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ } targets "detection_based_tracker" } diff --git a/samples/android/face-detection/jni/CMakeLists.txt b/samples/android/face-detection/jni/CMakeLists.txt index b36f462b3ca2..4c18a0bca392 100644 --- a/samples/android/face-detection/jni/CMakeLists.txt +++ b/samples/android/face-detection/jni/CMakeLists.txt @@ -6,7 +6,7 @@ project(${target} CXX) if (OPENCV_FROM_SDK) set(ANDROID_OPENCV_COMPONENTS "opencv_java" CACHE STRING "") else() - set(ANDROID_OPENCV_COMPONENTS "OpenCV::opencv_java4" CACHE STRING "") + set(ANDROID_OPENCV_COMPONENTS "OpenCV::opencv_java${OPENCV_VERSION_MAJOR}" CACHE STRING "") endif() message(STATUS "ANDROID_ABI=${ANDROID_ABI}") diff --git a/samples/android/tutorial-2-mixedprocessing/build.gradle.in b/samples/android/tutorial-2-mixedprocessing/build.gradle.in index 244e74dff714..601f94679756 100644 --- a/samples/android/tutorial-2-mixedprocessing/build.gradle.in +++ b/samples/android/tutorial-2-mixedprocessing/build.gradle.in @@ -17,7 +17,8 @@ android { "-DOPENCV_FROM_SDK=TRUE"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ } else { - arguments "-DOPENCV_FROM_SDK=FALSE"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ + arguments "-DOPENCV_VERSION_MAJOR=@OPENCV_VERSION_MAJOR@", + "-DOPENCV_FROM_SDK=FALSE"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ } targets "mixed_sample" } diff --git a/samples/android/tutorial-2-mixedprocessing/jni/CMakeLists.txt b/samples/android/tutorial-2-mixedprocessing/jni/CMakeLists.txt index 9e1caad88a1c..ff2a8a48f772 100644 --- a/samples/android/tutorial-2-mixedprocessing/jni/CMakeLists.txt +++ b/samples/android/tutorial-2-mixedprocessing/jni/CMakeLists.txt @@ -6,7 +6,7 @@ project(${target} CXX) if (OPENCV_FROM_SDK) set(ANDROID_OPENCV_COMPONENTS "opencv_java" CACHE STRING "") else() - set(ANDROID_OPENCV_COMPONENTS "OpenCV::opencv_java4" CACHE STRING "") + set(ANDROID_OPENCV_COMPONENTS "OpenCV::opencv_java${OPENCV_VERSION_MAJOR}" CACHE STRING "") endif() message(STATUS "ANDROID_ABI=${ANDROID_ABI}") diff --git a/samples/android/tutorial-4-opencl/build.gradle.in b/samples/android/tutorial-4-opencl/build.gradle.in index bbcb229e0aa0..17a5d3719017 100644 --- a/samples/android/tutorial-4-opencl/build.gradle.in +++ b/samples/android/tutorial-4-opencl/build.gradle.in @@ -17,7 +17,8 @@ android { "-DOPENCV_FROM_SDK=TRUE"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ } else { - arguments "-DOPENCV_FROM_SDK=FALSE"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ + arguments "-DOPENCV_VERSION_MAJOR=@OPENCV_VERSION_MAJOR@", + "-DOPENCV_FROM_SDK=FALSE"@OPENCV_ANDROID_CMAKE_EXTRA_ARGS@ } targets "JNIpart" } diff --git a/samples/android/tutorial-4-opencl/jni/CMakeLists.txt b/samples/android/tutorial-4-opencl/jni/CMakeLists.txt index 6da1a5bfadda..923ccd318eb7 100644 --- a/samples/android/tutorial-4-opencl/jni/CMakeLists.txt +++ b/samples/android/tutorial-4-opencl/jni/CMakeLists.txt @@ -6,7 +6,7 @@ project(${target} CXX) if (OPENCV_FROM_SDK) set(ANDROID_OPENCV_COMPONENTS "opencv_java" CACHE STRING "") else() - set(ANDROID_OPENCV_COMPONENTS "OpenCV::opencv_java4" CACHE STRING "") + set(ANDROID_OPENCV_COMPONENTS "OpenCV::opencv_java${OPENCV_VERSION_MAJOR}" CACHE STRING "") endif() message(STATUS "ANDROID_ABI=${ANDROID_ABI}") From 4ea30d8132ce994c22a1f04021d9d2674b9e00fc Mon Sep 17 00:00:00 2001 From: Alexander Lyulkov Date: Fri, 3 Nov 2023 20:45:56 +0700 Subject: [PATCH 07/14] removed new OPENCV_VERSION cmake variable --- cmake/android/android_gradle_projects.cmake | 2 -- 1 file changed, 2 deletions(-) diff --git a/cmake/android/android_gradle_projects.cmake b/cmake/android/android_gradle_projects.cmake index 55afd2ad8b23..c6a0b38c4c84 100644 --- a/cmake/android/android_gradle_projects.cmake +++ b/cmake/android/android_gradle_projects.cmake @@ -1,5 +1,3 @@ -set (OPENCV_VERSION "4.8.0") - # https://developer.android.com/studio/releases/gradle-plugin set(ANDROID_GRADLE_PLUGIN_VERSION "3.2.1" CACHE STRING "Android Gradle Plugin version") message(STATUS "Android Gradle Plugin version: ${ANDROID_GRADLE_PLUGIN_VERSION}") From c7b7ae0855f6d29f9d1850409c9e9313b273a0f8 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Tue, 14 Nov 2023 17:47:29 +0300 Subject: [PATCH 08/14] Update Default Gradle, Gradle plugin, Kotlin plugin and related code. --- cmake/android/android_gradle_projects.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmake/android/android_gradle_projects.cmake b/cmake/android/android_gradle_projects.cmake index c6a0b38c4c84..84f700421b2a 100644 --- a/cmake/android/android_gradle_projects.cmake +++ b/cmake/android/android_gradle_projects.cmake @@ -1,8 +1,8 @@ # https://developer.android.com/studio/releases/gradle-plugin -set(ANDROID_GRADLE_PLUGIN_VERSION "3.2.1" CACHE STRING "Android Gradle Plugin version") +set(ANDROID_GRADLE_PLUGIN_VERSION "7.3.1" CACHE STRING "Android Gradle Plugin version") message(STATUS "Android Gradle Plugin version: ${ANDROID_GRADLE_PLUGIN_VERSION}") -set(KOTLIN_PLUGIN_VERSION "1.4.10" CACHE STRING "Kotlin Plugin version") +set(KOTLIN_PLUGIN_VERSION "1.5.20" CACHE STRING "Kotlin Plugin version") message(STATUS "Kotlin Plugin version: ${KOTLIN_PLUGIN_VERSION}") if(BUILD_KOTLIN_EXTENSIONS) @@ -13,7 +13,7 @@ else() set(KOTLIN_STD_LIB "" CACHE STRING "Kotlin Standard Library dependency") endif() -set(GRADLE_VERSION "5.6.4" CACHE STRING "Gradle version") +set(GRADLE_VERSION "7.5.1" CACHE STRING "Gradle version") message(STATUS "Gradle version: ${GRADLE_VERSION}") set(ANDROID_COMPILE_SDK_VERSION "26" CACHE STRING "Android compileSdkVersion") @@ -109,7 +109,7 @@ if(NOT OPENCV_SKIP_ANDROID_FORCE_CMAKE) get_filename_component(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH) get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH) endif() - ocv_update_file("${ANDROID_BUILD_BASE_DIR}/local.properties" "cmake.dir=${_CMAKE_INSTALL_DIR}") + ocv_update_file("${ANDROID_BUILD_BASE_DIR}/local.properties" "cmake.dir=${_CMAKE_INSTALL_DIR}\nndk.dir=${ANDROID_NDK}") endif() file(WRITE "${ANDROID_BUILD_BASE_DIR}/settings.gradle" " From f037f28a390415e8bf08c5d01c62aa28057f84a8 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Thu, 16 Nov 2023 09:43:01 +0300 Subject: [PATCH 09/14] Temporary switch to custom Android CI pipeline for the PR testing. --- .github/workflows/PR-4.x.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 307e6c7452cc..8365efcee590 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -41,7 +41,7 @@ jobs: uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-iOS.yaml@main Android: - uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-Android.yaml@main + uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-Android.yaml@as/android_tools_30 TIM-VX: uses: opencv/ci-gha-workflow/.github/workflows/OCV-timvx-backend-tests-4.x.yml@main From ba580c6aad03431e6d695874d1861810e91cb571 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Thu, 16 Nov 2023 15:47:58 +0300 Subject: [PATCH 10/14] Increse targetSdkVersion for Gradle projects by Google Play requirements. --- cmake/android/android_gradle_projects.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/android/android_gradle_projects.cmake b/cmake/android/android_gradle_projects.cmake index 84f700421b2a..30af00cca6fd 100644 --- a/cmake/android/android_gradle_projects.cmake +++ b/cmake/android/android_gradle_projects.cmake @@ -22,7 +22,7 @@ if(ANDROID_NATIVE_API_LEVEL GREATER 21) else() set(ANDROID_MIN_SDK_VERSION "21" CACHE STRING "Android minSdkVersion") endif() -set(ANDROID_TARGET_SDK_VERSION "26" CACHE STRING "Android minSdkVersion") +set(ANDROID_TARGET_SDK_VERSION "31" CACHE STRING "Android minSdkVersion") set(ANDROID_BUILD_BASE_DIR "${OpenCV_BINARY_DIR}/opencv_android" CACHE INTERNAL "") set(ANDROID_TMP_INSTALL_BASE_DIR "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/install/opencv_android") From bfff1e77b4ee5f4a12368bd8253781ee838eb095 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Thu, 16 Nov 2023 15:59:55 +0300 Subject: [PATCH 11/14] Update Gradle again due to https://github.com/gradle/gradle/issues/21116#issuecomment-1228005104 bug. --- cmake/android/android_gradle_projects.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/android/android_gradle_projects.cmake b/cmake/android/android_gradle_projects.cmake index 30af00cca6fd..0ea73900e851 100644 --- a/cmake/android/android_gradle_projects.cmake +++ b/cmake/android/android_gradle_projects.cmake @@ -13,7 +13,7 @@ else() set(KOTLIN_STD_LIB "" CACHE STRING "Kotlin Standard Library dependency") endif() -set(GRADLE_VERSION "7.5.1" CACHE STRING "Gradle version") +set(GRADLE_VERSION "7.6.3" CACHE STRING "Gradle version") message(STATUS "Gradle version: ${GRADLE_VERSION}") set(ANDROID_COMPILE_SDK_VERSION "26" CACHE STRING "Android compileSdkVersion") From 11952b3fff1affa86d2c29004a953d631db4877f Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Fri, 17 Nov 2023 10:49:42 +0300 Subject: [PATCH 12/14] Force current installed CMake for the Gralde projects testing. --- platforms/android/build-tests/test_gradle.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platforms/android/build-tests/test_gradle.sh b/platforms/android/build-tests/test_gradle.sh index 9f1b233ff26c..84cfa6a5ebff 100755 --- a/platforms/android/build-tests/test_gradle.sh +++ b/platforms/android/build-tests/test_gradle.sh @@ -29,6 +29,8 @@ rm -rf "test-gradle" cp -rp "${SDK_DIR}" "test-gradle" echo "Cloning OpenCV Android SDK ... Done!" +echo "Force Current CMake for Gradle project" +echo "cmake.dir=`which cmake`" > "test-gradle/samples/local.properties" echo "Run gradle ..." (cd "test-gradle/samples"; ./gradlew -i assemble) From f60a6ab4d93fa027efa7ebcaab50ff3404e1414f Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Fri, 17 Nov 2023 11:43:03 +0300 Subject: [PATCH 13/14] Fix gradle tests in CI. --- cmake/android/android_gradle_projects.cmake | 4 +++- platforms/android/build-tests/test_gradle.sh | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/cmake/android/android_gradle_projects.cmake b/cmake/android/android_gradle_projects.cmake index 0ea73900e851..a3f4ba2c65b8 100644 --- a/cmake/android/android_gradle_projects.cmake +++ b/cmake/android/android_gradle_projects.cmake @@ -138,7 +138,9 @@ if (gradle.opencv_source == 'maven_local') { } if (gradle.opencv_source == 'sdk_path') { - def opencvsdk='/' + def opencvsdk='../' + //def opencvsdk='/' + //println opencvsdk include ':opencv' project(':opencv').projectDir = new File(opencvsdk + '/sdk') } diff --git a/platforms/android/build-tests/test_gradle.sh b/platforms/android/build-tests/test_gradle.sh index 84cfa6a5ebff..bb6bc91a8e48 100755 --- a/platforms/android/build-tests/test_gradle.sh +++ b/platforms/android/build-tests/test_gradle.sh @@ -30,7 +30,8 @@ cp -rp "${SDK_DIR}" "test-gradle" echo "Cloning OpenCV Android SDK ... Done!" echo "Force Current CMake for Gradle project" -echo "cmake.dir=`which cmake`" > "test-gradle/samples/local.properties" +# drop cmake bin name and "bin" folder from path +echo "cmake.dir=$(dirname $(dirname $(which cmake)))" > "test-gradle/samples/local.properties" echo "Run gradle ..." (cd "test-gradle/samples"; ./gradlew -i assemble) From 18495989bd4657efbc51b758f3726bd3ed23c49a Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Fri, 17 Nov 2023 14:12:15 +0300 Subject: [PATCH 14/14] Reverted CI changes. --- .github/workflows/PR-4.x.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 8365efcee590..307e6c7452cc 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -41,7 +41,7 @@ jobs: uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-iOS.yaml@main Android: - uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-Android.yaml@as/android_tools_30 + uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-Android.yaml@main TIM-VX: uses: opencv/ci-gha-workflow/.github/workflows/OCV-timvx-backend-tests-4.x.yml@main