opencv

Форк
0
/
OpenCVPackaging.cmake 
179 строк · 7.5 Кб
1
ocv_cmake_hook(INIT_CPACK)
2
if(NOT EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
3
  message(STATUS "CPack is not found. SKIP")
4
  return()
5
endif()
6

7
set(CPACK_set_DESTDIR "on")
8

9
if(NOT OPENCV_CUSTOM_PACKAGE_INFO)
10
  set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Open Computer Vision Library")
11
  set(CPACK_PACKAGE_DESCRIPTION
12
"OpenCV (Open Source Computer Vision Library) is an open source computer vision
13
and machine learning software library. OpenCV was built to provide a common
14
infrastructure for computer vision applications and to accelerate the use of
15
machine perception in the commercial products. Being a BSD-licensed product,
16
OpenCV makes it easy for businesses to utilize and modify the code.")
17
  set(CPACK_PACKAGE_VENDOR "OpenCV Foundation")
18
  set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
19
  set(CPACK_PACKAGE_CONTACT "admin@opencv.org")
20
  set(CPACK_PACKAGE_VERSION_MAJOR "${OPENCV_VERSION_MAJOR}")
21
  set(CPACK_PACKAGE_VERSION_MINOR "${OPENCV_VERSION_MINOR}")
22
  set(CPACK_PACKAGE_VERSION_PATCH "${OPENCV_VERSION_PATCH}")
23
  set(CPACK_PACKAGE_VERSION "${OPENCV_VCSVERSION}")
24
endif(NOT OPENCV_CUSTOM_PACKAGE_INFO)
25

26
#arch
27
if(X86)
28
  set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i386")
29
  set(CPACK_RPM_PACKAGE_ARCHITECTURE "i686")
30
elseif(X86_64)
31
  set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
32
  set(CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64")
33
elseif(ARM)
34
  set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "armhf")
35
  set(CPACK_RPM_PACKAGE_ARCHITECTURE "armhf")
36
elseif(AARCH64)
37
  set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "arm64")
38
  set(CPACK_RPM_PACKAGE_ARCHITECTURE "aarch64")
39
elseif(PPC64LE)
40
  set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "ppc64el")
41
  set(CPACK_RPM_PACKAGE_ARCHITECTURE "ppc64le")
42
else()
43
  set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
44
  set(CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
45
endif()
46

47
if(CPACK_GENERATOR STREQUAL "DEB")
48
  set(OPENCV_PACKAGE_ARCH_SUFFIX ${CPACK_DEBIAN_PACKAGE_ARCHITECTURE})
49
elseif(CPACK_GENERATOR STREQUAL "RPM")
50
  set(OPENCV_PACKAGE_ARCH_SUFFIX ${CPACK_RPM_PACKAGE_ARCHITECTURE})
51
else()
52
  set(OPENCV_PACKAGE_ARCH_SUFFIX ${CMAKE_SYSTEM_PROCESSOR})
53
endif()
54

55
set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION}-${OPENCV_PACKAGE_ARCH_SUFFIX}")
56
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION}-${OPENCV_PACKAGE_ARCH_SUFFIX}")
57

58
#rpm options
59
set(CPACK_RPM_COMPONENT_INSTALL TRUE)
60
set(CPACK_RPM_PACKAGE_SUMMARY ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
61
set(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION})
62
set(CPACK_RPM_PACKAGE_URL "http://opencv.org")
63
set(CPACK_RPM_PACKAGE_LICENSE "Apache 2.0")
64

65
#deb options
66
set(CPACK_DEB_COMPONENT_INSTALL TRUE)
67
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
68
set(CPACK_DEBIAN_PACKAGE_SECTION "libs")
69
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "http://opencv.org")
70

71
#display names
72
set(CPACK_COMPONENT_DEV_DISPLAY_NAME     "Development files")
73
set(CPACK_COMPONENT_DOCS_DISPLAY_NAME    "Documentation")
74
set(CPACK_COMPONENT_JAVA_DISPLAY_NAME    "Java bindings")
75
set(CPACK_COMPONENT_LIBS_DISPLAY_NAME    "Libraries and data")
76
set(CPACK_COMPONENT_PYTHON_DISPLAY_NAME  "Python bindings")
77
set(CPACK_COMPONENT_SAMPLES_DISPLAY_NAME "Samples")
78
set(CPACK_COMPONENT_TESTS_DISPLAY_NAME   "Tests")
79

