opencv

Форк
0
/
OpenCVGenConfig.cmake 
140 строк · 6.6 Кб
1
# --------------------------------------------------------------------------------------------
2
#  Installation for CMake Module:  OpenCVConfig.cmake
3
#  Part 1/3: ${BIN_DIR}/OpenCVConfig.cmake              -> For use *without* "make install"
4
#  Part 2/3: ${BIN_DIR}/unix-install/OpenCVConfig.cmake -> For use with "make install"
5
#  Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake  -> For use within binary installers/packages
6
# -------------------------------------------------------------------------------------------
7

8
if(INSTALL_TO_MANGLED_PATHS)
9
  set(OpenCV_USE_MANGLED_PATHS_CONFIGCMAKE TRUE)
10
else()
11
  set(OpenCV_USE_MANGLED_PATHS_CONFIGCMAKE FALSE)
12
endif()
13

14
if(HAVE_CUDA)
15
  if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
16
    ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-CUDALanguage.cmake.in" CUDA_CONFIGCMAKE @ONLY)
17
  else()
18
    ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-CUDA.cmake.in" CUDA_CONFIGCMAKE @ONLY)
19
  endif()
20
endif()
21

22
if(ANDROID)
23
  if(NOT ANDROID_NATIVE_API_LEVEL)
24
    set(OpenCV_ANDROID_NATIVE_API_LEVEL_CONFIGCMAKE 0)
25
  else()
26
    set(OpenCV_ANDROID_NATIVE_API_LEVEL_CONFIGCMAKE "${ANDROID_NATIVE_API_LEVEL}")
27
  endif()
28
  ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-ANDROID.cmake.in" ANDROID_CONFIGCMAKE @ONLY)
29
endif()
30

31
set(OPENCV_MODULES_CONFIGCMAKE ${OPENCV_MODULES_PUBLIC})
32

33
if(BUILD_FAT_JAVA_LIB AND HAVE_opencv_java)
34
  list(APPEND OPENCV_MODULES_CONFIGCMAKE opencv_java)
35
endif()
36

37
if(BUILD_OBJC AND HAVE_opencv_objc)
38
  list(APPEND OPENCV_MODULES_CONFIGCMAKE opencv_objc)
39
endif()
40

41

42
# -------------------------------------------------------------------------------------------
43
#  Part 1/3: ${BIN_DIR}/OpenCVConfig.cmake              -> For use *without* "make install"
44
# -------------------------------------------------------------------------------------------
45
set(OpenCV_INCLUDE_DIRS_CONFIGCMAKE "\"${OPENCV_CONFIG_FILE_INCLUDE_DIR}\" \"${OpenCV_SOURCE_DIR}/include\"")
46

47
foreach(m ${OPENCV_MODULES_BUILD})
48
  if(EXISTS "${OPENCV_MODULE_${m}_LOCATION}/include")
49
    set(OpenCV_INCLUDE_DIRS_CONFIGCMAKE "${OpenCV_INCLUDE_DIRS_CONFIGCMAKE} \"${OPENCV_MODULE_${m}_LOCATION}/include\"")
50
  endif()
51
endforeach()
52

53
export(EXPORT OpenCVModules FILE "${CMAKE_BINARY_DIR}/OpenCVModules.cmake")
54

55
if(TARGET ippicv AND NOT BUILD_SHARED_LIBS)
56
  set(USE_IPPICV TRUE)
57
  file(RELATIVE_PATH IPPICV_INSTALL_PATH_RELATIVE_CONFIGCMAKE "${CMAKE_BINARY_DIR}" "${IPPICV_LOCATION_PATH}")
58
  ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-IPPICV.cmake.in" IPPICV_CONFIGCMAKE @ONLY)
59
else()
60
  set(USE_IPPICV FALSE)
61
endif()
62

63
if(TARGET ippiw AND NOT BUILD_SHARED_LIBS AND IPPIW_INSTALL_PATH)
64
  set(USE_IPPIW TRUE)
65
  file(RELATIVE_PATH IPPIW_INSTALL_PATH_RELATIVE_CONFIGCMAKE "${CMAKE_BINARY_DIR}" "${IPPIW_LOCATION_PATH}")
66
  ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-IPPIW.cmake.in" IPPIW_CONFIGCMAKE @ONLY)
67
else()
68
  set(USE_IPPIW FALSE)
69
endif()
70

71
ocv_cmake_hook(PRE_CMAKE_CONFIG_BUILD)
72
configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/OpenCVConfig.cmake" @ONLY)
73
#support for version checking when finding opencv. find_package(OpenCV 2.3.1 EXACT) should now work.
74
configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig-version.cmake.in" "${CMAKE_BINARY_DIR}/OpenCVConfig-version.cmake" @ONLY)
75

