1PORTNAME= opencv 2DISTVERSION= 4.13.0 3CATEGORIES= graphics 4 5MAINTAINER= ports@MidnightBSD.org 6COMMENT= Open Source Computer Vision library 7WWW= https://www.opencv.org/ 8 9LICENSE= bsd3 10LICENSE_FILE= ${WRKSRC}/LICENSE 11 12LIB_DEPENDS= libfreetype.so:print/freetype2 \ 13 libharfbuzz.so:print/harfbuzz \ 14 libhdf5.so:science/hdf5 15 16USES= cmake compiler:c++14-lang cpe gnome localbase:ldflags pkgconfig 17USE_GITHUB= yes 18GH_PROJECT= ade:ade opencv_3rdparty:ippicv opencv_contrib:contrib 19GH_TAGNAME= 7f55c0c26be418d494615afca15218566775c725:ippicv v0.1.2e:ade 20USE_LDCONFIG= yes 21 22CMAKE_ARGS= -DOPENCV_EXTRA_MODULES_PATH="${WRKSRC}/contrib/modules" 23CMAKE_ON= OPENCV_GENERATE_PKGCONFIG OPENCV_SKIP_CMAKE_CXX_STANDARD 24CMAKE_OFF= BUILD_opencv_python2 BUILD_TESTS OPENCV_GENERATE_SETUPVARS WITH_KLEIDICV 25 26DATADIR= ${PREFIX}/share/${PORTNAME}4 27 28PLIST_SUB= SHLIB_VER=${DISTVERSION} SHORTVERSION=${DISTVERSION:R:S/.//g} 29 30OPTIONS_DEFINE= EIGEN GDAL GDCM HARDENING JAVA LTO OPENCL \ 31 PATENTED PROTOBUF PYTHON TBB TESSERACT 32OPTIONS_GROUP= GUI IMAGE VIDEO 33OPTIONS_GROUP_GUI= GTK3 VTK 34OPTIONS_GROUP_IMAGE= AVIF GPHOTO2 JPEG OPENEXR PNG TIFF 35OPTIONS_GROUP_VIDEO= DC1394 FFMPEG GSTREAMER V4L VULKAN WEBP XINE 36 37OPTIONS_SINGLE= BLAS 38OPTIONS_SINGLE_BLAS= ATLAS OPENBLAS NOBLAS 39 40OPTIONS_RADIO= JPEG2K 41OPTIONS_RADIO_JPEG2K= JASPER OPENJPEG 42 43OPTIONS_DEFAULT= EIGEN GDAL GDCM OPENCL PROTOBUF PYTHON \ 44 DC1394 GSTREAMER V4L VULKAN WEBP \ 45 GPHOTO2 JPEG OPENEXR PNG TIFF \ 46 OPENBLAS \ 47 OPENJPEG 48OPTIONS_SUB= yes 49 50# Normal options 51EIGEN_DESC= Add Eigen v3 Support, builds sfm modules 52EIGEN_CMAKE_BOOL= WITH_EIGEN 53EIGEN_LIB_DEPENDS= libgflags.so:devel/gflags \ 54 libglog.so:devel/glog 55EIGEN_USES= eigen:3 56 57GDAL_DESC= Add Geospatial Data Abstraction Library Support 58GDAL_CMAKE_BOOL= WITH_GDAL 59GDAL_LIB_DEPENDS= libgdal.so:graphics/gdal 60 61GDCM_DESC= Add Open source DICOM library Support 62GDCM_CMAKE_BOOL= WITH_GDCM 63GDCM_LIB_DEPENDS= libgdcmMSFF.so:devel/gdcm 64 65HARDENING_DESC= Enables Build Hardening 66HARDENING_CMAKE_BOOL= ENABLE_BUILD_HARDENING 67 68JAVA_DESC= Enable Java Support 69JAVA_BUILD_DEPENDS= ant:devel/apache-ant 70JAVA_CMAKE_BOOL= BUILD_JAVA BUILD_opencv_java \ 71 BUILD_opencv_java_bindings_generator 72JAVA_MAKE_ENV= JAVACMD=${JAVA} 73JAVA_USE= JAVA=yes 74 75LTO_DESC= Enables Link Time Optimizations 76LTO_CMAKE_BOOL= ENABLE_THIN_LTO 77 78OPENCL_DESC= Add OpenCL Support 79OPENCL_CMAKE_BOOL= WITH_OPENCL 80OPENCL_BUILD_DEPENDS= opencl>=0:devel/opencl 81OPENCL_RUN_DEPENDS= opencl>=0:devel/opencl 82 83PATENTED_DESC= Enable patented 2d feature detection USE AT OWN RISK 84PATENTED_CMAKE_BOOL= OPENCV_ENABLE_NONFREE 85 86PROTOBUF_DESC= Enable protobuf support, builds dnn modules 87PROTOBUF_CMAKE_BOOL= WITH_PROTOBUF 88 89PYTHON_DESC= Enable Python Support 3.6 or greater 90PYTHON_BUILD_DEPENDS= ${PYNUMPY} 91PYTHON_RUN_DEPENDS= ${PYNUMPY} 92PYTHON_USES= python 93PYTHON_CMAKE_BOOL= BUILD_opencv_python3 94PYTHON_CMAKE_ON= -DOPENCV_PYTHON3_INSTALL_PATH=${PYTHON_SITELIBDIR} 95 96TBB_DESC= Add Intel Threading Building Blocks Support 97TBB_CMAKE_BOOL= WITH_TBB 98TBB_LIB_DEPENDS= libtbb.so:devel/onetbb 99 100TESSERACT_DESC= Add Tesseract-based OCR 101TESSERACT_LIB_DEPENDS= libtesseract.so:graphics/tesseract 102TESSERACT_CMAKE_BOOL= WITH_TESSERACT 103### 104 105# GUI group options 106GTK3_USE= GNOME=cairo,gdkpixbuf,gtk30 107GTK3_CMAKE_BOOL= WITH_GTK 108 109VTK_DESC= Include VTK library support (build opencv_viz module) 110VTK_CMAKE_BOOL= WITH_VTK 111VTK_LIB_DEPENDS= libvtkCommonCore-${VTK_VER}.so:math/vtk${VTK_VER:R} 112VTK_USES= qt:5 113VTK_USE= QT=buildtools:build,qmake:build 114### 115 116# IMAGE group options 117AVIF_LIB_DEPENDS= libavif.so:graphics/libavif 118AVIF_CMAKE_BOOL= WITH_AVIF 119 120GPHOTO2_DESC= Add Gphoto2 Support 121GPHOTO2_CMAKE_BOOL= WITH_GPHOTO2 122GPHOTO2_LIB_DEPENDS= libgphoto2.so:graphics/libgphoto2 123 124JPEG_DESC= Add LibJpeg Support 125JPEG_CMAKE_BOOL= WITH_JPEG 126JPEG_USES= jpeg 127 128OPENEXR_DESC= Add OpenEXR Support 129OPENEXR_CMAKE_BOOL= WITH_OPENEXR 130OPENEXR_LIB_DEPENDS= libOpenEXR.so:graphics/openexr 131 132PNG_DESC= Add LibPNG Support 133PNG_CMAKE_BOOL= WITH_PNG 134PNG_LIB_DEPENDS= libpng16.so:graphics/png 135 136TIFF_DESC= Add LibTIFF Support 137TIFF_CMAKE_BOOL= WITH_TIFF 138TIFF_LIB_DEPENDS= libtiff.so:graphics/tiff 139### 140 141# VIDEO group options 142DC1394_DESC= IEEE 1394 camera support 143DC1394_CMAKE_BOOL= WITH_1394 144DC1394_LIB_DEPENDS= libdc1394.so:multimedia/libdc1394 145 146FFMPEG_DESC= Link with ffmpeg 147FFMPEG_CMAKE_BOOL= WITH_FFMPEG 148FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg 149 150GSTREAMER_DESC= Add GSTREAMER Support 151GSTREAMER_CMAKE_BOOL= WITH_GSTREAMER 152GSTREAMER_USES= gstreamer 153GSTREAMER_USE= GNOME=glib20 154 155V4L_DESC= Enable support for Video for Linux 156V4L_CMAKE_BOOL= WITH_V4L WITH_LIBV4L 157V4L_BUILD_DEPENDS= ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat 158V4L_LIB_DEPENDS= libv4l2.so:multimedia/libv4l 159 160VULKAN_DESC= Add Vulkan Support 161VULKAN_CMAKE_BOOL= WITH_VULKAN 162VULKAN_CMAKE_ON= -DVULKAN_INCLUDE_DIRS=${LOCALBASE}/include 163VULKAN_BUILD_DEPENDS= vulkan-headers>0:graphics/vulkan-headers 164 165WEBP_DESC= Add Webp Support 166WEBP_CMAKE_BOOL= WITH_WEBP 167WEBP_LIB_DEPENDS= libwebp.so:graphics/webp 168 169XINE_DESC= Add Xine Support 170XINE_CMAKE_BOOL= WITH_XINE 171XINE_LIB_DEPENDS= libxine.so:multimedia/libxine 172### 173 174# BLAS group options 175ATLAS_DESC= ATLAS blas implementation with lapacke 176ATLAS_USES= blaslapack:atlas 177ATLAS_BUILD_DEPENDS= cblas>0:math/cblas \ 178 lapacke>0:math/lapacke 179 180OPENBLAS_DESC= OpenBLAS blas implementation with lapacke 181OPENBLAS_USES= blaslapack:openblas 182OPENBLAS_BUILD_DEPENDS= cblas>0:math/cblas \ 183 lapacke>0:math/lapacke 184 185NOBLAS_DESC= Disable support for lapack/blas 186NOBLAS_CMAKE_BOOL_OFF= WITH_LAPACK 187### 188 189# JPEG2K group options 190JASPER_DESC= Add Jasper Support for JPEG2000 191JASPER_CMAKE_BOOL= WITH_JASPER 192JASPER_LIB_DEPENDS= libjasper.so:graphics/jasper 193 194OPENJPEG_DESC= Add OpenJPEG Support for JPEG2000, OpenCV preferred 195OPENJPEG_CMAKE_BOOL= WITH_OPENJPEG 196OPENJPEG_LIB_DEPENDS= libopenjp2.so:graphics/openjpeg 197### 198 199_IPPICV_amd64= ippicv/ippicv_2021.12.0_lnx_intel64_20240425_general.tgz 200_IPPICV_i386= ippicv/ippicv_2021.12.0_lnx_ia32_20240425_general.tgz 201 202.include <bsd.mport.options.mk> 203 204post-extract: 205 # Handle contrib 206 ${MV} ${WRKSRC_contrib} ${WRKSRC}/contrib 207 # Handle prefetched ade module 208 ${MKDIR} ${BUILD_WRKSRC}/3rdparty/ade 209 ${MV} ${WRKSRC_ade} ${BUILD_WRKSRC}/3rdparty/ade 210 # Handle ippicv 211.if defined(_IPPICV_${ARCH}) 212 ${MKDIR} ${BUILD_WRKSRC}/3rdparty/ippicv 213 (cd ${BUILD_WRKSRC}/3rdparty/ippicv && \ 214 ${EXTRACT_CMD} -xf ${WRKSRC_ippicv}/${_IPPICV_${ARCH}}) 215.endif 216 217post-patch: 218 ${REINPLACE_CMD} -e 's|/usr/lib/atlas-base|${LOCALBASE}/lib|g' \ 219 ${WRKSRC}/cmake/OpenCVFindAtlas.cmake 220 ${REINPLACE_CMD} -e 's|/usr/include/atlas|${LOCALBASE}/include|g' \ 221 ${WRKSRC}/cmake/OpenCVFindAtlas.cmake 222 223.include <../../math/vtk9/Makefile.version> 224.include <bsd.port.mk> 225