1*4882a593Smuzhiyun################################################################################ 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# opencv4 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun################################################################################ 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunOPENCV4_VERSION = 4.5.4 8*4882a593SmuzhiyunOPENCV4_SITE = $(call github,opencv,opencv,$(OPENCV4_VERSION)) 9*4882a593SmuzhiyunOPENCV4_INSTALL_STAGING = YES 10*4882a593SmuzhiyunOPENCV4_LICENSE = Apache-2.0 11*4882a593SmuzhiyunOPENCV4_LICENSE_FILES = LICENSE 12*4882a593SmuzhiyunOPENCV4_CPE_ID_VENDOR = opencv 13*4882a593SmuzhiyunOPENCV4_CPE_ID_PRODUCT = opencv 14*4882a593SmuzhiyunOPENCV4_SUPPORTS_IN_SOURCE_BUILD = NO 15*4882a593Smuzhiyun 16*4882a593SmuzhiyunOPENCV4_CXXFLAGS = $(TARGET_CXXFLAGS) 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun# Uses __atomic_fetch_add_4 19*4882a593Smuzhiyunifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) 20*4882a593SmuzhiyunOPENCV4_CXXFLAGS += -latomic 21*4882a593Smuzhiyunendif 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun# Fix c++11 build with missing std::exception_ptr 24*4882a593Smuzhiyunifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_64735),y) 25*4882a593SmuzhiyunOPENCV4_CXXFLAGS += -DCV__EXCEPTION_PTR=0 26*4882a593Smuzhiyunendif 27*4882a593Smuzhiyun 28*4882a593Smuzhiyunifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_68485),y) 29*4882a593SmuzhiyunOPENCV4_CXXFLAGS += -O0 30*4882a593Smuzhiyunendif 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun# OpenCV component options 33*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 34*4882a593Smuzhiyun -DCMAKE_CXX_FLAGS="$(OPENCV4_CXXFLAGS)" \ 35*4882a593Smuzhiyun -DBUILD_DOCS=OFF \ 36*4882a593Smuzhiyun -DBUILD_PERF_TESTS=$(if $(BR2_PACKAGE_OPENCV4_BUILD_PERF_TESTS),ON,OFF) \ 37*4882a593Smuzhiyun -DBUILD_TESTS=$(if $(BR2_PACKAGE_OPENCV4_BUILD_TESTS),ON,OFF) \ 38*4882a593Smuzhiyun -DBUILD_WITH_DEBUG_INFO=OFF \ 39*4882a593Smuzhiyun -DDOWNLOAD_EXTERNAL_TEST_DATA=OFF \ 40*4882a593Smuzhiyun -DOPENCV_GENERATE_PKGCONFIG=ON \ 41*4882a593Smuzhiyun -DOPENCV_ENABLE_PKG_CONFIG=ON 42*4882a593Smuzhiyun 43*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_BUILD_TESTS)$(BR2_PACKAGE_OPENCV4_BUILD_PERF_TESTS),) 44*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DINSTALL_TEST=OFF 45*4882a593Smuzhiyunelse 46*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DINSTALL_TEST=ON 47*4882a593Smuzhiyunendif 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun# OpenCV build options 50*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 51*4882a593Smuzhiyun -DBUILD_WITH_STATIC_CRT=OFF \ 52*4882a593Smuzhiyun -DENABLE_CCACHE=OFF \ 53*4882a593Smuzhiyun -DENABLE_COVERAGE=OFF \ 54*4882a593Smuzhiyun -DENABLE_FAST_MATH=ON \ 55*4882a593Smuzhiyun -DENABLE_IMPL_COLLECTION=OFF \ 56*4882a593Smuzhiyun -DENABLE_NOISY_WARNINGS=OFF \ 57*4882a593Smuzhiyun -DENABLE_OMIT_FRAME_POINTER=ON \ 58*4882a593Smuzhiyun -DENABLE_PRECOMPILED_HEADERS=OFF \ 59*4882a593Smuzhiyun -DENABLE_PROFILING=OFF \ 60*4882a593Smuzhiyun -DOPENCV_WARNINGS_ARE_ERRORS=OFF 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun# OpenCV link options 63*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 64*4882a593Smuzhiyun -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF \ 65*4882a593Smuzhiyun -DCMAKE_SKIP_RPATH=OFF \ 66*4882a593Smuzhiyun -DCMAKE_USE_RELATIVE_PATHS=OFF 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun# OpenCV packaging options: 69*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 70*4882a593Smuzhiyun -DBUILD_PACKAGE=OFF \ 71*4882a593Smuzhiyun -DENABLE_SOLUTION_FOLDERS=OFF \ 72*4882a593Smuzhiyun -DINSTALL_CREATE_DISTRIB=OFF 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun# OpenCV module selection 75*4882a593Smuzhiyun# * Modules on: 76*4882a593Smuzhiyun# - core: if not set, opencv does not build anything 77*4882a593Smuzhiyun# - hal: core's dependency 78*4882a593Smuzhiyun# * Modules off: 79*4882a593Smuzhiyun# - android*: android stuff 80*4882a593Smuzhiyun# - apps: programs for training classifiers 81*4882a593Smuzhiyun# - java: java bindings 82*4882a593Smuzhiyun# - viz: missing VTK dependency 83*4882a593Smuzhiyun# - world: all-in-one module 84*4882a593Smuzhiyun# 85*4882a593Smuzhiyun# * Contrib modules from [1] are disabled: 86*4882a593Smuzhiyun# - opencv_contrib package is not available in Buildroot; 87*4882a593Smuzhiyun# - OPENCV_EXTRA_MODULES_PATH is not set. 88*4882a593Smuzhiyun# 89*4882a593Smuzhiyun# [1] https://github.com/Itseez/opencv_contrib 90*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 91*4882a593Smuzhiyun -DBUILD_opencv_androidcamera=OFF \ 92*4882a593Smuzhiyun -DBUILD_opencv_apps=OFF \ 93*4882a593Smuzhiyun -DBUILD_opencv_calib3d=$(if $(BR2_PACKAGE_OPENCV4_LIB_CALIB3D),ON,OFF) \ 94*4882a593Smuzhiyun -DBUILD_opencv_core=ON \ 95*4882a593Smuzhiyun -DBUILD_opencv_features2d=$(if $(BR2_PACKAGE_OPENCV4_LIB_FEATURES2D),ON,OFF) \ 96*4882a593Smuzhiyun -DBUILD_opencv_flann=$(if $(BR2_PACKAGE_OPENCV4_LIB_FLANN),ON,OFF) \ 97*4882a593Smuzhiyun -DBUILD_opencv_highgui=$(if $(BR2_PACKAGE_OPENCV4_LIB_HIGHGUI),ON,OFF) \ 98*4882a593Smuzhiyun -DBUILD_opencv_imgcodecs=$(if $(BR2_PACKAGE_OPENCV4_LIB_IMGCODECS),ON,OFF) \ 99*4882a593Smuzhiyun -DBUILD_opencv_imgproc=$(if $(BR2_PACKAGE_OPENCV4_LIB_IMGPROC),ON,OFF) \ 100*4882a593Smuzhiyun -DBUILD_opencv_java=OFF \ 101*4882a593Smuzhiyun -DBUILD_opencv_ml=$(if $(BR2_PACKAGE_OPENCV4_LIB_ML),ON,OFF) \ 102*4882a593Smuzhiyun -DBUILD_opencv_objdetect=$(if $(BR2_PACKAGE_OPENCV4_LIB_OBJDETECT),ON,OFF) \ 103*4882a593Smuzhiyun -DBUILD_opencv_photo=$(if $(BR2_PACKAGE_OPENCV4_LIB_PHOTO),ON,OFF) \ 104*4882a593Smuzhiyun -DBUILD_opencv_shape=$(if $(BR2_PACKAGE_OPENCV4_LIB_SHAPE),ON,OFF) \ 105*4882a593Smuzhiyun -DBUILD_opencv_stitching=$(if $(BR2_PACKAGE_OPENCV4_LIB_STITCHING),ON,OFF) \ 106*4882a593Smuzhiyun -DBUILD_opencv_superres=$(if $(BR2_PACKAGE_OPENCV4_LIB_SUPERRES),ON,OFF) \ 107*4882a593Smuzhiyun -DBUILD_opencv_ts=$(if $(BR2_PACKAGE_OPENCV4_LIB_TS),ON,OFF) \ 108*4882a593Smuzhiyun -DBUILD_opencv_video=$(if $(BR2_PACKAGE_OPENCV4_LIB_VIDEO),ON,OFF) \ 109*4882a593Smuzhiyun -DBUILD_opencv_videoio=$(if $(BR2_PACKAGE_OPENCV4_LIB_VIDEOIO),ON,OFF) \ 110*4882a593Smuzhiyun -DBUILD_opencv_videostab=$(if $(BR2_PACKAGE_OPENCV4_LIB_VIDEOSTAB),ON,OFF) \ 111*4882a593Smuzhiyun -DBUILD_opencv_viz=OFF \ 112*4882a593Smuzhiyun -DBUILD_opencv_world=OFF 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun# Hardware support options. 115*4882a593Smuzhiyun# 116*4882a593Smuzhiyun# * PowerPC and VFPv3 support are turned off since their only effects 117*4882a593Smuzhiyun# are altering CFLAGS, adding '-mcpu=G3 -mtune=G5' or '-mfpu=vfpv3' 118*4882a593Smuzhiyun# to them, which is already handled by Buildroot. 119*4882a593Smuzhiyun# * NEON logic is needed as it is not only used to add CFLAGS, but 120*4882a593Smuzhiyun# also to enable additional NEON code. 121*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 122*4882a593Smuzhiyun -DENABLE_POWERPC=OFF \ 123*4882a593Smuzhiyun -DENABLE_NEON=$(if $(BR2_ARM_CPU_HAS_NEON),ON,OFF) \ 124*4882a593Smuzhiyun -DENABLE_VFPV3=OFF 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun# Cuda stuff 127*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 128*4882a593Smuzhiyun -DBUILD_CUDA_STUBS=OFF \ 129*4882a593Smuzhiyun -DBUILD_opencv_cudaarithm=OFF \ 130*4882a593Smuzhiyun -DBUILD_opencv_cudabgsegm=OFF \ 131*4882a593Smuzhiyun -DBUILD_opencv_cudacodec=OFF \ 132*4882a593Smuzhiyun -DBUILD_opencv_cudafeatures2d=OFF \ 133*4882a593Smuzhiyun -DBUILD_opencv_cudafilters=OFF \ 134*4882a593Smuzhiyun -DBUILD_opencv_cudaimgproc=OFF \ 135*4882a593Smuzhiyun -DBUILD_opencv_cudalegacy=OFF \ 136*4882a593Smuzhiyun -DBUILD_opencv_cudaobjdetect=OFF \ 137*4882a593Smuzhiyun -DBUILD_opencv_cudaoptflow=OFF \ 138*4882a593Smuzhiyun -DBUILD_opencv_cudastereo=OFF \ 139*4882a593Smuzhiyun -DBUILD_opencv_cudawarping=OFF \ 140*4882a593Smuzhiyun -DBUILD_opencv_cudev=OFF \ 141*4882a593Smuzhiyun -DWITH_CUBLAS=OFF \ 142*4882a593Smuzhiyun -DWITH_CUDA=OFF \ 143*4882a593Smuzhiyun -DWITH_CUFFT=OFF 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun# NVidia stuff 146*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_NVCUVID=OFF 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun# AMD stuff 149*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 150*4882a593Smuzhiyun -DWITH_OPENCLAMDBLAS=OFF \ 151*4882a593Smuzhiyun -DWITH_OPENCLAMDFFT=OFF 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun# Intel stuff 154*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 155*4882a593Smuzhiyun -DBUILD_WITH_DYNAMIC_IPP=OFF \ 156*4882a593Smuzhiyun -DWITH_INTELPERC=OFF \ 157*4882a593Smuzhiyun -DWITH_IPP=OFF \ 158*4882a593Smuzhiyun -DWITH_IPP_A=OFF \ 159*4882a593Smuzhiyun -DWITH_TBB=OFF 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun# Smartek stuff 162*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_GIGEAPI=OFF 163*4882a593Smuzhiyun 164*4882a593Smuzhiyun# Prosilica stuff 165*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_PVAPI=OFF 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun# Ximea stuff 168*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_XIMEA=OFF 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun# Non-Linux support (Android options) must remain OFF: 171*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 172*4882a593Smuzhiyun -DANDROID=OFF \ 173*4882a593Smuzhiyun -DBUILD_ANDROID_CAMERA_WRAPPER=OFF \ 174*4882a593Smuzhiyun -DBUILD_ANDROID_EXAMPLES=OFF \ 175*4882a593Smuzhiyun -DBUILD_ANDROID_SERVICE=OFF \ 176*4882a593Smuzhiyun -DBUILD_FAT_JAVA_LIB=OFF \ 177*4882a593Smuzhiyun -DINSTALL_ANDROID_EXAMPLES=OFF \ 178*4882a593Smuzhiyun -DWITH_ANDROID_CAMERA=OFF 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun# Non-Linux support (Mac OSX options) must remain OFF: 181*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 182*4882a593Smuzhiyun -DWITH_AVFOUNDATION=OFF \ 183*4882a593Smuzhiyun -DWITH_CARBON=OFF \ 184*4882a593Smuzhiyun -DWITH_QUICKTIME=OFF 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun# Non-Linux support (Windows options) must remain OFF: 187*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 188*4882a593Smuzhiyun -DWITH_CSTRIPES=OFF \ 189*4882a593Smuzhiyun -DWITH_DSHOW=OFF \ 190*4882a593Smuzhiyun -DWITH_MSMF=OFF \ 191*4882a593Smuzhiyun -DWITH_VFW=OFF \ 192*4882a593Smuzhiyun -DWITH_VIDEOINPUT=OFF \ 193*4882a593Smuzhiyun -DWITH_WIN32UI=OFF 194*4882a593Smuzhiyun 195*4882a593Smuzhiyun# Software/3rd-party support options: 196*4882a593Smuzhiyun# - disable all examples 197*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 198*4882a593Smuzhiyun -DBUILD_EXAMPLES=OFF \ 199*4882a593Smuzhiyun -DBUILD_JASPER=OFF \ 200*4882a593Smuzhiyun -DBUILD_JPEG=OFF \ 201*4882a593Smuzhiyun -DBUILD_OPENEXR=OFF \ 202*4882a593Smuzhiyun -DBUILD_OPENJPEG=OFF \ 203*4882a593Smuzhiyun -DBUILD_PNG=OFF \ 204*4882a593Smuzhiyun -DBUILD_PROTOBUF=OFF \ 205*4882a593Smuzhiyun -DBUILD_TIFF=OFF \ 206*4882a593Smuzhiyun -DBUILD_ZLIB=OFF \ 207*4882a593Smuzhiyun -DINSTALL_C_EXAMPLES=OFF \ 208*4882a593Smuzhiyun -DINSTALL_PYTHON_EXAMPLES=OFF \ 209*4882a593Smuzhiyun -DINSTALL_TO_MANGLED_PATHS=OFF 210*4882a593Smuzhiyun 211*4882a593Smuzhiyun# Disabled features (mostly because they are not available in Buildroot), but 212*4882a593Smuzhiyun# - eigen: OpenCV does not use it, not take any benefit from it. 213*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 214*4882a593Smuzhiyun -DWITH_1394=OFF \ 215*4882a593Smuzhiyun -DWITH_CLP=OFF \ 216*4882a593Smuzhiyun -DWITH_EIGEN=OFF \ 217*4882a593Smuzhiyun -DWITH_GDAL=OFF \ 218*4882a593Smuzhiyun -DWITH_GPHOTO2=OFF \ 219*4882a593Smuzhiyun -DWITH_GSTREAMER_0_10=OFF \ 220*4882a593Smuzhiyun -DWITH_LAPACK=OFF \ 221*4882a593Smuzhiyun -DWITH_MATLAB=OFF \ 222*4882a593Smuzhiyun -DWITH_OPENCL=OFF \ 223*4882a593Smuzhiyun -DWITH_OPENCL_SVM=OFF \ 224*4882a593Smuzhiyun -DWITH_OPENEXR=OFF \ 225*4882a593Smuzhiyun -DWITH_OPENNI2=OFF \ 226*4882a593Smuzhiyun -DWITH_OPENNI=OFF \ 227*4882a593Smuzhiyun -DWITH_UNICAP=OFF \ 228*4882a593Smuzhiyun -DWITH_VA=OFF \ 229*4882a593Smuzhiyun -DWITH_VA_INTEL=OFF \ 230*4882a593Smuzhiyun -DWITH_VTK=OFF \ 231*4882a593Smuzhiyun -DWITH_XINE=OFF 232*4882a593Smuzhiyun 233*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += host-pkgconf zlib 234*4882a593Smuzhiyun 235*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_JPEG2000_WITH_JASPER),y) 236*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_JASPER=ON 237*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += jasper 238*4882a593Smuzhiyunelse 239*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_JASPER=OFF 240*4882a593Smuzhiyunendif 241*4882a593Smuzhiyun 242*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_JPEG2000_WITH_OPENJPEG),y) 243*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_OPENJPEG=ON 244*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += openjpeg 245*4882a593Smuzhiyunelse 246*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_OPENJPEG=OFF 247*4882a593Smuzhiyunendif 248*4882a593Smuzhiyun 249*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_FFMPEG),y) 250*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_FFMPEG=ON 251*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += ffmpeg bzip2 252*4882a593Smuzhiyunelse 253*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_FFMPEG=OFF 254*4882a593Smuzhiyunendif 255*4882a593Smuzhiyun 256*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_GSTREAMER1),y) 257*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_GSTREAMER=ON 258*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += gstreamer1 gst1-plugins-base 259*4882a593Smuzhiyunelse 260*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_GSTREAMER=OFF 261*4882a593Smuzhiyunendif 262*4882a593Smuzhiyun 263*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_GTK)$(BR2_PACKAGE_OPENCV4_WITH_GTK3),) 264*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_GTK=OFF -DWITH_GTK_2_X=OFF 265*4882a593Smuzhiyunendif 266*4882a593Smuzhiyun 267*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_GTK),y) 268*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_GTK=ON -DWITH_GTK_2_X=ON 269*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += libgtk2 270*4882a593Smuzhiyunendif 271*4882a593Smuzhiyun 272*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_GTK3),y) 273*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_GTK=ON -DWITH_GTK_2_X=OFF 274*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += libgtk3 275*4882a593Smuzhiyunendif 276*4882a593Smuzhiyun 277*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_JPEG),y) 278*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_JPEG=ON 279*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += jpeg 280*4882a593Smuzhiyunelse 281*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_JPEG=OFF 282*4882a593Smuzhiyunendif 283*4882a593Smuzhiyun 284*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_OPENGL),y) 285*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_OPENGL=ON 286*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += libgl 287*4882a593Smuzhiyunelse 288*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_OPENGL=OFF 289*4882a593Smuzhiyunendif 290*4882a593Smuzhiyun 291*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_OPENMP=$(if $(BR2_TOOLCHAIN_HAS_OPENMP),ON,OFF) 292*4882a593Smuzhiyun 293*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_PNG),y) 294*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_PNG=ON 295*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += libpng 296*4882a593Smuzhiyunelse 297*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_PNG=OFF 298*4882a593Smuzhiyunendif 299*4882a593Smuzhiyun 300*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_PROTOBUF),y) 301*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 302*4882a593Smuzhiyun -DPROTOBUF_UPDATE_FILES=ON \ 303*4882a593Smuzhiyun -DWITH_PROTOBUF=ON 304*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += protobuf 305*4882a593Smuzhiyunelse 306*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_PROTOBUF=OFF 307*4882a593Smuzhiyunendif 308*4882a593Smuzhiyun 309*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_QT5),y) 310*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_QT=5 311*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += qt5base 312*4882a593Smuzhiyunelse 313*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_QT=OFF 314*4882a593Smuzhiyunendif 315*4882a593Smuzhiyun 316*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_TIFF),y) 317*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_TIFF=ON 318*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += tiff 319*4882a593Smuzhiyunelse 320*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_TIFF=OFF 321*4882a593Smuzhiyunendif 322*4882a593Smuzhiyun 323*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_V4L),y) 324*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 325*4882a593Smuzhiyun -DWITH_LIBV4L=$(if $(BR2_PACKAGE_LIBV4L),ON,OFF) \ 326*4882a593Smuzhiyun -DWITH_V4L=ON 327*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBV4L),libv4l) 328*4882a593Smuzhiyunelse 329*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_V4L=OFF -DWITH_LIBV4L=OFF 330*4882a593Smuzhiyunendif 331*4882a593Smuzhiyun 332*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_WEBP),y) 333*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_WEBP=ON 334*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += webp 335*4882a593Smuzhiyunelse 336*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_WEBP=OFF 337*4882a593Smuzhiyunendif 338*4882a593Smuzhiyun 339*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_LIB_PYTHON),y) 340*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 341*4882a593Smuzhiyun -DBUILD_opencv_python2=OFF \ 342*4882a593Smuzhiyun -DBUILD_opencv_python3=ON \ 343*4882a593Smuzhiyun -DPYTHON3_EXECUTABLE=$(HOST_DIR)/bin/python3 \ 344*4882a593Smuzhiyun -DPYTHON3_INCLUDE_PATH=$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR) \ 345*4882a593Smuzhiyun -DPYTHON3_LIBRARIES=$(STAGING_DIR)/usr/lib/libpython$(PYTHON3_VERSION_MAJOR).so \ 346*4882a593Smuzhiyun -DPYTHON3_NUMPY_INCLUDE_DIRS=$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/core/include \ 347*4882a593Smuzhiyun -DPYTHON3_PACKAGES_PATH=/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages \ 348*4882a593Smuzhiyun -DPYTHON3_NUMPY_VERSION=$(PYTHON_NUMPY_VERSION) 349*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += python3 350*4882a593SmuzhiyunOPENCV4_KEEP_PY_FILES += usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/cv2/config*.py 351*4882a593SmuzhiyunOPENCV4_CONF_ENV += $(PKG_PYTHON_DISTUTILS_ENV) 352*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += python-numpy 353*4882a593Smuzhiyunelse 354*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \ 355*4882a593Smuzhiyun -DBUILD_opencv_python2=OFF \ 356*4882a593Smuzhiyun -DBUILD_opencv_python3=OFF 357*4882a593Smuzhiyunendif 358*4882a593Smuzhiyun 359*4882a593Smuzhiyun# Installation hooks: 360*4882a593Smuzhiyundefine OPENCV4_CLEAN_INSTALL_LICENSE 361*4882a593Smuzhiyun $(RM) -fr $(TARGET_DIR)/usr/share/licenses/opencv4 362*4882a593Smuzhiyunendef 363*4882a593SmuzhiyunOPENCV4_POST_INSTALL_TARGET_HOOKS += OPENCV4_CLEAN_INSTALL_LICENSE 364*4882a593Smuzhiyun 365*4882a593Smuzhiyundefine OPENCV4_CLEAN_INSTALL_VALGRIND 366*4882a593Smuzhiyun $(RM) -f $(TARGET_DIR)/usr/share/opencv4/valgrind* 367*4882a593Smuzhiyunendef 368*4882a593SmuzhiyunOPENCV4_POST_INSTALL_TARGET_HOOKS += OPENCV4_CLEAN_INSTALL_VALGRIND 369*4882a593Smuzhiyun 370*4882a593Smuzhiyunifneq ($(BR2_PACKAGE_OPENCV4_INSTALL_DATA),y) 371*4882a593Smuzhiyundefine OPENCV4_CLEAN_INSTALL_DATA 372*4882a593Smuzhiyun $(RM) -fr $(TARGET_DIR)/usr/share/opencv4/haarcascades \ 373*4882a593Smuzhiyun $(TARGET_DIR)/usr/share/opencv4/lbpcascades 374*4882a593Smuzhiyunendef 375*4882a593SmuzhiyunOPENCV4_POST_INSTALL_TARGET_HOOKS += OPENCV4_CLEAN_INSTALL_DATA 376*4882a593Smuzhiyunendif 377*4882a593Smuzhiyun 378*4882a593Smuzhiyun$(eval $(cmake-package)) 379