76
# --------------------------------------------------------------------------------------------
77
#  Part 2/3: ${BIN_DIR}/unix-install/OpenCVConfig.cmake -> For use *with* "make install"
78
# -------------------------------------------------------------------------------------------
79
file(RELATIVE_PATH OpenCV_INSTALL_PATH_RELATIVE_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}/${OPENCV_CONFIG_INSTALL_PATH}/" ${CMAKE_INSTALL_PREFIX})
80
if (IS_ABSOLUTE ${OPENCV_INCLUDE_INSTALL_PATH})
81
  set(OpenCV_INCLUDE_DIRS_CONFIGCMAKE "\"${OPENCV_INCLUDE_INSTALL_PATH}\"")
82
else()
83
  set(OpenCV_INCLUDE_DIRS_CONFIGCMAKE "\"\${OpenCV_INSTALL_PATH}/${OPENCV_INCLUDE_INSTALL_PATH}\"")
84
endif()
85

86
if(USE_IPPICV)
87
  file(RELATIVE_PATH IPPICV_INSTALL_PATH_RELATIVE_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}" "${IPPICV_INSTALL_PATH}")
88
  ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-IPPICV.cmake.in" IPPICV_CONFIGCMAKE @ONLY)
89
endif()
90
if(USE_IPPIW)
91
  file(RELATIVE_PATH IPPIW_INSTALL_PATH_RELATIVE_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}" "${IPPIW_INSTALL_PATH}")
92
  ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-IPPIW.cmake.in" IPPIW_CONFIGCMAKE @ONLY)
93
endif()
94

95
function(ocv_gen_config TMP_DIR NESTED_PATH ROOT_NAME)
96
  ocv_path_join(__install_nested "${OPENCV_CONFIG_INSTALL_PATH}" "${NESTED_PATH}")
97
  ocv_path_join(__tmp_nested "${TMP_DIR}" "${NESTED_PATH}")
98

99
  file(RELATIVE_PATH OpenCV_INSTALL_PATH_RELATIVE_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}/${__install_nested}" "${CMAKE_INSTALL_PREFIX}/")
100

101
  ocv_cmake_hook(PRE_CMAKE_CONFIG_INSTALL)
102
  configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig-version.cmake.in" "${TMP_DIR}/OpenCVConfig-version.cmake" @ONLY)
103

104
  configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig.cmake.in" "${__tmp_nested}/OpenCVConfig.cmake" @ONLY)
105
  install(EXPORT OpenCVModules DESTINATION "${__install_nested}" FILE OpenCVModules.cmake COMPONENT dev)
106
  install(FILES
107
      "${TMP_DIR}/OpenCVConfig-version.cmake"
108
      "${__tmp_nested}/OpenCVConfig.cmake"
109
      DESTINATION "${__install_nested}" COMPONENT dev)
110

111
  if(ROOT_NAME)
112
    # Root config file
113
    configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/${ROOT_NAME}" "${TMP_DIR}/OpenCVConfig.cmake" @ONLY)
114
    install(FILES
115
        "${TMP_DIR}/OpenCVConfig-version.cmake"
116
        "${TMP_DIR}/OpenCVConfig.cmake"
117
        DESTINATION "${OPENCV_CONFIG_INSTALL_PATH}" COMPONENT dev)
118
  endif()
119
endfunction()
120

121
if((CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" OR UNIX) AND NOT ANDROID)
122
  ocv_gen_config("${CMAKE_BINARY_DIR}/unix-install" "" "")
123
endif()
124

125
if(ANDROID)
126
  ocv_gen_config("${CMAKE_BINARY_DIR}/unix-install" "abi-${ANDROID_NDK_ABI_NAME}" "OpenCVConfig.root-ANDROID.cmake.in")
127
endif()
128

129
# --------------------------------------------------------------------------------------------
130
#  Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake  -> For use within binary installers/packages
131
# --------------------------------------------------------------------------------------------
132
if(WIN32)
133
  if(CMAKE_HOST_SYSTEM_NAME MATCHES Windows AND NOT OPENCV_SKIP_CMAKE_ROOT_CONFIG)
134
    ocv_gen_config("${CMAKE_BINARY_DIR}/win-install"
135
                   "${OPENCV_INSTALL_BINARIES_PREFIX}${OPENCV_INSTALL_BINARIES_SUFFIX}"
136
                   "OpenCVConfig.root-WIN32.cmake.in")
137
  else()
138
    ocv_gen_config("${CMAKE_BINARY_DIR}/win-install" "" "")
139
  endif()
140
endif()
141

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.