diff --git a/libs/qtav/0002-Fix-install-prefix.patch b/libs/qtav/0002-Fix-install-prefix.patch --- a/libs/qtav/0002-Fix-install-prefix.patch +++ b/libs/qtav/0002-Fix-install-prefix.patch @@ -1,15 +1,23 @@ ---- QtAV-1.13.0.orig/deploy.pri 2019-07-11 02:58:59.000000000 +0200 -+++ QtAV-1.13.0/deploy.pri 2020-03-07 22:09:04.017438326 +0100 -@@ -4,7 +4,7 @@ +commit 039be0bcb41be4b2311d3d16c54ecfe519ed02ab +Author: Mladen Milinkovic +Date: Mon Mar 9 11:58:11 2020 +0100 + + Fix make install with alernate root path + +diff --git a/deploy.pri b/deploy.pri +index 3abbde99..0efa9ea4 100644 +--- a/deploy.pri ++++ b/deploy.pri +@@ -4,7 +4,7 @@ INSTALL_PREFIX = /usr/local share.files = $$PROJECTROOT/qtc_packaging/common/changelog \ $$PROJECTROOT/qtc_packaging/common/copyright \ $$PROJECTROOT/qtc_packaging/common/README -share.path = /usr/share/doc/$${TARGET} +share.path = $$[QT_INSTALL_PREFIX]/share/doc/$${TARGET} isEqual(TEMPLATE, app) { unix:!symbian { -@@ -12,22 +12,22 @@ +@@ -12,22 +12,22 @@ isEqual(TEMPLATE, app) { DEFINES += CACHE_APPDIR INSTALL_PREFIX = /opt/$${TARGET} desktopfile.files = $$PROJECTROOT/qtc_packaging/debian_harmattan/$${TARGET}.desktop @@ -38,9 +46,11 @@ #debian.files = $$PROJECTROOT/qtc_packaging/generic/control } INSTALLS += desktopfile icon ---- QtAV-1.13.0.orig/examples/QMLPlayer/qtquick2applicationviewer/qtquick2applicationviewer.pri 2019-07-11 02:58:59.000000000 +0200 -+++ QtAV-1.13.0/examples/QMLPlayer/qtquick2applicationviewer/qtquick2applicationviewer.pri 2020-03-07 22:09:17.683949493 +0100 -@@ -104,14 +104,14 @@ +diff --git a/examples/QMLPlayer/qtquick2applicationviewer/qtquick2applicationviewer.pri b/examples/QMLPlayer/qtquick2applicationviewer/qtquick2applicationviewer.pri +index e5f7990f..47a18892 100644 +--- a/examples/QMLPlayer/qtquick2applicationviewer/qtquick2applicationviewer.pri ++++ b/examples/QMLPlayer/qtquick2applicationviewer/qtquick2applicationviewer.pri +@@ -104,14 +104,14 @@ android-no-sdk { } else:unix { maemo5 { desktopfile.files = $${TARGET}.desktop @@ -59,9 +69,11 @@ } else { # Assumed to be a Desktop Unix copyCommand = for(deploymentfolder, DEPLOYMENTFOLDERS) { ---- QtAV-1.13.0.orig/src/libQtAV.pro 2019-07-11 02:58:59.000000000 +0200 -+++ QtAV-1.13.0/src/libQtAV.pro 2020-03-07 22:08:44.940988729 +0100 -@@ -621,7 +621,7 @@ +diff --git a/src/libQtAV.pro b/src/libQtAV.pro +index 8e49668c..8361f628 100644 +--- a/src/libQtAV.pro ++++ b/src/libQtAV.pro +@@ -621,7 +621,7 @@ mac { unix:!mac:!cross_compile { icon.files = $$PWD/$${TARGET}.svg diff --git a/libs/qtav/0004-cmake-fixes.patch b/libs/qtav/0004-cmake-fixes.patch new file mode 100644 --- /dev/null +++ b/libs/qtav/0004-cmake-fixes.patch @@ -0,0 +1,161 @@ +commit 00048c3f7c405a986cb6c5781349d1db3be2ea5d +Author: Casper Meijn +Date: Sat Jun 15 20:33:13 2019 +0200 + + cmake: fix capi logic for Android EGL + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 1d93427a..7781fd63 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -326,13 +326,13 @@ if(HAVE_OPENGL) + endif() + endif() + +-if(HAVE_EGL) ++if(HAVE_EGL AND HAVE_CAPI) + list(APPEND SOURCES capi/egl_api.cpp) + # TODO: X11Extras + if(DEFINED Qt5Gui_EGL_INCLUDE_DIRS) # ANGLE + list(APPEND EXTRA_INCLUDE ${Qt5Gui_EGL_INCLUDE_DIRS}) + #list(APPEND EXTRA_DEFS -DQTAV_HAVE_QT_EGL=1) +- if(HAVE_CAPI AND NOT IOS) ++ if(NOT IOS) + list(APPEND EXTRA_DEFS -DQTAV_HAVE_EGL_CAPI=1) + if(WindowsPhone OR WindowsStore) + list(APPEND EXTRA_DEFS -DCAPI_LINK_EGL) + +commit d4ca5dfe5d2482968624be4c807ad3967be60347 +Author: Casper Meijn +Date: Sat Jun 15 16:44:53 2019 +0200 + + cmake: Use pkg-config for finding libav libraries + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index db84dbf8..1d93427a 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -12,6 +12,8 @@ INCLUDE(CheckTypeSize) + include_directories(${QTDIR}/include) #TODO: remove. use external/include + get_filename_component(QTDIR "${QTDIR}" ABSOLUTE) + ++find_package(PkgConfig) ++ + list(APPEND EXTRA_INCLUDE ${QTAV_SOURCE_DIR}/external/include) + list(APPEND EXTRA_LIBS ${CMAKE_LIBRARY_PATH_FLAG}${QTAV_SOURCE_DIR}/external/lib) + if(APPLE) +@@ -28,39 +30,56 @@ if(EXISTS ${QTAV_SOURCE_DIR}/contrib/capi/capi.h) + list(APPEND EXTRA_DEFS -DQTAV_HAVE_CAPI=1) + endif() + +-# check ffmpeg headers. assume libs exist. lib order matters if they are static +-set(AVMODULES avformat avcodec swscale avutil) # avdevice avfilter avresample swscale) +-# CMAKE_FIND_ROOT_PATH_BOTH: ensure find_file can search from given paths for cross compiling, may be set to ONLY in toolchain file +-foreach(av ${AVMODULES}) +- string(TOUPPER ${av} AV) +- find_file(HAVE_${AV} lib${av}/${av}.h HINTS ${EXTRA_INCLUDE} PATHS ${EXTRA_INCLUDE} CMAKE_FIND_ROOT_PATH_BOTH) +- message("HAVE_${AV}: ${HAVE_${AV}}") +- if(NOT ${HAVE_${AV}} MATCHES HAVE_${AV}-NOTFOUND) +- set(HAVE_${AV} 1) +- list(APPEND EXTRA_LIBS ${av}) +- list(APPEND EXTRA_DEFS "-DQTAV_HAVE_${AV}=1") +- else() +- message(FATAL_ERROR "${av} is required") +- endif() +- #check_include_file(lib${av}/${av}.h HAVE_${AV}) # -D__STDC_CONSTANT_MACROS is required! +-endforeach() ++pkg_check_modules (AVFORMAT libavformat REQUIRED) ++if(${AVFORMAT_FOUND}) ++ list(APPEND PKG_CONFIG_MODULES AVFORMAT) ++ message("Found AVFORMAT: ${AVFORMAT_LINK_LIBRARIES}") ++endif() + +-foreach(av avfilter avdevice avresample swresample) +- string(TOUPPER ${av} AV) +- find_file(HAVE_${AV} lib${av}/${av}.h HINTS ${EXTRA_INCLUDE} PATHS ${EXTRA_INCLUDE} CMAKE_FIND_ROOT_PATH_BOTH) +- message("HAVE_${AV}: ${HAVE_${AV}}") +- if(NOT ${HAVE_${AV}} MATCHES HAVE_${AV}-NOTFOUND) +- set(HAVE_${AV} 1) +- list(APPEND EXTRA_LIBS ${av}) +- list(APPEND EXTRA_DEFS "-DQTAV_HAVE_${AV}=1") +- list(APPEND AVMODULES ${av}) +- endif() +-endforeach() ++pkg_check_modules (AVCODEC libavcodec REQUIRED) ++if(${AVCODEC_FOUND}) ++ list(APPEND PKG_CONFIG_MODULES AVCODEC) ++ message("Found AVCODEC: ${AVCODEC_LINK_LIBRARIES}") ++endif() ++ ++pkg_check_modules (SWSCALE libswscale REQUIRED) ++if(${SWSCALE_FOUND}) ++ list(APPEND PKG_CONFIG_MODULES SWSCALE) ++ message("Found SWSCALE: ${SWSCALE_LINK_LIBRARIES}") ++endif() ++ ++pkg_check_modules (AVUTIL libavutil REQUIRED) ++if(${AVUTIL_FOUND}) ++ list(APPEND PKG_CONFIG_MODULES AVUTIL) ++ message("Found AVUTIL: ${AVUTIL_LINK_LIBRARIES}") ++endif() + +-if (NOT HAVE_SWRESAMPLE) +- if (NOT HAVE_AVRESAMPLE) ++pkg_check_modules (AVFILTER libavfilter) ++if(${AVFILTER_FOUND}) ++ list(APPEND PKG_CONFIG_MODULES AVFILTER) ++ message("Found AVFILTER: ${AVFILTER_LINK_LIBRARIES}") ++endif() ++ ++pkg_check_modules (AVDEVICE libavdevice) ++if(${AVDEVICE_FOUND}) ++ list(APPEND PKG_CONFIG_MODULES AVDEVICE) ++ message("Found AVDEVICE: ${AVDEVICE_LINK_LIBRARIES}") ++endif() ++ ++pkg_check_modules (AVRESAMPLE libavresample) ++if(${AVRESAMPLE_FOUND}) ++ list(APPEND PKG_CONFIG_MODULES AVRESAMPLE) ++ message("Found AVRESAMPLE: ${AVRESAMPLE_LINK_LIBRARIES}") ++endif() ++ ++pkg_check_modules (SWRESAMPLE libswresample) ++if(${SWRESAMPLE_FOUND}) ++ list(APPEND PKG_CONFIG_MODULES SWRESAMPLE) ++ message("Found SWRESAMPLE: ${SWRESAMPLE_LINK_LIBRARIES}") ++endif() ++ ++if (NOT AVRESAMPLE_FOUND AND NOT SWRESAMPLE_FOUND) + message(FATAL_ERROR "swresample or avresample is required") +- endif() + endif() + + list(APPEND EXTRA_DEFS -DBUILD_QTAV_LIB -D__STDC_CONSTANT_MACROS) +@@ -178,10 +197,10 @@ foreach (D ${DEP_H}) + endif() + endforeach() + +-if (HAVE_AVRESAMPLE) ++if (AVRESAMPLE_FOUND) + list(APPEND SOURCES AudioResamplerLibav.cpp) + endif() +-if (HAVE_SWRESAMPLE) ++if (SWRESAMPLE_FOUND) + list(APPEND SOURCES AudioResamplerFF.cpp) + endif() + +@@ -484,6 +503,14 @@ target_link_libraries(${MODULE} + LINK_PRIVATE ${EXTRA_LIBS} + LINK_PUBLIC Qt5::Core Qt5::Gui # will add include dirs, macros etc. + ) ++ ++foreach(PKG_CONFIG_MODULE ${PKG_CONFIG_MODULES}) ++ target_link_libraries(${MODULE} PRIVATE ${${PKG_CONFIG_MODULE}_LINK_LIBRARIES}) ++ target_include_directories(${MODULE} PRIVATE ${${PKG_CONFIG_MODULE}_INCLUDE_DIRS}) ++ target_compile_options(${MODULE} PRIVATE ${${PKG_CONFIG_MODULE}_CFLAGS_OTHER}) ++ target_compile_definitions(${MODULE} PRIVATE -DQTAV_HAVE_${PKG_CONFIG_MODULE}=1) ++endforeach() ++ + set_target_properties(${MODULE} PROPERTIES + MACOSX_RPATH ON + FRAMEWORK ON diff --git a/libs/qtav/0005-cmake-fix-mingw-build.patch b/libs/qtav/0005-cmake-fix-mingw-build.patch new file mode 100644 --- /dev/null +++ b/libs/qtav/0005-cmake-fix-mingw-build.patch @@ -0,0 +1,15 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index db84dbf8..f2ff2970 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -218,6 +218,10 @@ if(HAVE_OPENGL) + find_package(OpenGL REQUIRED) + list(APPEND EXTRA_LIBS ${OPENGL_gl_LIBRARY}) + endif() ++ if(WIN32 AND OPENGLES) # msys2 ++ set(OPENGL 1) ++ set(HAVE_EGL 0) ++ endif() + endif() + + file(GLOB SDK_HEADERS QtAV/*.h) diff --git a/libs/qtav/qtav.py b/libs/qtav/qtav.py --- a/libs/qtav/qtav.py +++ b/libs/qtav/qtav.py @@ -14,29 +14,20 @@ self.displayName = "QtAV" self.patchToApply['1.13.0'] = [ ("0001-Include-QSGMaterial.patch", 1), - ("0002-Fix-install-prefix.patch", 1), - ("0003-Add-craft-search-paths.patch", 1), + ("0004-cmake-fixes.patch", 1), + ("0005-cmake-fix-mingw-build.patch", 1), ] def setDependencies(self): self.buildDependencies["virtual/base"] = None self.runtimeDependencies["libs/ffmpeg"] = None self.runtimeDependencies["libs/qt5/qtbase"] = None -from Package.QMakePackageBase import * +from Package.CMakePackageBase import * -class Package(QMakePackageBase): +class Package(CMakePackageBase): def __init__(self): - QMakePackageBase.__init__(self) - - def configureOptions(self, defines=""): - return super().configureOptions(defines + ' "CONFIG += no-examples no-tests"') - - def install(self, options=None): - if not super().install(options): - return False - if OsUtils.isWin(): - return utils.system("sdk_install.bat", cwd=self.buildDir()) - return True + CMakePackageBase.__init__(self) + self.subinfo.options.configure.args += ' -DBUILD_EXAMPLES=OFF -DBUILD_PLAYERS=OFF -DBUILD_TESTS=OFF'