80
#depencencies
81
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS TRUE)
82
set(CPACK_COMPONENT_LIBS_REQUIRED TRUE)
83
set(CPACK_COMPONENT_SAMPLES_DEPENDS libs)
84
set(CPACK_COMPONENT_DEV_DEPENDS libs)
85
set(CPACK_COMPONENT_DOCS_DEPENDS libs)
86
set(CPACK_COMPONENT_JAVA_DEPENDS libs)
87
set(CPACK_COMPONENT_PYTHON_DEPENDS libs)
88
set(CPACK_COMPONENT_TESTS_DEPENDS libs)
89

90
if(HAVE_CUDA)
91
  string(REPLACE "." "-" cuda_version_suffix ${CUDA_VERSION})
92
  if(CUDA_VERSION VERSION_LESS "6.5")
93
    set(CPACK_DEB_libs_PACKAGE_DEPENDS "cuda-core-libs-${cuda_version_suffix}, cuda-extra-libs-${cuda_version_suffix}")
94
    set(CPACK_DEB_dev_PACKAGE_DEPENDS "cuda-headers-${cuda_version_suffix}")
95
  else()
96
    set(CPACK_DEB_libs_PACKAGE_DEPENDS "cuda-cudart-${cuda_version_suffix}, cuda-npp-${cuda_version_suffix}")
97
    set(CPACK_DEB_dev_PACKAGE_DEPENDS "cuda-cudart-dev-${cuda_version_suffix}, cuda-npp-dev-${cuda_version_suffix}")
98
    if(HAVE_CUFFT)
99
      set(CPACK_DEB_libs_PACKAGE_DEPENDS "${CPACK_DEB_libs_PACKAGE_DEPENDS}, cuda-cufft-${cuda_version_suffix}")
100
      set(CPACK_DEB_dev_PACKAGE_DEPENDS "${CPACK_DEB_dev_PACKAGE_DEPENDS}, cuda-cufft-dev-${cuda_version_suffix}")
101
    endif()
102
    if(HAVE_CUBLAS)
103
      set(CPACK_DEB_libs_PACKAGE_DEPENDS "${CPACK_DEB_libs_PACKAGE_DEPENDS}, cuda-cublas-${cuda_version_suffix}")
104
      set(CPACK_DEB_dev_PACKAGE_DEPENDS "${CPACK_DEB_dev_PACKAGE_DEPENDS}, cuda-cublas-dev-${cuda_version_suffix}")
105
    endif()
106
    if(HAVE_CUDNN)
107
      # TODO
108
      #ex: libcudnn7_7.5.1.10-1+cuda10.1_amd64
109
      #ex: libcudnn7-dev_7.5.1.10-1+cuda10.1_amd64
110
    endif()
111
  endif()
112
  set(CPACK_COMPONENT_dev_DEPENDS libs)
113
endif()
114

115
if(HAVE_TBB AND NOT BUILD_TBB)
116
  if(CPACK_DEB_DEV_PACKAGE_DEPENDS)
117
    set(CPACK_DEB_DEV_PACKAGE_DEPENDS "${CPACK_DEB_DEV_PACKAGE_DEPENDS}, libtbb-dev")
118
  else()
119
    set(CPACK_DEB_DEV_PACKAGE_DEPENDS "libtbb-dev")
120
  endif()
121
endif()
122

123
set(STD_OPENCV_LIBS opencv-data)
124
set(STD_OPENCV_DEV libopencv-dev)
125

126
foreach(module calib3d core dnn features2d flann gapi highgui
127
               imgcodecs imgproc ml objdetect
128
               photo stitching ts video videoio)
129
  if(HAVE_opencv_${module})
130
    list(APPEND STD_OPENCV_LIBS "libopencv-${module}4.0")
