Add python3-setuptools dependency for python 3.12
[platform/upstream/opencv.git] / cmake / OpenCVGenAndroidMK.cmake
1 if(ANDROID)
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   # -------------------------------------------------------------------------------------------
7
8   # build type
9   if(BUILD_SHARED_LIBS)
10     set(OPENCV_LIBTYPE_CONFIGMAKE "SHARED")
11   else()
12     set(OPENCV_LIBTYPE_CONFIGMAKE "STATIC")
13   endif()
14
15   if(BUILD_FAT_JAVA_LIB)
16     set(OPENCV_LIBTYPE_CONFIGMAKE "SHARED")
17     set(OPENCV_STATIC_LIBTYPE_CONFIGMAKE "STATIC")
18   else()
19     set(OPENCV_STATIC_LIBTYPE_CONFIGMAKE ${OPENCV_LIBTYPE_CONFIGMAKE})
20   endif()
21
22   # build the list of opencv libs and dependencies for all modules
23   ocv_get_all_libs(OPENCV_MODULES OPENCV_EXTRA_COMPONENTS OPENCV_3RDPARTY_COMPONENTS)
24
25   # list -> string
26   foreach(_var OPENCV_MODULES OPENCV_EXTRA_COMPONENTS OPENCV_3RDPARTY_COMPONENTS)
27     set(var "${_var}_CONFIGMAKE")
28     set(${var} "")
29     foreach(lib ${${_var}})
30       set(lib_name "${lib}")
31       if(TARGET ${lib})
32         get_target_property(_output ${lib} IMPORTED_LOCATION)
33         if(NOT _output)
34           get_target_property(output_name ${lib} OUTPUT_NAME)
35           if(output_name)
36             set(lib_name "${output_name}")
37           endif()
38         else()
39           ocv_get_libname(lib_name "${_output}")
40         endif()
41       endif()
42       set(${var} "${${var}} ${lib_name}")
43     endforeach()
44     string(STRIP "${${var}}" ${var})
45   endforeach()
46
47   # replace 'opencv_<module>' -> '<module>''
48   string(REPLACE "opencv_" "" OPENCV_MODULES_CONFIGMAKE "${OPENCV_MODULES_CONFIGMAKE}")
49
50   if(BUILD_FAT_JAVA_LIB)
51     set(OPENCV_LIBS_CONFIGMAKE java4)
52   else()
53     set(OPENCV_LIBS_CONFIGMAKE "${OPENCV_MODULES_CONFIGMAKE}")
54   endif()
55
56   # -------------------------------------------------------------------------------------------
57   #  Part 1/2: ${BIN_DIR}/OpenCV.mk              -> For use *without* "make install"
58   # -------------------------------------------------------------------------------------------
59   set(OPENCV_INCLUDE_DIRS_CONFIGCMAKE "\"${OPENCV_CONFIG_FILE_INCLUDE_DIR}\" \"${OpenCV_SOURCE_DIR}/include\" \"${OpenCV_SOURCE_DIR}/include/opencv\"")
60   set(OPENCV_BASE_INCLUDE_DIR_CONFIGCMAKE "\"${OpenCV_SOURCE_DIR}\"")
61   set(OPENCV_LIBS_DIR_CONFIGCMAKE         "\$(OPENCV_THIS_DIR)/lib/\$(OPENCV_TARGET_ARCH_ABI)")
62   set(OPENCV_LIBS_ARCHIVE_DIR_CONFIGCMAKE "\$(OPENCV_THIS_DIR)/lib/\$(OPENCV_TARGET_ARCH_ABI)")
63   set(OPENCV_3RDPARTY_LIBS_DIR_CONFIGCMAKE "\$(OPENCV_THIS_DIR)/3rdparty/lib/\$(OPENCV_TARGET_ARCH_ABI)")
64
65   configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCV.mk.in" "${CMAKE_BINARY_DIR}/OpenCV.mk" @ONLY)
66   configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCV-abi.mk.in" "${CMAKE_BINARY_DIR}/OpenCV-${ANDROID_NDK_ABI_NAME}.mk" @ONLY)
67
68   # -------------------------------------------------------------------------------------------
69   #  Part 2/2: ${BIN_DIR}/unix-install/OpenCV.mk -> For use with "make install"
70   # -------------------------------------------------------------------------------------------
71   set(OPENCV_INCLUDE_DIRS_CONFIGCMAKE "\"\$(LOCAL_PATH)/\$(OPENCV_THIS_DIR)/include/opencv\" \"\$(LOCAL_PATH)/\$(OPENCV_THIS_DIR)/include\"")
72   set(OPENCV_BASE_INCLUDE_DIR_CONFIGCMAKE "")
73   set(OPENCV_LIBS_DIR_CONFIGCMAKE         "\$(OPENCV_THIS_DIR)/../libs/\$(OPENCV_TARGET_ARCH_ABI)")
74   set(OPENCV_LIBS_ARCHIVE_DIR_CONFIGCMAKE "\$(OPENCV_THIS_DIR)/../staticlibs/\$(OPENCV_TARGET_ARCH_ABI)")
75   set(OPENCV_3RDPARTY_LIBS_DIR_CONFIGCMAKE "\$(OPENCV_THIS_DIR)/../3rdparty/libs/\$(OPENCV_TARGET_ARCH_ABI)")
76
77   configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCV.mk.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCV.mk" @ONLY)
78   configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCV-abi.mk.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCV-${ANDROID_NDK_ABI_NAME}.mk" @ONLY)
79   install(FILES ${CMAKE_BINARY_DIR}/unix-install/OpenCV.mk DESTINATION ${OPENCV_CONFIG_INSTALL_PATH} COMPONENT dev)
80   install(FILES ${CMAKE_BINARY_DIR}/unix-install/OpenCV-${ANDROID_NDK_ABI_NAME}.mk DESTINATION ${OPENCV_CONFIG_INSTALL_PATH} COMPONENT dev)
81 endif(ANDROID)