diff --git a/cmake/OpenCVDetectAndroidSDK.cmake b/cmake/OpenCVDetectAndroidSDK.cmake index 92d7ba3272b126cc2a8ef55b871756c36b7ef5fa..393dbb62d20e94f76d4807e432875a162d7a138f 100644 --- a/cmake/OpenCVDetectAndroidSDK.cmake +++ b/cmake/OpenCVDetectAndroidSDK.cmake @@ -176,7 +176,8 @@ macro(android_get_compatible_target VAR) endmacro() unset(__android_project_chain CACHE) -#add_android_project(target_name ${path} NATIVE_DEPS opencv_core LIBRARY_DEPS ${OpenCV_BINARY_DIR} SDK_TARGET 11) + +# add_android_project(target_name ${path} NATIVE_DEPS opencv_core LIBRARY_DEPS ${OpenCV_BINARY_DIR} SDK_TARGET 11) macro(add_android_project target path) # parse arguments set(android_proj_arglist NATIVE_DEPS LIBRARY_DEPS SDK_TARGET IGNORE_JAVA IGNORE_MANIFEST) @@ -212,6 +213,16 @@ macro(add_android_project target path) ocv_check_dependencies(${android_proj_NATIVE_DEPS} opencv_java) endif() + if(EXISTS "${path}/jni/Android.mk" ) + # find if native_app_glue is used + file(STRINGS "${path}/jni/Android.mk" NATIVE_APP_GLUE REGEX ".*(call import-module,android/native_app_glue)" ) + if(NATIVE_APP_GLUE) + if(ANDROID_NATIVE_API_LEVEL LESS 9 OR NOT EXISTS "${ANDROID_NDK}/sources/android/native_app_glue") + set(OCV_DEPENDENCIES_FOUND FALSE) + endif() + endif() + endif() + if(OCV_DEPENDENCIES_FOUND AND android_proj_sdk_target AND ANDROID_EXECUTABLE AND ANT_EXECUTABLE AND ANDROID_TOOLS_Pkg_Revision GREATER 13 AND EXISTS "${path}/${ANDROID_MANIFEST_FILE}") project(${target}) @@ -268,9 +279,6 @@ macro(add_android_project target path) file(STRINGS "${path}/jni/Android.mk" JNI_LIB_NAME REGEX "LOCAL_MODULE[ ]*:=[ ]*.*" ) string(REGEX REPLACE "LOCAL_MODULE[ ]*:=[ ]*([a-zA-Z_][a-zA-Z_0-9]*)[ ]*" "\\1" JNI_LIB_NAME "${JNI_LIB_NAME}") - # find using of native app glue to determine native activity - file(STRINGS "${path}/jni/Android.mk" NATIVE_APP_GLUE REGEX ".*(call import-module,android/native_app_glue)" ) - if(JNI_LIB_NAME) ocv_include_modules_recurse(${android_proj_NATIVE_DEPS}) ocv_include_directories("${path}/jni") @@ -291,9 +299,9 @@ macro(add_android_project target path) ) get_target_property(android_proj_jni_location "${JNI_LIB_NAME}" LOCATION) - if (NOT (CMAKE_BUILD_TYPE MATCHES "debug")) - add_custom_command(TARGET ${JNI_LIB_NAME} POST_BUILD COMMAND ${CMAKE_STRIP} --strip-unneeded "${android_proj_jni_location}") - endif() + if (NOT (CMAKE_BUILD_TYPE MATCHES "debug")) + add_custom_command(TARGET ${JNI_LIB_NAME} POST_BUILD COMMAND ${CMAKE_STRIP} --strip-unneeded "${android_proj_jni_location}") + endif() endif() endif() diff --git a/samples/android/CMakeLists.txt b/samples/android/CMakeLists.txt index 9d7b0cbf0fc2f9b08895bf7b2e592dad776e9201..c0b626d9b18b66124a4bdc25e9fe354b01bf845d 100644 --- a/samples/android/CMakeLists.txt +++ b/samples/android/CMakeLists.txt @@ -10,16 +10,13 @@ add_subdirectory(15-puzzle) add_subdirectory(face-detection) add_subdirectory(image-manipulations) add_subdirectory(color-blob-detection) - -if (ANDROID_NATIVE_API_LEVEL GREATER 8) - add_subdirectory(native-activity) -endif() - add_subdirectory(tutorial-1-camerapreview) add_subdirectory(tutorial-2-mixedprocessing) add_subdirectory(tutorial-3-cameracontrol) -#hello-android sample +add_subdirectory(native-activity) + +# hello-android sample if(HAVE_opencv_highgui) ocv_include_modules_recurse(opencv_highgui opencv_core) add_executable(hello-android hello-android/main.cpp)