131
    list(APPEND STD_OPENCV_DEV "libopencv-${module}-dev")
132
  endif()
133
endforeach()
134

135
string(REPLACE ";" ", " CPACK_COMPONENT_LIBS_CONFLICTS "${STD_OPENCV_LIBS}")
136
string(REPLACE ";" ", " CPACK_COMPONENT_LIBS_PROVIDES "${STD_OPENCV_LIBS}")
137
string(REPLACE ";" ", " CPACK_COMPONENT_LIBS_REPLACES "${STD_OPENCV_LIBS}")
138

139
string(REPLACE ";" ", " CPACK_COMPONENT_DEV_CONFLICTS "${STD_OPENCV_DEV}")
140
string(REPLACE ";" ", " CPACK_COMPONENT_DEV_PROVIDES "${STD_OPENCV_DEV}")
141
string(REPLACE ";" ", " CPACK_COMPONENT_DEV_REPLACES "${STD_OPENCV_DEV}")
142

143
set(CPACK_COMPONENT_PYTHON_CONFLICTS python-opencv)
144
set(CPACK_COMPONENT_PYTHON_PROVIDES python-opencv)
145
set(CPACK_COMPONENT_PYTHON_REPLACES python-opencv)
146

147
set(CPACK_COMPONENT_JAVA_CONFLICTS "libopencv4.0-java, libopencv4.0-jni")
148
set(CPACK_COMPONENT_JAVA_PROVIDES "libopencv4.0-java, libopencv4.0-jni")
149
set(CPACK_COMPONENT_JAVA_REPLACES "libopencv4.0-java, libopencv4.0-jni")
150

151
set(CPACK_COMPONENT_DOCS_CONFLICTS opencv-doc)
152
set(CPACK_COMPONENT_SAMPLES_CONFLICTS opencv-doc)
153

154
if(NOT OPENCV_CUSTOM_PACKAGE_INFO)
155
  set(CPACK_COMPONENT_LIBS_DESCRIPTION "Open Computer Vision Library")
156
  set(CPACK_DEBIAN_COMPONENT_LIBS_NAME "lib${CMAKE_PROJECT_NAME}")
157

158
  set(CPACK_COMPONENT_PYTHON_DESCRIPTION "Python bindings for Open Source Computer Vision Library")
159
  set(CPACK_DEBIAN_COMPONENT_PYTHON_NAME "lib${CMAKE_PROJECT_NAME}-python")
160

161
  set(CPACK_COMPONENT_JAVA_DESCRIPTION "Java bindings for Open Source Computer Vision Library")
162
  set(CPACK_DEBIAN_COMPONENT_JAVA_NAME "lib${CMAKE_PROJECT_NAME}-java")
163

164
  set(CPACK_COMPONENT_DEV_DESCRIPTION "Development files for Open Source Computer Vision Library")
165
  set(CPACK_DEBIAN_COMPONENT_DEV_NAME "lib${CMAKE_PROJECT_NAME}-dev")
166

167
  set(CPACK_COMPONENT_DOCS_DESCRIPTION "Documentation for Open Source Computer Vision Library")
168
  set(CPACK_DEBIAN_COMPONENT_DOCS_NAME "lib${CMAKE_PROJECT_NAME}-docs")
169

170
  set(CPACK_COMPONENT_SAMPLES_DESCRIPTION "Samples for Open Source Computer Vision Library")
171
  set(CPACK_DEBIAN_COMPONENT_SAMPLES_NAME "lib${CMAKE_PROJECT_NAME}-samples")
172

173
  set(CPACK_COMPONENT_TESTS_DESCRIPTION "Accuracy and performance tests for Open Source Computer Vision Library")
174
  set(CPACK_DEBIAN_COMPONENT_TESTS_NAME "lib${CMAKE_PROJECT_NAME}-tests")
175
endif(NOT OPENCV_CUSTOM_PACKAGE_INFO)
176

177
ocv_cmake_hook(PRE_CPACK)
178
include(CPack)
179
ocv_cmake_hook(POST_CPACK)
180

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

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

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

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