diff --git a/media-libs/opencv/opencv-3.4.1.recipe b/media-libs/opencv/opencv-3.4.1.recipe index b6ca1aa4d..c06f85df1 100644 --- a/media-libs/opencv/opencv-3.4.1.recipe +++ b/media-libs/opencv/opencv-3.4.1.recipe @@ -183,6 +183,11 @@ BUILD() { mkdir -p build_haiku && cd build_haiku + local OPENBLAS_SUBDIR= + if [ -n "$secondaryArchSuffix" ]; then + OPENBLAS_SUBDIR="$secondaryArchSuffix/" + fi + cmake .. \ -DWITH_GDAL=ON \ -DWITH_IPP=OFF \ @@ -193,7 +198,9 @@ BUILD() -DENABLE_BUILD_HARDENING=OFF \ -DCMAKE_SKIP_RPATH=ON \ -DENABLE_PIC=OFF \ - -DCMAKE_INSTALL_PREFIX:PATH=$prefix + -DCMAKE_INSTALL_PREFIX:PATH=$prefix \ + -DOpenBLAS_INCLUDE_DIR="$portPackageLinksDir/openblas${secondaryArchSuffix}_devel/develop/headers$OPENBLAS_SUBDIR" \ + -DOpenBLAS_LIB="$portPackageLinksDir/openblas${secondaryArchSuffix}_devel/develop/lib$OPENBLAS_SUBDIR" make $jobArgs } diff --git a/media-libs/opencv/opencv342-3.4.2.recipe b/media-libs/opencv/opencv342-3.4.2.recipe new file mode 100644 index 000000000..b54943098 --- /dev/null +++ b/media-libs/opencv/opencv342-3.4.2.recipe @@ -0,0 +1,271 @@ +SUMMARY="Open Source Computer Vision Library" +DESCRIPTION="A collection of algorithms and sample code for various \ +computer vision problems." +HOMEPAGE="https://opencv.org/" +COPYRIGHT="2000-2016, Intel Corporation + 2009-2011, Willow Garage Inc. + 2009-2016, NVIDIA Corporation + 2010-2013, Advanced Micro Devices, Inc. + 2015-2016, OpenCV Foundation + 2015-2016, Itseez Inc." +LICENSE="BSD (3-clause)" +REVISION="1" +SOURCE_URI="https://github.com/opencv/opencv/archive/$portVersion.tar.gz" +SOURCE_FILENAME="opencv-$portVersion.tar.gz" +CHECKSUM_SHA256="81dbd5e7e9f8a4c936b94629bf4765745942a1d634ae38ec08bc57b73b28ffc5" +SOURCE_DIR="opencv-$portVersion" + +ARCHITECTURES="?x86 x86_64" +SECONDARY_ARCHITECTURES="?x86" + +# On x86_gcc2 we don't want to install the commands in bin//, but in bin/. +commandSuffix=$secondaryArchSuffix +if [ "$targetArchitecture" = x86_gcc2 ]; then + commandSuffix= +fi + +portVersionCompat="$portVersion compat >= ${portVersion%%.*}" +libVersion="$portVersion" +libVersionCompat="$libVersion compat >= ${libVersion%%.*}" + +PROVIDES=" + opencv342$secondaryArchSuffix = $portVersionCompat + cmd:opencv_annotation$commandSuffix = $portVersion + cmd:opencv_createsamples$commandSuffix = $portVersion + cmd:opencv_interactive_calibration$commandSuffix = $portVersion + cmd:opencv_traincascade$commandSuffix = $portVersion + cmd:opencv_version$commandSuffix = $portVersion + cmd:opencv_visualisation$commandSuffix = $portVersion + lib:libopencv_calib3d$secondaryArchSuffix = $libVersionCompat + lib:libopencv_core$secondaryArchSuffix = $libVersionCompat + lib:libopencv_dnn$secondaryArchSuffix = $libVersionCompat + lib:libopencv_features2d$secondaryArchSuffix = $libVersionCompat + lib:libopencv_flann$secondaryArchSuffix = $libVersionCompat + lib:libopencv_highgui$secondaryArchSuffix = $libVersionCompat + lib:libopencv_imgcodecs$secondaryArchSuffix = $libVersionCompat + lib:libopencv_imgproc$secondaryArchSuffix = $libVersionCompat + lib:libopencv_ml$secondaryArchSuffix = $libVersionCompat + lib:libopencv_objdetect$secondaryArchSuffix = $libVersionCompat + lib:libopencv_photo$secondaryArchSuffix = $libVersionCompat + lib:libopencv_shape$secondaryArchSuffix = $libVersionCompat + lib:libopencv_stitching$secondaryArchSuffix = $libVersionCompat + lib:libopencv_superres$secondaryArchSuffix = $libVersionCompat + lib:libopencv_video$secondaryArchSuffix = $libVersionCompat + lib:libopencv_videoio$secondaryArchSuffix = $libVersionCompat + lib:libopencv_videostab$secondaryArchSuffix = $libVersionCompat + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libavcodec$secondaryArchSuffix + lib:libavformat$secondaryArchSuffix + lib:libavresample$secondaryArchSuffix + lib:libavutil$secondaryArchSuffix + lib:libgdal$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libglib_2.0$secondaryArchSuffix + lib:libGLU$secondaryArchSuffix + lib:libgphoto2$secondaryArchSuffix + lib:libgstapp_1.0$secondaryArchSuffix + lib:libgstreamer_1.0$secondaryArchSuffix + lib:libgstvideo_1.0$secondaryArchSuffix + lib:libilmimf$secondaryArchSuffix #openexr + lib:libintl$secondaryArchSuffix + lib:libjasper$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:liblapack$secondaryArchSuffix + lib:libopenblas$secondaryArchSuffix + lib:libpng16$secondaryArchSuffix + lib:libQt5Concurrent$secondaryArchSuffix + lib:libQt5Core$secondaryArchSuffix + lib:libQt5Gui$secondaryArchSuffix + lib:libQt5Test$secondaryArchSuffix + lib:libQt5Widgets$secondaryArchSuffix + lib:libswscale$secondaryArchSuffix + lib:libtiff$secondaryArchSuffix + lib:libwebp$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +PROVIDES_devel=" + opencv342${secondaryArchSuffix}_devel = $portVersionCompat + devel:libopencv_calib3d$secondaryArchSuffix = $libVersionCompat + devel:libopencv_core$secondaryArchSuffix = $libVersionCompat + devel:libopencv_dnn$secondaryArchSuffix = $libVersionCompat + devel:libopencv_features2d$secondaryArchSuffix = $libVersionCompat + devel:libopencv_flann$secondaryArchSuffix = $libVersionCompat + devel:libopencv_highgui$secondaryArchSuffix = $libVersionCompat + devel:libopencv_imgcodecs$secondaryArchSuffix = $libVersionCompat + devel:libopencv_imgproc$secondaryArchSuffix = $libVersionCompat + devel:libopencv_ml$secondaryArchSuffix = $libVersionCompat + devel:libopencv_objdetect$secondaryArchSuffix = $libVersionCompat + devel:libopencv_photo$secondaryArchSuffix = $libVersionCompat + devel:libopencv_shape$secondaryArchSuffix = $libVersionCompat + devel:libopencv_stitching$secondaryArchSuffix = $libVersionCompat + devel:libopencv_superres$secondaryArchSuffix = $libVersionCompat + devel:libopencv_video$secondaryArchSuffix = $libVersionCompat + devel:libopencv_videoio$secondaryArchSuffix = $libVersionCompat + devel:libopencv_videostab$secondaryArchSuffix = $libVersionCompat + " +REQUIRES_devel=" + opencv342$secondaryArchSuffix == $portVersion base + " +CONFLICTS_devel=" + opencv${secondaryArchSuffix}_devel + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:eigen$secondaryArchSuffix + devel:libavcodec$secondaryArchSuffix + devel:libavformat$secondaryArchSuffix + devel:libavresample$secondaryArchSuffix + devel:libavutil$secondaryArchSuffix + devel:libexif$secondaryArchSuffix + devel:libgdal$secondaryArchSuffix + devel:libGL$secondaryArchSuffix + devel:libglib_2.0$secondaryArchSuffix + devel:libGLU$secondaryArchSuffix + devel:libgphoto2$secondaryArchSuffix + devel:libgstapp_1.0$secondaryArchSuffix + devel:libgstreamer_1.0$secondaryArchSuffix + devel:libgstvideo_1.0$secondaryArchSuffix + devel:libilmimf$secondaryArchSuffix #openexr + devel:libintl$secondaryArchSuffix + devel:libjasper$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:liblapack$secondaryArchSuffix + devel:libopenblas$secondaryArchSuffix + devel:libopencl_headers$secondaryArchSuffix + devel:liborc_0.4$secondaryArchSuffix + devel:libpng16$secondaryArchSuffix + devel:libQt5Concurrent$secondaryArchSuffix + devel:libQt5Core$secondaryArchSuffix + devel:libQt5Gui$secondaryArchSuffix + devel:libQt5Test$secondaryArchSuffix + devel:libQt5Widgets$secondaryArchSuffix + devel:libswscale$secondaryArchSuffix + devel:libtiff$secondaryArchSuffix + devel:libwebp$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" +# cmd:ant + cmd:cmake + cmd:doxygen + cmd:f2py2 + cmd:f2py3 + cmd:gcc$secondaryArchSuffix +# cmd:javac +# cmd:jni + cmd:ld$secondaryArchSuffix + cmd:make +# cmd:matlab # maybe later + cmd:pkg_config$secondaryArchSuffix + cmd:python2 + cmd:python3 + " + +defineDebugInfoPackage opencv342$secondaryArchSuffix \ + $libDir/libopencv_calib3d.so.$libVersion \ + $libDir/libopencv_core.so.$libVersion \ + $libDir/libopencv_dnn.so.$libVersion \ + $libDir/libopencv_features2d.so.$libVersion \ + $libDir/libopencv_flann.so.$libVersion \ + $libDir/libopencv_highgui.so.$libVersion \ + $libDir/libopencv_imgcodecs.so.$libVersion \ + $libDir/libopencv_imgproc.so.$libVersion \ + $libDir/libopencv_ml.so.$libVersion \ + $libDir/libopencv_objdetect.so.$libVersion \ + $libDir/libopencv_photo.so.$libVersion \ + $libDir/libopencv_shape.so.$libVersion \ + $libDir/libopencv_stitching.so.$libVersion \ + $libDir/libopencv_superres.so.$libVersion \ + $libDir/libopencv_video.so.$libVersion \ + $libDir/libopencv_videoio.so.$libVersion \ + $libDir/libopencv_videostab.so.$libVersion + +BUILD() +{ + mkdir -p build_haiku && cd build_haiku + + local OPENBLAS_SUBDIR= + if [ -n "$secondaryArchSuffix" ]; then + OPENBLAS_SUBDIR="$secondaryArchSuffix/" + fi + + cmake .. \ + -DWITH_GDAL=ON \ + -DWITH_IPP=OFF \ + -DWITH_OPENGL=OFF \ + -DWITH_QT=ON \ + -DWITH_EIGEN=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_SKIP_RPATH=ON \ + -DENABLE_PIC=OFF \ + -DCMAKE_INSTALL_PREFIX:PATH=$prefix \ + -DOpenBLAS_INCLUDE_DIR="$portPackageLinksDir/openblas${secondaryArchSuffix}_devel/develop/headers$OPENBLAS_SUBDIR" \ + -DOpenBLAS_LIB="$portPackageLinksDir/openblas${secondaryArchSuffix}_devel/develop/lib$OPENBLAS_SUBDIR" + + make $jobArgs +} + +INSTALL() +{ + cd build_haiku + + make install + + mkdir -p $developDir $dataDir + mv $prefix/include $includeDir + mv $prefix/share/* $dataDir + rmdir $prefix/share + + mkdir -p $libDir/cmake/OpenCV + mv $dataDir/OpenCV/*.cmake $libDir/cmake/OpenCV/ + + prepareInstalledDevelLibs libopencv_calib3d \ + libopencv_core \ + libopencv_dnn \ + libopencv_features2d \ + libopencv_flann \ + libopencv_highgui \ + libopencv_imgcodecs \ + libopencv_imgproc \ + libopencv_ml \ + libopencv_objdetect \ + libopencv_photo \ + libopencv_shape \ + libopencv_stitching \ + libopencv_superres \ + libopencv_video \ + libopencv_videoio \ + libopencv_videostab + + # Cleanup + # fixPkgconfig don't know about this variables + sed -i 's,^includedir_old=\(.*\),includedir_old=${prefix}/'${relativeIncludeDir}'/opencv,' \ + $libDir/pkgconfig/opencv.pc + sed -i 's,^includedir_new=\(.*\),includedir_new=${prefix}/'${relativeIncludeDir}',' \ + $libDir/pkgconfig/opencv.pc + + fixPkgconfig + + # fixCmake + sed -i 's,\/include,/'${relativeIncludeDir}',g' \ + $libDir/cmake/OpenCV/OpenCVConfig.cmake + sed -i 's|/\.\./\.\./|&../|g' \ + $libDir/cmake/OpenCV/OpenCVConfig.cmake + sed -i 's,\/lib\/,\/,g' \ + $libDir/cmake/OpenCV/OpenCVModules-release.cmake + + # devel package + packageEntries devel \ + $developDir \ + $libDir/cmake +} + +TEST() +{ + LIBRARY_PATH="$sourceDir/build_haiku/lib${LIBRARY_PATH:+:$LIBRARY_PATH}" \ + make -C build_haiku test $jobArgs +}