2 # --------------------------------------------------------------------------------------------
3 # Installation for Android ndk-build makefile: OpenCV.mk
4 # Part 1/2: ${BIN_DIR}/OpenCV.mk -> For use *without* "make install"
5 # Part 2/2: ${BIN_DIR}/unix-install/OpenCV.mk -> For use with "make install"
6 # -------------------------------------------------------------------------------------------
10 set(OPENCV_LIBTYPE_CONFIGMAKE "SHARED")
12 set(OPENCV_LIBTYPE_CONFIGMAKE "STATIC")
15 if(BUILD_FAT_JAVA_LIB)
16 set(OPENCV_LIBTYPE_CONFIGMAKE "SHARED")
17 set(OPENCV_STATIC_LIBTYPE_CONFIGMAKE "STATIC")
19 set(OPENCV_STATIC_LIBTYPE_CONFIGMAKE ${OPENCV_LIBTYPE_CONFIGMAKE})
22 # setup lists of camera libs
23 foreach(abi ARMEABI ARMEABI_V7A X86 MIPS)
24 ANDROID_GET_ABI_RAWNAME(${abi} ndkabi)
25 if(BUILD_ANDROID_CAMERA_WRAPPER)
26 if(ndkabi STREQUAL ANDROID_NDK_ABI_NAME)
27 set(OPENCV_CAMERA_LIBS_${abi}_CONFIGCMAKE "native_camera_r${ANDROID_VERSION}")
29 set(OPENCV_CAMERA_LIBS_${abi}_CONFIGCMAKE "")
31 elseif(HAVE_opencv_androidcamera)
32 set(OPENCV_CAMERA_LIBS_${abi}_CONFIGCMAKE "")
33 file(GLOB OPENCV_CAMERA_LIBS "${OpenCV_SOURCE_DIR}/3rdparty/lib/${ndkabi}/libnative_camera_r*.so")
34 if(OPENCV_CAMERA_LIBS)
35 list(SORT OPENCV_CAMERA_LIBS)
37 foreach(cam_lib ${OPENCV_CAMERA_LIBS})
38 get_filename_component(cam_lib "${cam_lib}" NAME)
39 string(REGEX REPLACE "lib(native_camera_r[0-9]+\\.[0-9]+\\.[0-9]+)\\.so" "\\1" cam_lib "${cam_lib}")
40 set(OPENCV_CAMERA_LIBS_${abi}_CONFIGCMAKE "${OPENCV_CAMERA_LIBS_${abi}_CONFIGCMAKE} ${cam_lib}")
45 # build the list of opencv libs and dependencies for all modules
46 set(OPENCV_MODULES_CONFIGMAKE "")
47 set(OPENCV_EXTRA_COMPONENTS_CONFIGMAKE "")
48 set(OPENCV_3RDPARTY_COMPONENTS_CONFIGMAKE "")
49 foreach(m ${OPENCV_MODULES_PUBLIC})
50 list(INSERT OPENCV_MODULES_CONFIGMAKE 0 ${${m}_MODULE_DEPS_${ocv_optkind}} ${m})
51 if(${m}_EXTRA_DEPS_${ocv_optkind})
52 list(INSERT OPENCV_EXTRA_COMPONENTS_CONFIGMAKE 0 ${${m}_EXTRA_DEPS_${ocv_optkind}})
56 # split 3rdparty libs and modules
57 foreach(mod ${OPENCV_MODULES_CONFIGMAKE})
58 if(NOT mod MATCHES "^opencv_.+$")
59 list(INSERT OPENCV_3RDPARTY_COMPONENTS_CONFIGMAKE 0 ${mod})
62 if(OPENCV_3RDPARTY_COMPONENTS_CONFIGMAKE)
63 list(REMOVE_ITEM OPENCV_MODULES_CONFIGMAKE ${OPENCV_3RDPARTY_COMPONENTS_CONFIGMAKE})
66 # convert CMake lists to makefile literals
67 foreach(lst OPENCV_MODULES_CONFIGMAKE OPENCV_3RDPARTY_COMPONENTS_CONFIGMAKE OPENCV_EXTRA_COMPONENTS_CONFIGMAKE)
68 ocv_list_unique(${lst})
69 ocv_list_reverse(${lst})
70 string(REPLACE ";" " " ${lst} "${${lst}}")
72 string(REPLACE "opencv_" "" OPENCV_MODULES_CONFIGMAKE "${OPENCV_MODULES_CONFIGMAKE}")
74 # prepare 3rd-party component list without TBB for armeabi and mips platforms. TBB is useless there.
75 set(OPENCV_3RDPARTY_COMPONENTS_CONFIGMAKE_NO_TBB ${OPENCV_3RDPARTY_COMPONENTS_CONFIGMAKE})
76 foreach(mod ${OPENCV_3RDPARTY_COMPONENTS_CONFIGMAKE_NO_TBB})
77 string(REPLACE "tbb" "" OPENCV_3RDPARTY_COMPONENTS_CONFIGMAKE_NO_TBB "${OPENCV_3RDPARTY_COMPONENTS_CONFIGMAKE_NO_TBB}")
80 if(BUILD_FAT_JAVA_LIB)
81 set(OPENCV_LIBS_CONFIGMAKE java)
83 set(OPENCV_LIBS_CONFIGMAKE "${OPENCV_MODULES_CONFIGMAKE}")
86 # -------------------------------------------------------------------------------------------
87 # Part 1/2: ${BIN_DIR}/OpenCV.mk -> For use *without* "make install"
88 # -------------------------------------------------------------------------------------------
89 set(OPENCV_INCLUDE_DIRS_CONFIGCMAKE "\"${OPENCV_CONFIG_FILE_INCLUDE_DIR}\" \"${OpenCV_SOURCE_DIR}/include\" \"${OpenCV_SOURCE_DIR}/include/opencv\"")
90 set(OPENCV_BASE_INCLUDE_DIR_CONFIGCMAKE "\"${OpenCV_SOURCE_DIR}\"")
91 set(OPENCV_LIBS_DIR_CONFIGCMAKE "\$(OPENCV_THIS_DIR)/lib/\$(OPENCV_TARGET_ARCH_ABI)")
92 set(OPENCV_3RDPARTY_LIBS_DIR_CONFIGCMAKE "\$(OPENCV_THIS_DIR)/3rdparty/lib/\$(OPENCV_TARGET_ARCH_ABI)")
94 configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCV.mk.in" "${CMAKE_BINARY_DIR}/OpenCV.mk" @ONLY)
96 # -------------------------------------------------------------------------------------------
97 # Part 2/2: ${BIN_DIR}/unix-install/OpenCV.mk -> For use with "make install"
98 # -------------------------------------------------------------------------------------------
99 set(OPENCV_INCLUDE_DIRS_CONFIGCMAKE "\"\$(LOCAL_PATH)/\$(OPENCV_THIS_DIR)/include/opencv\" \"\$(LOCAL_PATH)/\$(OPENCV_THIS_DIR)/include\"")
100 set(OPENCV_BASE_INCLUDE_DIR_CONFIGCMAKE "")
101 set(OPENCV_LIBS_DIR_CONFIGCMAKE "\$(OPENCV_THIS_DIR)/../libs/\$(OPENCV_TARGET_ARCH_ABI)")
102 set(OPENCV_3RDPARTY_LIBS_DIR_CONFIGCMAKE "\$(OPENCV_THIS_DIR)/../3rdparty/libs/\$(OPENCV_TARGET_ARCH_ABI)")
104 configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCV.mk.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCV.mk" @ONLY)
105 install(FILES ${CMAKE_BINARY_DIR}/unix-install/OpenCV.mk DESTINATION ${OPENCV_CONFIG_INSTALL_PATH} COMPONENT dev)