# Java support
# ===================================================
-if (PYTHON_EXECUTABLE AND ANDROID)
+if (PYTHON_EXECUTABLE AND ANDROID AND ANDROID_API_LEVEL GREATER 7)
option(BUILD_JAVA_SUPPORT "Build with Java support" TRUE)
endif()
endif()
############## Android source tree for native camera ###############
-if(ANDROID)
+if(ANDROID AND ANDROID_API_LEVEL GREATER 7)
+ option(WITH_ANDROID_CAMERA "Build with native Android camera support" TRUE)
+
SET (ANDROID_SOURCE_TREE "ANDROID_SOURCE_TREE-NOTFOUND" CACHE PATH
"Path to Android source tree.
Set this variable to path to your Android sources to compile
endif()
if(BUILD_ANDROID_CAMERA_WRAPPER)
set(CMAKE_CAMERA_LIBS_CONFIGCMAKE "native_camera_r${ANDROID_VERSION}")
- else()
+ elseif(WITH_ANDROID_CAMERA)
SET(CMAKE_CAMERA_LIBS_CONFIGCMAKE "")
file(GLOB CMAKE_CAMERA_LIBS "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/lib/libnative_camera_r*.so")
foreach(cam_lib ${CMAKE_CAMERA_LIBS})
status(" Xine:" HAVE_XINE THEN YES ELSE NO)
if(ANDROID)
- if(BUILD_ANDROID_CAMERA_WRAPPER)
- status(" AndroidNativeCamera:" "build for Android ${ANDROID_VERSION}")
+ if(WITH_ANDROID_CAMERA)
+ if(BUILD_ANDROID_CAMERA_WRAPPER)
+ status(" AndroidNativeCamera:" "build for Android ${ANDROID_VERSION}")
+ else()
+ status(" AndroidNativeCamera:" ARMEABI_V7A THEN use prebuilt libraries ELSE NO)
+ endif()
else()
- status(" AndroidNativeCamera:" ARMEABI_V7A THEN use prebuilt libraries ELSE NO)
+ status(" AndroidNativeCamera:" "NO (native camera requires Android API level 8 or higher)")
endif()
endif()
elseif(APPLE)
status(" Python:" BUILD_NEW_PYTHON_SUPPORT THEN YES ELSE NO)
status(" Python interpreter:" PYTHON_EXECUTABLE THEN "${PYTHON_EXECUTABLE} (ver ${PYTHON_VERSION_MAJOR_MINOR})" ELSE NO)
status(" Python numpy:" PYTHON_USE_NUMPY THEN YES ELSE "NO (Python interface will not cover OpenCV 2.x API)")
-status(" Java:" BUILD_JAVA_SUPPORT THEN YES ELSE NO)
+if(ANDROID AND ANDROID_API_LEVEL LESS 8)
+ status(" Java:" "NO (Java API requires Android API level 8 or higher)")
+else()
+ status(" Java:" BUILD_JAVA_SUPPORT THEN YES ELSE NO)
+endif()
if(ANDROID)
status(" android tool:" ANDROID_EXECUTABLE THEN "${ANDROID_EXECUTABLE}" ELSE NO)
OPENCV_MODULES := contrib calib3d objdetect features2d imgproc video highgui ml legacy flann core
-ifeq ($(TARGET_ARCH_ABI),armeabi)
-OPENCV_CAMERA_MODULES:=
-else
ifeq (${OPENCV_CAMERA_MODULES},off)
-OPENCV_CAMERA_MODULES:=
+ OPENCV_CAMERA_MODULES:=
else
-OPENCV_CAMERA_MODULES:=@CMAKE_CAMERA_LIBS_CONFIGCMAKE@
-endif
+ ifeq ($(TARGET_ARCH_ABI),armeabi)
+ OPENCV_CAMERA_MODULES:=
+ else
+ OPENCV_CAMERA_MODULES:=@CMAKE_CAMERA_LIBS_CONFIGCMAKE@
+ endif
endif
OPENCV_LIB_TYPE:=@OPENCV_LIBTYPE_CONFIGMAKE@
OPENCV_EXTRA_COMPONENTS:=
else
OPENCV_LIB_SUFFIX:=a
- OPENCV_MODULES+= androidcamera
+ ifeq (@WITH_ANDROID_CAMERA@,ON)
+ OPENCV_MODULES+= androidcamera
+ endif
OPENCV_EXTRA_COMPONENTS:=@JPEG_LIBRARIES@ @PNG_LIBRARIES@ @TIFF_LIBRARIES@ @JASPER_LIBRARIES@ @ZLIB_LIBRARY@
endif
# - OpenCV_LIB_COMPONENTS\r
# - OpenCV_EXTRA_COMPONENTS\r
# - OpenCV_USE_MANGLED_PATHS\r
+# - OpenCV_HAVE_ANDROID_CAMERA\r
#\r
# =================================================================================================\r
\r
# Extract the directory where *this* file has been installed (determined at cmake run-time)\r
get_filename_component(OpenCV_CONFIG_PATH "${CMAKE_CURRENT_LIST_FILE}" PATH)\r
\r
-#Get the absolute path with no ../.. relative marks, to eliminate implicit linker warnings\r
+# Get the absolute path with no ../.. relative marks, to eliminate implicit linker warnings\r
get_filename_component(OpenCV_INSTALL_PATH "${OpenCV_CONFIG_PATH}/../.." REALPATH)\r
\r
+# Presence of Android native camera support\r
+set (OpenCV_HAVE_ANDROID_CAMERA @WITH_ANDROID_CAMERA@)\r
+\r
# ======================================================\r
# Include directories to add to the user project:\r
# ======================================================\r
#libraries order is very important because linker from Android NDK is one-pass linker\r
if(NOT ANDROID)\r
LIST(INSERT OpenCV_LIB_COMPONENTS 0 opencv_gpu)\r
-ELSEIF(NOT OpenCV_SHARED)\r
+ELSEIF(NOT OpenCV_SHARED AND OpenCV_HAVE_ANDROID_CAMERA)\r
LIST(APPEND OpenCV_LIB_COMPONENTS opencv_androidcamera)\r
endif()\r
\r
# ======================================================\r
# Android camera helper macro\r
# ======================================================\r
-IF (ANDROID)\r
+IF (OpenCV_HAVE_ANDROID_CAMERA)\r
macro( COPY_NATIVE_CAMERA_LIBS target )\r
- IF( ARMEABI_V7A)\r
- get_target_property(target_location ${target} LOCATION)\r
- get_filename_component(target_location "${target_location}" PATH)\r
- file(GLOB camera_wrappers "${OpenCV_LIB_DIR}/libnative_camera_r*.so")\r
- foreach(wrapper ${camera_wrappers})\r
- ADD_CUSTOM_COMMAND(\r
- TARGET ${target}\r
- POST_BUILD\r
- COMMAND ${CMAKE_COMMAND} -E copy "${wrapper}" "${target_location}"\r
- )\r
- endforeach()\r
- ENDIF( ARMEABI_V7A )\r
+ get_target_property(target_location ${target} LOCATION)\r
+ get_filename_component(target_location "${target_location}" PATH)\r
+ file(GLOB camera_wrappers "${OpenCV_LIB_DIR}/libnative_camera_r*.so")\r
+ foreach(wrapper ${camera_wrappers})\r
+ ADD_CUSTOM_COMMAND(\r
+ TARGET ${target}\r
+ POST_BUILD\r
+ COMMAND ${CMAKE_COMMAND} -E copy "${wrapper}" "${target_location}"\r
+ )\r
+ endforeach()\r
endmacro()\r
ENDIF(ANDROID)\r
\r
if(ANDROID_API_LEVEL LESS 8)
ADD_DEFINITIONS(-DGTEST_HAS_CLONE=0)
endif()
-
- add_subdirectory(androidcamera)
+
+ IF(WITH_ANDROID_CAMERA)
+ add_subdirectory(androidcamera)
+ endif()
endif()
add_subdirectory(calib3d)
endif()
endif(APPLE)
-if(ANDROID)
+if(WITH_ANDROID_CAMERA)
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../androidcamera/include")
set(highgui_srcs ${highgui_srcs} src/cap_android.cpp)
add_definitions(-DHAVE_ANDROID_NATIVE_CAMERA)
add_dependencies(${the_target} zlib)
endif()
-if(ANDROID)
+if(WITH_ANDROID_CAMERA)
add_dependencies(${the_target} opencv_androidcamera)
endif()
"${CMAKE_CURRENT_BINARY_DIR}")
set(test_deps opencv_ts opencv_highgui opencv_imgproc)
- if(ANDROID)
+ if(WITH_ANDROID_CAMERA)
set(test_deps ${test_deps} opencv_androidcamera)
endif()
SET(OPENCV_JAVA_MODULES objdetect features2d imgproc video highgui ml core)
SET(OPENCV_EXTRA_JAVA_MODULES calib3d contrib legacy flann)
-IF(ANDROID AND NOT BUILD_SHARED_LIBS)
+IF(WITH_ANDROID_CAMERA AND NOT BUILD_SHARED_LIBS)
LIST(APPEND OPENCV_EXTRA_JAVA_MODULES androidcamera)
ENDIF()