diff --git a/libs/_autotools/mlt/mlt.py b/libs/_autotools/mlt/mlt.py index cc65e754..35bafad4 100644 --- a/libs/_autotools/mlt/mlt.py +++ b/libs/_autotools/mlt/mlt.py @@ -1,51 +1,52 @@ import info class subinfo(info.infoclass): def setTargets( self ): self.description = "Open source multimedia framework" self.webpage = "https://www.mltframework.org" for ver in ['6.16.0', '6.18.0', '6.20.0']: self.targets[ ver ] = f"https://github.com/mltframework/mlt/archive/v{ver}.tar.gz" self.targetInstSrc[ ver ] = "mlt-" + ver self.targetDigests['6.16.0'] = (['9c28e54cd3ae1d43f8d0d4a24f9cee4f4b161255a3cd2aa29061fce5d46158e6'], CraftHash.HashAlgorithm.SHA256) self.targetDigests['6.18.0'] = (['9ea6775300b9f997460f5d6adde1ea41e525ecfd30a70b987e13800e4c387ddb'], CraftHash.HashAlgorithm.SHA256) self.targetDigests['6.20.0'] = (['ab211e27c06c0688f9cbe2d74dc0623624ef75ea4f94eea915cdc313196be2dd'], CraftHash.HashAlgorithm.SHA256) self.svnTargets["master"] = "https://github.com/mltframework/mlt.git" - self.patchLevel['master'] = 20200410 + self.patchLevel['master'] = 20200430 self.defaultTarget = "master" def setDependencies( self ): self.buildDependencies["dev-utils/pkg-config"] = None self.runtimeDependencies["libs/libxml2"] = None self.runtimeDependencies["libs/ffmpeg"] = None self.runtimeDependencies["libs/qt5/qtsvg"] = None self.runtimeDependencies["libs/libfftw"] = None self.runtimeDependencies["libs/libsamplerate"] = None # self.runtimeDependencies["libs/exiv2"] = None if OsUtils.isWin(): self.runtimeDependencies["libs/dlfcn-win32"] = None self.runtimeDependencies["libs/frei0r-plugins"] = None self.runtimeDependencies["libs/libsdl2"] = None self.runtimeDependencies["libs/vidstab"] = None self.runtimeDependencies["libs/rubberband"] = None + self.runtimeDependencies["libs/opencv"] = None # self.runtimeDependencies["libs/jack"] = None # self.runtimeDependencies["libs/ladspa-sdk"] = None # self.runtimeDependencies["libs/ladspa-cmt"] = None from Package.AutoToolsPackageBase import * class Package(AutoToolsPackageBase): def __init__( self, **args ): AutoToolsPackageBase.__init__( self ) self.platform = "" self.subinfo.options.configure.noDataRootDir = True self.subinfo.options.useShadowBuild = False - self.subinfo.options.configure.args = " --enable-gpl --enable-gpl3 --enable-sdl2 --disable-sdl --disable-rtaudio --disable-decklink --disable-gtk2" + self.subinfo.options.configure.args = " --enable-gpl --enable-gpl3 --enable-opencv --enable-sdl2 --disable-sdl --disable-rtaudio --disable-decklink --disable-gtk2" if CraftCore.compiler.isWindows: prefix = OsUtils.toUnixPath(CraftCore.standardDirs.craftRoot()) includedir = prefix+'/include/qt5' libdir = prefix+'/lib' self.subinfo.options.configure.args += \ f" --target-os=MinGW --qt-libdir='{libdir}' --qt-includedir='{includedir}' --disable-windeploy " diff --git a/libs/opencv-contrib/opencv-contrib.py b/libs/opencv-contrib/opencv-contrib.py new file mode 100644 index 00000000..b2ce8156 --- /dev/null +++ b/libs/opencv-contrib/opencv-contrib.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +import info + + +class subinfo(info.infoclass): + def setTargets(self): + for ver in ["4.2.0", "4.3.0"]: + self.targets[ver] = 'https://github.com/opencv/opencv_contrib/archive/' + ver + '.tar.gz' + self.targetInstSrc[ver] = 'opencv_contrib-' + ver + + self.targetDigests['4.2.0'] = (['8a6b5661611d89baa59a26eb7ccf4abb3e55d73f99bb52d8f7c32265c8a43020'], CraftHash.HashAlgorithm.SHA256) + self.targetDigests['4.3.0'] = (['acb8e89c9e7d1174e63e40532125b60d248b00e517255a98a419d415228c6a55'], CraftHash.HashAlgorithm.SHA256) + self.defaultTarget = '4.3.0' + + def setDependencies(self): + self.runtimeDependencies["virtual/base"] = None + self.runtimeDependencies["libs/opencv"] = None + + +from Package.VirtualPackageBase import * + + +class Package(SourceComponentPackageBase): + def __init__(self, **args): + SourceComponentPackageBase.__init__(self) diff --git a/libs/opencv/opencv-pkgconfig-win-install.patch b/libs/opencv/opencv-pkgconfig-win-install.patch new file mode 100644 index 00000000..eda056e8 --- /dev/null +++ b/libs/opencv/opencv-pkgconfig-win-install.patch @@ -0,0 +1,11 @@ +--- a/cmake/OpenCVGenPkgconfig.cmake 2020-05-01 12:35:26.761330100 -0700 ++++ b/cmake/OpenCVGenPkgconfig.cmake 2020-05-01 12:36:24.592119400 -0700 +@@ -103,7 +103,7 @@ + add_dependencies(developer_scripts gen-pkgconfig) + + +-if(UNIX AND NOT ANDROID) ++if(TRUE) + install(FILES ${CMAKE_BINARY_DIR}/unix-install/${OPENCV_PC_FILE_NAME} DESTINATION ${OPENCV_LIB_INSTALL_PATH}/pkgconfig COMPONENT dev) + endif() + diff --git a/libs/opencv/opencv.py b/libs/opencv/opencv.py index 6ee5c1dc..57964254 100644 --- a/libs/opencv/opencv.py +++ b/libs/opencv/opencv.py @@ -1,33 +1,50 @@ import info from Package.CMakePackageBase import * class subinfo(info.infoclass): def setTargets(self): self.description = 'a library for real time computer vision' # 4.1.2 and later are all on Github - for ver in ['4.1.2', "4.2.0"]: + for ver in ['4.1.2', '4.2.0', '4.3.0']: self.targets[ver] = 'https://github.com/opencv/opencv/archive/' + ver + '.tar.gz' self.targetInstSrc[ver] = 'opencv-' + ver + self.patchToApply['4.3.0'] = [('opencv-pkgconfig-win-install.patch', 1)] self.targetDigests['4.1.2'] = (['385dd0a9c25e67ef0dd60e022d2a2d7b17e2f36819cf3cb46aa8cdff5c5282c9'], CraftHash.HashAlgorithm.SHA256) self.targetDigests['4.2.0'] = (['9ccb2192d7e8c03c58fee07051364d94ed7599363f3b0dce1c5e6cc11c1bb0ec'], CraftHash.HashAlgorithm.SHA256) - self.defaultTarget = '4.2.0' + self.targetDigests['4.3.0'] = (['68bc40cbf47fdb8ee73dfaf0d9c6494cd095cf6294d99de445ab64cf853d278a'], CraftHash.HashAlgorithm.SHA256) + self.defaultTarget = '4.3.0' - self.options.configure.args = "-DBUILD_NEW_PYTHON_SUPPORT=OFF -DBUILD_ZLIB=OFF -DBUILD_TIFF=OFF -DBUILD_JPEG=OFF -DBUILD_PNG=OFF -DBUILD_WEBP=OFF -DBUILD_JASPER=OFF -DWITH_JASPER=OFF -DBUILD_PROTOBUF=OFF -DPROTOBUF_UPDATE_FILES=ON -DWITH_QT=5" + self.options.configure.args = ' -DBUILD_LIST=tracking,face ' \ + + ' -DBUILD_ZLIB=OFF -DBUILD_TIFF=OFF -DBUILD_JPEG=OFF -DBUILD_WEBP=OFF -DBUILD_PROTOBUF=OFF -DBUILD_NEW_PYTHON_SUPPORT=OFF ' \ + + ' -DWITH_JASPER=OFF -DWITH_PNG=OFF -DWITH_OPENEXR=OFF -DWIH_VIDEOIO=OFF -DWITH_LAPACK=OFF -DWITH_V4L=OFF ' \ + + ' -DPROTOBUF_UPDATE_FILES=ON -DWITH_QT=5 ' \ + + ' -DOPENCV_GENERATE_PKGCONFIG=ON ' \ + + ' -DCPU_BASELINE=SSE2 -DCPU_DISPATCH=SSE2 -DOPENCV_ENABLE_ALLOCATOR_STATS=OFF ' \ + + ' -DOPENCV_INSTALL_BINARIES_PREFIX="" ' + # /!\ On openSuse, pkg-config is created in lib64/ instead of lib/ def setDependencies(self): self.runtimeDependencies["virtual/base"] = None self.runtimeDependencies["libs/zlib"] = None self.runtimeDependencies["libs/tiff"] = None self.runtimeDependencies["libs/libjpeg-turbo"] = None - self.runtimeDependencies["libs/libpng"] = None self.runtimeDependencies["libs/webp"] = None self.runtimeDependencies["libs/protobuf"] = None self.runtimeDependencies["libs/ffmpeg"] = None self.runtimeDependencies["libs/qt5/qtbase"] = None class Package(CMakePackageBase): def __init__(self, **args): CMakePackageBase.__init__(self) + self.contrib = CraftPackageObject.get('libs/opencv-contrib').instance + self.subinfo.options.configure.args += ' -DOPENCV_EXTRA_MODULES_PATH="' \ + + OsUtils.toUnixPath(self.contrib.sourceDir()) + '/modules"' + + def fetch(self): + return CMakePackageBase.fetch(self) and self.contrib.fetch(noop=False) + + def unpack(self): + return CMakePackageBase.unpack(self) and self.contrib.unpack(noop=False)