From 7c7ef9a32f9d86be0beaad1c971053f40fc9f40a Mon Sep 17 00:00:00 2001 From: Dmitry Vedenko Date: Thu, 10 Mar 2022 21:51:50 +0300 Subject: [PATCH] Adds Qt recipe The recipe is based on the recipe from conan-central, but with a bug fixed in the recipe --- build.py | 25 + qt/5.x.x/conandata.yml | 30 + qt/5.x.x/conanfile.py | 1311 +++++++++++++++++ qt/5.x.x/patches/7371d3a.diff | 38 + qt/5.x.x/patches/QTBUG-88625.diff | 58 + qt/5.x.x/patches/QTBUG-90395.diff | 38 + qt/5.x.x/patches/aa2a39dea5.diff | 29 + qt/5.x.x/patches/c72097e.diff | 42 + qt/5.x.x/patches/dece6f5.diff | 14 + .../patches/declarative_missing_header.diff | 11 + qt/5.x.x/patches/f830b86.diff | 51 + qt/5.x.x/patches/fix-gcc-11.diff | 10 + qt/5.x.x/patches/fix-macdeployqt.diff | 66 + qt/5.x.x/qtmodules5.15.2.conf | 284 ++++ qt/5.x.x/test_package/CMakeLists.txt | 21 + qt/5.x.x/test_package/conanfile.py | 119 ++ qt/5.x.x/test_package/example.qrc | 5 + qt/5.x.x/test_package/greeter.h | 26 + qt/5.x.x/test_package/meson.build | 6 + qt/5.x.x/test_package/resource.txt | 1 + qt/5.x.x/test_package/test_package.cpp | 52 + qt/5.x.x/test_package/test_package.pro | 14 + qt/6.x.x/conandata.yml | 149 ++ qt/6.x.x/conanfile.py | 1292 ++++++++++++++++ qt/6.x.x/patches/138a720.diff | 21 + qt/6.x.x/patches/32451d5.diff | 32 + qt/6.x.x/patches/5fe0b82.patch | 23 + qt/6.x.x/patches/c72097e.diff | 42 + qt/6.x.x/patches/c76d2f6.patch | 70 + qt/6.x.x/patches/dece6f5.patch | 25 + qt/6.x.x/patches/qt6-pri-helpers-fix.diff | 15 + qt/6.x.x/qtmodules6.0.1.conf | 325 ++++ qt/6.x.x/qtmodules6.0.2.conf | 325 ++++ qt/6.x.x/qtmodules6.0.3.conf | 343 +++++ qt/6.x.x/qtmodules6.0.4.conf | 343 +++++ qt/6.x.x/qtmodules6.1.0.conf | 343 +++++ qt/6.x.x/qtmodules6.1.1.conf | 343 +++++ qt/6.x.x/qtmodules6.1.2.conf | 343 +++++ qt/6.x.x/qtmodules6.1.3.conf | 343 +++++ qt/6.x.x/qtmodules6.2.0.conf | 292 ++++ qt/6.x.x/qtmodules6.2.1.conf | 292 ++++ qt/6.x.x/qtmodules6.2.2.conf | 299 ++++ qt/6.x.x/qtmodules6.2.3.conf | 299 ++++ qt/6.x.x/test_package/CMakeLists.txt | 25 + qt/6.x.x/test_package/conanfile.py | 131 ++ qt/6.x.x/test_package/example.qrc | 5 + qt/6.x.x/test_package/greeter.h | 26 + qt/6.x.x/test_package/meson.build | 6 + qt/6.x.x/test_package/resource.txt | 1 + qt/6.x.x/test_package/test_package.cpp | 48 + qt/6.x.x/test_package/test_package.pro | 15 + qt/config.yml | 27 + 52 files changed, 8094 insertions(+) create mode 100644 build.py create mode 100644 qt/5.x.x/conandata.yml create mode 100644 qt/5.x.x/conanfile.py create mode 100644 qt/5.x.x/patches/7371d3a.diff create mode 100644 qt/5.x.x/patches/QTBUG-88625.diff create mode 100644 qt/5.x.x/patches/QTBUG-90395.diff create mode 100644 qt/5.x.x/patches/aa2a39dea5.diff create mode 100644 qt/5.x.x/patches/c72097e.diff create mode 100644 qt/5.x.x/patches/dece6f5.diff create mode 100644 qt/5.x.x/patches/declarative_missing_header.diff create mode 100644 qt/5.x.x/patches/f830b86.diff create mode 100644 qt/5.x.x/patches/fix-gcc-11.diff create mode 100644 qt/5.x.x/patches/fix-macdeployqt.diff create mode 100644 qt/5.x.x/qtmodules5.15.2.conf create mode 100644 qt/5.x.x/test_package/CMakeLists.txt create mode 100644 qt/5.x.x/test_package/conanfile.py create mode 100644 qt/5.x.x/test_package/example.qrc create mode 100644 qt/5.x.x/test_package/greeter.h create mode 100644 qt/5.x.x/test_package/meson.build create mode 100644 qt/5.x.x/test_package/resource.txt create mode 100644 qt/5.x.x/test_package/test_package.cpp create mode 100644 qt/5.x.x/test_package/test_package.pro create mode 100644 qt/6.x.x/conandata.yml create mode 100644 qt/6.x.x/conanfile.py create mode 100644 qt/6.x.x/patches/138a720.diff create mode 100644 qt/6.x.x/patches/32451d5.diff create mode 100644 qt/6.x.x/patches/5fe0b82.patch create mode 100644 qt/6.x.x/patches/c72097e.diff create mode 100644 qt/6.x.x/patches/c76d2f6.patch create mode 100644 qt/6.x.x/patches/dece6f5.patch create mode 100644 qt/6.x.x/patches/qt6-pri-helpers-fix.diff create mode 100644 qt/6.x.x/qtmodules6.0.1.conf create mode 100644 qt/6.x.x/qtmodules6.0.2.conf create mode 100644 qt/6.x.x/qtmodules6.0.3.conf create mode 100644 qt/6.x.x/qtmodules6.0.4.conf create mode 100644 qt/6.x.x/qtmodules6.1.0.conf create mode 100644 qt/6.x.x/qtmodules6.1.1.conf create mode 100644 qt/6.x.x/qtmodules6.1.2.conf create mode 100644 qt/6.x.x/qtmodules6.1.3.conf create mode 100644 qt/6.x.x/qtmodules6.2.0.conf create mode 100644 qt/6.x.x/qtmodules6.2.1.conf create mode 100644 qt/6.x.x/qtmodules6.2.2.conf create mode 100644 qt/6.x.x/qtmodules6.2.3.conf create mode 100644 qt/6.x.x/test_package/CMakeLists.txt create mode 100644 qt/6.x.x/test_package/conanfile.py create mode 100644 qt/6.x.x/test_package/example.qrc create mode 100644 qt/6.x.x/test_package/greeter.h create mode 100644 qt/6.x.x/test_package/meson.build create mode 100644 qt/6.x.x/test_package/resource.txt create mode 100644 qt/6.x.x/test_package/test_package.cpp create mode 100644 qt/6.x.x/test_package/test_package.pro create mode 100644 qt/config.yml diff --git a/build.py b/build.py new file mode 100644 index 0000000..6178e02 --- /dev/null +++ b/build.py @@ -0,0 +1,25 @@ +import os +import re + +import yaml +from cpt.packager import ConanMultiPackager + +def build_package(package): + ref = re.compile(r'/|@').split(package) + + root_package_dir = ref[0] + + package_config = yaml.load(open(os.path.join(root_package_dir, "config.yml"), "r")) + + versions = package_config["versions"] + folder = versions[ref[1]]["folder"] + + builder = ConanMultiPackager(reference=package, conanfile=os.path.join(root_package_dir, folder, "conanfile.py"), visual_runtimes=["MD", "MDd"], msvc_versions=["193"],cppstds=["17"]) + builder.add_common_builds() + builder.run_builds() + + print(builder) + + +if __name__ == "__main__": + build_package("expat/2.3.0@audacity/stable") \ No newline at end of file diff --git a/qt/5.x.x/conandata.yml b/qt/5.x.x/conandata.yml new file mode 100644 index 0000000..cbc2d1f --- /dev/null +++ b/qt/5.x.x/conandata.yml @@ -0,0 +1,30 @@ +sources: + "5.15.2": + url: + - "https://download.qt.io/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz" + - "https://qt-mirror.dannhauer.de/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz" + - "https://www.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz" + - "https://ftp.fau.de/qtproject/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz" + sha256: "3a530d1b243b5dec00bc54937455471aaa3e56849d2593edb8ded07228202240" +patches: + "5.15.2": + - patch_file: "patches/aa2a39dea5.diff" + base_path: "qt5/qtbase" + - patch_file: "patches/c72097e.diff" + base_path: "qt5/qtwebengine" + - patch_file: "patches/fix-macdeployqt.diff" + base_path: "qt5/qttools" + - patch_file: "patches/QTBUG-88625.diff" + base_path: "qt5/qtwebengine" + - patch_file: "patches/7371d3a.diff" + base_path: "qt5/qtbase" + - patch_file: "patches/QTBUG-90395.diff" + base_path: "qt5/qtbase" + - patch_file: "patches/declarative_missing_header.diff" + base_path: "qt5/qtdeclarative" + - patch_file: "patches/f830b86.diff" + base_path: "qt5/qtwebengine/src/3rdparty" + - patch_file: "patches/fix-gcc-11.diff" + base_path: "qt5/qtwebengine/src/3rdparty" + - patch_file: "patches/dece6f5.diff" + base_path: "qt5/qtbase" diff --git a/qt/5.x.x/conanfile.py b/qt/5.x.x/conanfile.py new file mode 100644 index 0000000..e13f866 --- /dev/null +++ b/qt/5.x.x/conanfile.py @@ -0,0 +1,1311 @@ +from conan.tools.microsoft import msvc_runtime_flag +from conans import ConanFile, tools, RunEnvironment +from conans.errors import ConanInvalidConfiguration +from conans.model import Generator +import configparser +import glob +import itertools +import os +import textwrap + +required_conan_version = ">=1.43.0" + + +class qt(Generator): + @property + def filename(self): + return "qt.conf" + + @property + def content(self): + return """[Paths] +Prefix = %s +ArchData = bin/archdatadir +HostData = bin/archdatadir +Data = bin/datadir +Sysconf = bin/sysconfdir +LibraryExecutables = bin/archdatadir/bin +Plugins = bin/archdatadir/plugins +Imports = bin/archdatadir/imports +Qml2Imports = bin/archdatadir/qml +Translations = bin/datadir/translations +Documentation = bin/datadir/doc +Examples = bin/datadir/examples""" % self.conanfile.deps_cpp_info["qt"].rootpath.replace("\\", "/") + + +class QtConan(ConanFile): + _submodules = ["qtsvg", "qtdeclarative", "qtactiveqt", "qtscript", "qtmultimedia", "qttools", "qtxmlpatterns", + "qttranslations", "qtdoc", "qtlocation", "qtsensors", "qtconnectivity", "qtwayland", + "qt3d", "qtimageformats", "qtgraphicaleffects", "qtquickcontrols", "qtserialbus", "qtserialport", "qtx11extras", + "qtmacextras", "qtwinextras", "qtandroidextras", "qtwebsockets", "qtwebchannel", "qtwebengine", "qtwebview", + "qtquickcontrols2", "qtpurchasing", "qtcharts", "qtdatavis3d", "qtvirtualkeyboard", "qtgamepad", "qtscxml", + "qtspeech", "qtnetworkauth", "qtremoteobjects", "qtwebglplugin", "qtlottie", "qtquicktimeline", "qtquick3d"] + + name = "qt" + description = "Qt is a cross-platform framework for graphical user interfaces." + topics = ("qt", "ui") + url = "https://github.com/conan-io/conan-center-index" + homepage = "https://www.qt.io" + license = "LGPL-3.0" + + settings = "os", "arch", "compiler", "build_type" + options = { + "shared": [True, False], + "commercial": [True, False], + + "opengl": ["no", "es2", "desktop", "dynamic"], + "with_vulkan": [True, False], + "openssl": [True, False], + "with_pcre2": [True, False], + "with_glib": [True, False], + # "with_libiconv": [True, False], # QTBUG-84708 Qt tests failure "invalid conversion from const char** to char**" + "with_doubleconversion": [True, False], + "with_freetype": [True, False], + "with_fontconfig": [True, False], + "with_icu": [True, False], + "with_harfbuzz": [True, False], + "with_libjpeg": ["libjpeg", "libjpeg-turbo", False], + "with_libpng": [True, False], + "with_sqlite3": [True, False], + "with_mysql": [True, False], + "with_pq": [True, False], + "with_odbc": [True, False], + "with_libalsa": [True, False], + "with_openal": [True, False], + "with_zstd": [True, False], + "with_gstreamer": [True, False], + "with_pulseaudio": [True, False], + "with_dbus": [True, False], + + "gui": [True, False], + "widgets": [True, False], + + "device": "ANY", + "cross_compile": "ANY", + "sysroot": "ANY", + "config": "ANY", + "multiconfiguration": [True, False] + } + options.update({module: [True, False] for module in _submodules}) + + default_options = { + "shared": False, + "commercial": False, + "opengl": "desktop", + "with_vulkan": False, + "openssl": True, + "with_pcre2": True, + "with_glib": False, + # "with_libiconv": True, # QTBUG-84708 + "with_doubleconversion": True, + "with_freetype": True, + "with_fontconfig": True, + "with_icu": True, + "with_harfbuzz": False, + "with_libjpeg": "libjpeg", + "with_libpng": True, + "with_sqlite3": True, + "with_mysql": True, + "with_pq": True, + "with_odbc": True, + "with_libalsa": False, + "with_openal": True, + "with_zstd": True, + "with_gstreamer": False, + "with_pulseaudio": False, + "with_dbus": False, + + "gui": True, + "widgets": True, + + "device": None, + "cross_compile": None, + "sysroot": None, + "config": None, + "multiconfiguration": False + } + default_options.update({module: False for module in _submodules}) + + no_copy_source = True + short_paths = True + generators = "pkg_config" + + @property + def _is_msvc(self): + return str(self.settings.compiler) in ["Visual Studio", "msvc"] + + @property + def _settings_build(self): + return getattr(self, "settings_build", self.settings) + + def export(self): + self.copy("qtmodules%s.conf" % self.version) + + def export_sources(self): + for patch in self.conan_data.get("patches", {}).get(self.version, []): + self.copy(patch["patch_file"]) + + def build_requirements(self): + if self._settings_build.os == "Windows" and self._is_msvc: + self.build_requires("jom/1.1.3") + self.build_requires("zlib/1.2.11") + if self.options.qtwebengine: + self.build_requires("ninja/1.10.2") + # gperf, bison, flex, python >= 2.7.5 & < 3 + if self.settings.os != "Windows": + self.build_requires("bison/3.7.6") + self.build_requires("gperf/3.1") + self.build_requires("flex/2.6.4") + + # Check if a valid python2 is available in PATH or it will failflex + # Start by checking if python2 can be found + python_exe = tools.which("python2") + if not python_exe: + # Fall back on regular python + python_exe = tools.which("python") + + if not python_exe: + msg = ("Python2 must be available in PATH " + "in order to build Qt WebEngine") + raise ConanInvalidConfiguration(msg) + + # In any case, check its actual version for compatibility + from six import StringIO # Python 2 and 3 compatible + mybuf = StringIO() + cmd_v = "\"{}\" --version".format(python_exe) + self.run(cmd_v, output=mybuf) + verstr = mybuf.getvalue().strip().split("Python ")[1] + if verstr.endswith("+"): + verstr = verstr[:-1] + version = tools.Version(verstr) + # >= 2.7.5 & < 3 + v_min = "2.7.5" + v_max = "3.0.0" + if (version >= v_min) and (version < v_max): + msg = ("Found valid Python 2 required for QtWebengine:" + " version={}, path={}".format(mybuf.getvalue(), python_exe)) + self.output.success(msg) + else: + msg = ("Found Python 2 in path, but with invalid version {}" + " (QtWebEngine requires >= {} & < " + "{})\nIf you have both Python 2 and 3 installed, copy the python 2 executable to" + "python2(.exe)".format(verstr, v_min, v_max)) + raise ConanInvalidConfiguration(msg) + + if self.options.qtwayland: + self.build_requires("wayland/1.20.0") + + def config_options(self): + if self.settings.os not in ["Linux", "FreeBSD"]: + del self.options.with_icu + del self.options.with_fontconfig + del self.options.with_libalsa + if self.settings.compiler == "apple-clang": + if tools.Version(self.settings.compiler.version) < "10.0": + raise ConanInvalidConfiguration("Old versions of apple sdk are not supported by Qt (QTBUG-76777)") + if self.settings.compiler in ["gcc", "clang"]: + if tools.Version(self.settings.compiler.version) < "5.0": + raise ConanInvalidConfiguration("qt 5.15.X does not support GCC or clang before 5.0") + if self.settings.compiler in ["gcc", "clang"] and tools.Version(self.settings.compiler.version) < "5.3": + del self.options.with_mysql + if self.settings.os == "Windows": + self.options.with_mysql = False + self.options.opengl = "dynamic" + if self.settings.os != "Linux": + self.options.qtwayland = False + + def configure(self): + # if self.settings.os != "Linux": + # self.options.with_libiconv = False # QTBUG-84708 + + if not self.options.gui: + del self.options.opengl + del self.options.with_vulkan + del self.options.with_freetype + del self.options.with_fontconfig + del self.options.with_harfbuzz + del self.options.with_libjpeg + del self.options.with_libpng + + if not self.options.qtmultimedia: + del self.options.with_libalsa + del self.options.with_openal + del self.options.with_gstreamer + del self.options.with_pulseaudio + + if self.settings.os in ("FreeBSD", "Linux"): + if self.options.qtwebengine: + self.options.with_fontconfig = True + else: + del self.options.qtx11extras + + if self.options.multiconfiguration: + del self.settings.build_type + + config = configparser.ConfigParser() + config.read(os.path.join(self.recipe_folder, "qtmodules%s.conf" % self.version)) + submodules_tree = {} + assert config.sections() + for s in config.sections(): + section = str(s) + assert section.startswith("submodule ") + assert section.count('"') == 2 + modulename = section[section.find('"') + 1: section.rfind('"')] + status = str(config.get(section, "status")) + if status != "obsolete" and status != "ignore": + submodules_tree[modulename] = {"status": status, + "path": str(config.get(section, "path")), "depends": []} + if config.has_option(section, "depends"): + submodules_tree[modulename]["depends"] = [str(i) for i in config.get(section, "depends").split()] + + for m in submodules_tree: + assert m in ["qtbase", "qtqa", "qtrepotools"] or m in self._submodules, "module %s is not present in recipe options : (%s)" % (m, ",".join(self._submodules)) + + for m in self._submodules: + assert m in submodules_tree, "module %s is not present in qtmodules%s.conf : (%s)" % (m, self.version, ",".join(submodules_tree)) + + def _enablemodule(mod): + if mod != "qtbase": + setattr(self.options, mod, True) + for req in submodules_tree[mod]["depends"]: + _enablemodule(req) + + for module in self._submodules: + if self.options.get_safe(module): + _enablemodule(module) + + def validate(self): + if self.settings.compiler.get_safe("cppstd"): + tools.check_min_cppstd(self, "11") + if self.options.widgets and not self.options.gui: + raise ConanInvalidConfiguration("using option qt:widgets without option qt:gui is not possible. " + "You can either disable qt:widgets or enable qt:gui") + + if self.options.qtwebengine: + if not self.options.shared: + raise ConanInvalidConfiguration("Static builds of Qt WebEngine are not supported") + + if not (self.options.gui and self.options.qtdeclarative and self.options.qtlocation and self.options.qtwebchannel): + raise ConanInvalidConfiguration("option qt:qtwebengine requires also qt:gui, qt:qtdeclarative, qt:qtlocation and qt:qtwebchannel") + + if hasattr(self, "settings_build") and tools.cross_building(self, skip_x64_x86=True): + raise ConanInvalidConfiguration("Cross compiling Qt WebEngine is not supported") + + if self.settings.compiler == "gcc" and tools.Version(self.settings.compiler.version) < "5": + raise ConanInvalidConfiguration("Compiling Qt WebEngine with gcc < 5 is not supported") + + if self.settings.os == "Android" and self.options.get_safe("opengl", "no") == "desktop": + raise ConanInvalidConfiguration("OpenGL desktop is not supported on Android. Consider using OpenGL es2") + + if self.settings.os != "Windows" and self.options.get_safe("opengl", "no") == "dynamic": + raise ConanInvalidConfiguration("Dynamic OpenGL is supported only on Windows.") + + if self.options.get_safe("with_fontconfig", False) and not self.options.get_safe("with_freetype", False): + raise ConanInvalidConfiguration("with_fontconfig cannot be enabled if with_freetype is disabled.") + + if not self.options.with_doubleconversion and str(self.settings.compiler.libcxx) != "libc++": + raise ConanInvalidConfiguration("Qt without libc++ needs qt:with_doubleconversion. " + "Either enable qt:with_doubleconversion or switch to libc++") + + if "MT" in self.settings.get_safe("compiler.runtime", default="") and self.options.shared: + raise ConanInvalidConfiguration("Qt cannot be built as shared library with static runtime") + + if self.settings.compiler == "apple-clang": + if tools.Version(self.settings.compiler.version) < "10.0": + raise ConanInvalidConfiguration("Old versions of apple sdk are not supported by Qt (QTBUG-76777)") + if self.settings.compiler in ["gcc", "clang"]: + if tools.Version(self.settings.compiler.version) < "5.0": + raise ConanInvalidConfiguration("qt 5.15.X does not support GCC or clang before 5.0") + + if self.options.get_safe("with_pulseaudio", default=False) and not self.options["pulseaudio"].with_glib: + # https://bugreports.qt.io/browse/QTBUG-95952 + raise ConanInvalidConfiguration("Pulseaudio needs to be built with glib option or qt's configure script won't detect it") + + def requirements(self): + self.requires("zlib/1.2.11") + if self.options.openssl: + self.requires("openssl/1.1.1m") + if self.options.with_pcre2: + self.requires("pcre2/10.37") + if self.options.get_safe("with_vulkan"): + self.requires("vulkan-loader/1.2.198.0") + if tools.is_apple_os(self.settings.os): + self.requires("moltenvk/1.1.6") + if self.options.with_glib: + self.requires("glib/2.70.1") + # if self.options.with_libiconv: # QTBUG-84708 + # self.requires("libiconv/1.16")# QTBUG-84708 + if self.options.with_doubleconversion and not self.options.multiconfiguration: + self.requires("double-conversion/3.2.0") + if self.options.get_safe("with_freetype", False) and not self.options.multiconfiguration: + self.requires("freetype/2.11.1") + if self.options.get_safe("with_fontconfig", False): + self.requires("fontconfig/2.13.93") + if self.options.get_safe("with_icu", False): + self.requires("icu/70.1") + if self.options.get_safe("with_harfbuzz", False) and not self.options.multiconfiguration: + self.requires("harfbuzz/3.2.0") + if self.options.get_safe("with_libjpeg", False) and not self.options.multiconfiguration: + if self.options.with_libjpeg == "libjpeg-turbo": + self.requires("libjpeg-turbo/2.1.2") + else: + self.requires("libjpeg/9d") + if self.options.get_safe("with_libpng", False) and not self.options.multiconfiguration: + self.requires("libpng/1.6.37") + if self.options.with_sqlite3 and not self.options.multiconfiguration: + self.requires("sqlite3/3.37.2") + self.options["sqlite3"].enable_column_metadata = True + if self.options.get_safe("with_mysql", False): + self.requires("libmysqlclient/8.0.25") + if self.options.with_pq: + self.requires("libpq/13.4") + if self.options.with_odbc: + if self.settings.os != "Windows": + self.requires("odbc/2.3.9") + if self.options.get_safe("with_openal", False): + self.requires("openal/1.21.1") + if self.options.get_safe("with_libalsa", False): + self.requires("libalsa/1.2.5.1") + if self.options.gui and self.settings.os in ["Linux", "FreeBSD"]: + self.requires("xorg/system") + self.requires("xkbcommon/1.3.1") + if self.options.get_safe("opengl", "no") != "no": + self.requires("opengl/system") + if self.options.with_zstd: + self.requires("zstd/1.5.2") + if self.options.qtwebengine and self.settings.os in ["Linux", "FreeBSD"]: + self.requires("expat/2.4.4") + self.requires("opus/1.3.1") + if self.options.get_safe("with_gstreamer", False): + self.requires("gst-plugins-base/1.19.2") + if self.options.get_safe("with_pulseaudio", False): + self.requires("pulseaudio/14.2") + if self.options.with_dbus: + self.requires("dbus/1.12.20") + if self.options.qtwayland: + self.requires("wayland/1.20.0") + + def source(self): + tools.get(**self.conan_data["sources"][self.version], + strip_root=True, destination="qt5") + + for patch in self.conan_data.get("patches", {}).get(self.version, []): + tools.patch(**patch) + for f in ["renderer", os.path.join("renderer", "core"), os.path.join("renderer", "platform")]: + tools.replace_in_file(os.path.join(self.source_folder, "qt5", "qtwebengine", "src", "3rdparty", "chromium", "third_party", "blink", f, "BUILD.gn"), + " if (enable_precompiled_headers) {\n if (is_win) {", + " if (enable_precompiled_headers) {\n if (false) {" + ) + + def _make_program(self): + if self._is_msvc: + return "jom" + elif tools.os_info.is_windows: + return "mingw32-make" + else: + return "make" + + def _xplatform(self): + if self.settings.os == "Linux": + if self.settings.compiler == "gcc": + return {"x86": "linux-g++-32", + "armv6": "linux-arm-gnueabi-g++", + "armv7": "linux-arm-gnueabi-g++", + "armv7hf": "linux-arm-gnueabi-g++", + "armv8": "linux-aarch64-gnu-g++"}.get(str(self.settings.arch), "linux-g++") + elif self.settings.compiler == "clang": + if self.settings.arch == "x86": + return "linux-clang-libc++-32" if self.settings.compiler.libcxx == "libc++" else "linux-clang-32" + elif self.settings.arch == "x86_64": + return "linux-clang-libc++" if self.settings.compiler.libcxx == "libc++" else "linux-clang" + + elif self.settings.os == "Macos": + return {"clang": "macx-clang", + "apple-clang": "macx-clang", + "gcc": "macx-g++"}.get(str(self.settings.compiler)) + + elif self.settings.os == "iOS": + if self.settings.compiler == "apple-clang": + return "macx-ios-clang" + + elif self.settings.os == "watchOS": + if self.settings.compiler == "apple-clang": + return "macx-watchos-clang" + + elif self.settings.os == "tvOS": + if self.settings.compiler == "apple-clang": + return "macx-tvos-clang" + + elif self.settings.os == "Android": + if self.settings.compiler == "clang": + return "android-clang" + + elif self.settings.os == "Windows": + return { + "Visual Studio": "win32-msvc", + "msvc": "win32-msvc", + "gcc": "win32-g++", + "clang": "win32-clang-g++", + }.get(str(self.settings.compiler)) + + elif self.settings.os == "WindowsStore": + if self._is_msvc: + if self.settings.compiler == "Visual Studio": + msvc_version = str(self.settings.compiler.version) + else: + msvc_version = { + "190": "14", + "191": "15", + "192": "16", + }.get(str(self.settings.compiler.version)) + return { + "14": { + "armv7": "winrt-arm-msvc2015", + "x86": "winrt-x86-msvc2015", + "x86_64": "winrt-x64-msvc2015", + }, + "15": { + "armv7": "winrt-arm-msvc2017", + "x86": "winrt-x86-msvc2017", + "x86_64": "winrt-x64-msvc2017", + }, + "16": { + "armv7": "winrt-arm-msvc2019", + "x86": "winrt-x86-msvc2019", + "x86_64": "winrt-x64-msvc2019", + } + }.get(msvc_version).get(str(self.settings.arch)) + + elif self.settings.os == "FreeBSD": + return {"clang": "freebsd-clang", + "gcc": "freebsd-g++"}.get(str(self.settings.compiler)) + + elif self.settings.os == "SunOS": + if self.settings.compiler == "sun-cc": + if self.settings.arch == "sparc": + return "solaris-cc-stlport" if self.settings.compiler.libcxx == "libstlport" else "solaris-cc" + elif self.settings.arch == "sparcv9": + return "solaris-cc64-stlport" if self.settings.compiler.libcxx == "libstlport" else "solaris-cc64" + elif self.settings.compiler == "gcc": + return {"sparc": "solaris-g++", + "sparcv9": "solaris-g++-64"}.get(str(self.settings.arch)) + elif self.settings.os == "Neutrino" and self.settings.compiler == "qcc": + return {"armv8": "qnx-aarch64le-qcc", + "armv8.3": "qnx-aarch64le-qcc", + "armv7": "qnx-armle-v7-qcc", + "armv7hf": "qnx-armle-v7-qcc", + "armv7s": "qnx-armle-v7-qcc", + "armv7k": "qnx-armle-v7-qcc", + "x86": "qnx-x86-qcc", + "x86_64": "qnx-x86-64-qcc"}.get(str(self.settings.arch)) + elif self.settings.os == "Emscripten" and self.settings.arch == "wasm": + return "wasm-emscripten" + + return None + + def build(self): + args = ["-confirm-license", "-silent", "-nomake examples", "-nomake tests", + "-prefix %s" % self.package_folder] + args.append("-v") + args.append("-archdatadir %s" % os.path.join(self.package_folder, "bin", "archdatadir")) + args.append("-datadir %s" % os.path.join(self.package_folder, "bin", "datadir")) + args.append("-sysconfdir %s" % os.path.join(self.package_folder, "bin", "sysconfdir")) + if self.options.commercial: + args.append("-commercial") + else: + args.append("-opensource") + if not self.options.gui: + args.append("-no-gui") + if not self.options.widgets: + args.append("-no-widgets") + if not self.options.shared: + args.insert(0, "-static") + if self._is_msvc and "MT" in msvc_runtime_flag(self): + args.append("-static-runtime") + else: + args.insert(0, "-shared") + if self.options.multiconfiguration: + args.append("-debug-and-release") + elif self.settings.build_type == "Debug": + args.append("-debug") + elif self.settings.build_type == "Release": + args.append("-release") + elif self.settings.build_type == "RelWithDebInfo": + args.append("-release") + args.append("-force-debug-info") + elif self.settings.build_type == "MinSizeRel": + args.append("-release") + args.append("-optimize-size") + + for module in self._submodules: + if not self.options.get_safe(module): + args.append("-skip " + module) + + args.append("--zlib=system") + + # openGL + opengl = self.options.get_safe("opengl", "no") + if opengl == "no": + args += ["-no-opengl"] + elif opengl == "es2": + args += ["-opengl es2"] + elif opengl == "desktop": + args += ["-opengl desktop"] + elif opengl == "dynamic": + args += ["-opengl dynamic"] + + if self.options.get_safe("with_vulkan", False): + args.append("-vulkan") + else: + args.append("-no-vulkan") + + # openSSL + if not self.options.openssl: + args += ["-no-openssl"] + else: + if self.options["openssl"].shared: + args += ["-openssl-runtime"] + else: + args += ["-openssl-linked"] + + # args.append("--iconv=" + ("gnu" if self.options.with_libiconv else "no"))# QTBUG-84708 + + args.append("--glib=" + ("yes" if self.options.with_glib else "no")) + args.append("--pcre=" + ("system" if self.options.with_pcre2 else "qt")) + args.append("--fontconfig=" + ("yes" if self.options.get_safe("with_fontconfig", False) else "no")) + args.append("--icu=" + ("yes" if self.options.get_safe("with_icu", False) else "no")) + args.append("--sql-mysql=" + ("yes" if self.options.get_safe("with_mysql", False) else "no")) + args.append("--sql-psql=" + ("yes" if self.options.with_pq else "no")) + args.append("--sql-odbc=" + ("yes" if self.options.with_odbc else "no")) + args.append("--zstd=" + ("yes" if self.options.with_zstd else "no")) + + if self.options.qtmultimedia: + args.append("--alsa=" + ("yes" if self.options.get_safe("with_libalsa", False) else "no")) + args.append("--gstreamer" if self.options.get_safe("with_gstreamer", False) else "--no-gstreamer") + args.append("--pulseaudio" if self.options.get_safe("with_pulseaudio", False) else "--no-pulseaudio") + + if self.options.with_dbus: + args.append("-dbus-linked") + else: + args.append("-no-dbus") + + for opt, conf_arg in [ + ("with_doubleconversion", "doubleconversion"), + ("with_freetype", "freetype"), + ("with_harfbuzz", "harfbuzz"), + ("with_libjpeg", "libjpeg"), + ("with_libpng", "libpng"), + ("with_sqlite3", "sqlite")]: + if self.options.get_safe(opt, False): + if self.options.multiconfiguration: + args += ["-qt-" + conf_arg] + else: + args += ["-system-" + conf_arg] + else: + args += ["-no-" + conf_arg] + + libmap = [("zlib", "ZLIB"), + ("openssl", "OPENSSL"), + ("pcre2", "PCRE2"), + ("glib", "GLIB"), + # ("libiconv", "ICONV"),# QTBUG-84708 + ("double-conversion", "DOUBLECONVERSION"), + ("freetype", "FREETYPE"), + ("fontconfig", "FONTCONFIG"), + ("icu", "ICU"), + ("harfbuzz", "HARFBUZZ"), + ("libjpeg", "LIBJPEG"), + ("libjpeg-turbo", "LIBJPEG"), + ("libpng", "LIBPNG"), + ("sqlite3", "SQLITE"), + ("libmysqlclient", "MYSQL"), + ("libpq", "PSQL"), + ("odbc", "ODBC"), + ("sdl2", "SDL2"), + ("openal", "OPENAL"), + ("zstd", "ZSTD"), + ("libalsa", "ALSA"), + ("xkbcommon", "XKBCOMMON")] + for package, var in libmap: + if package in self.deps_cpp_info.deps: + if package == "freetype": + args.append("\"%s_INCDIR=%s\"" % (var, self.deps_cpp_info[package].include_paths[-1])) + + args.append("\"%s_LIBS=%s\"" % (var, " ".join(self._gather_libs(package)))) + + for package in self.deps_cpp_info.deps: + args += ["-I \"%s\"" % s for s in self.deps_cpp_info[package].include_paths] + args += ["-D %s" % s for s in self.deps_cpp_info[package].defines] + lib_arg = "/LIBPATH:" if self._is_msvc else "-L" + args.append("QMAKE_LFLAGS+=\"%s\"" % " ".join("%s%s" % (lib_arg, l) for package in self.deps_cpp_info.deps for l in self.deps_cpp_info[package].lib_paths)) + + if "libmysqlclient" in self.deps_cpp_info.deps: + args.append("-mysql_config \"%s\"" % os.path.join(self.deps_cpp_info["libmysqlclient"].rootpath, "bin", "mysql_config")) + if "libpq" in self.deps_cpp_info.deps: + args.append("-psql_config \"%s\"" % os.path.join(self.deps_cpp_info["libpq"].rootpath, "bin", "pg_config")) + if self.settings.os == "Macos": + args += ["-no-framework"] + elif self.settings.os == "Android": + args += ["-android-ndk-platform android-%s" % self.settings.os.api_level] + args += ["-android-abis %s" % {"armv7": "armeabi-v7a", + "armv8": "arm64-v8a", + "x86": "x86", + "x86_64": "x86_64"}.get(str(self.settings.arch))] + + if self.settings.get_safe("compiler.libcxx") == "libstdc++": + args += ["-D_GLIBCXX_USE_CXX11_ABI=0"] + elif self.settings.get_safe("compiler.libcxx") == "libstdc++11": + args += ["-D_GLIBCXX_USE_CXX11_ABI=1"] + + if self.options.sysroot: + args += ["-sysroot %s" % self.options.sysroot] + + if self.options.device: + args += ["-device %s" % self.options.device] + else: + xplatform_val = self._xplatform() + if xplatform_val: + if not tools.cross_building(self, skip_x64_x86=True): + args += ["-platform %s" % xplatform_val] + else: + args += ["-xplatform %s" % xplatform_val] + else: + self.output.warn("host not supported: %s %s %s %s" % + (self.settings.os, self.settings.compiler, + self.settings.compiler.version, self.settings.arch)) + if self.options.cross_compile: + args += ["-device-option CROSS_COMPILE=%s" % self.options.cross_compile] + + def _getenvpath(var): + val = os.getenv(var) + if val and tools.os_info.is_windows: + val = val.replace("\\", "/") + os.environ[var] = val + return val + + value = _getenvpath("CC") + if value: + args += ['QMAKE_CC="' + value + '"', + 'QMAKE_LINK_C="' + value + '"', + 'QMAKE_LINK_C_SHLIB="' + value + '"'] + + value = _getenvpath('CXX') + if value: + args += ['QMAKE_CXX="' + value + '"', + 'QMAKE_LINK="' + value + '"', + 'QMAKE_LINK_SHLIB="' + value + '"'] + + if tools.os_info.is_linux and self.settings.compiler == "clang": + args += ['QMAKE_CXXFLAGS+="-ftemplate-depth=1024"'] + + if self.options.qtwebengine and self.settings.os in ["Linux", "FreeBSD"]: + args += ["-qt-webengine-ffmpeg", + "-system-webengine-opus"] + + if self.options.config: + args.append(str(self.options.config)) + + os.mkdir("build_folder") + with tools.chdir("build_folder"): + with tools.vcvars(self) if self._is_msvc else tools.no_op(): + build_env = RunEnvironment(self).vars + build_env["MAKEFLAGS"] = "j%d" % tools.cpu_count() + build_env["PKG_CONFIG_PATH"] = [self.build_folder] + if self.settings.os == "Windows": + build_env["PATH"].append(os.path.join(self.source_folder, "qt5", "gnuwin32", "bin")) + + with tools.environment_append(build_env): + print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n", flush=True) + self.run(r'powershell -Command "echo $env:Path"', run_environment=True) + + if tools.os_info.is_macos: + open(".qmake.stash" , "w").close() + open(".qmake.super" , "w").close() + + self.run("%s/qt5/configure %s" % (self.source_folder, " ".join(args)), run_environment=True) + if tools.os_info.is_macos: + with open("bash_env", "w") as f: + f.write('export DYLD_LIBRARY_PATH="%s"' % ":".join(RunEnvironment(self).vars["DYLD_LIBRARY_PATH"])) + with tools.environment_append({ + "BASH_ENV": os.path.abspath("bash_env") + }) if tools.os_info.is_macos else tools.no_op(): + self.run(self._make_program(), run_environment=True) + + @property + def _cmake_executables_file(self): + return os.path.join("lib", "cmake", "Qt5Core", "conan_qt_executables_variables.cmake") + + def _cmake_qt5_private_file(self, module): + return os.path.join("lib", "cmake", "Qt5{0}".format(module), "conan_qt_qt5_{0}private.cmake".format(module.lower())) + + def package(self): + with tools.chdir("build_folder"): + self.run("%s install" % self._make_program()) + with open(os.path.join(self.package_folder, "bin", "qt.conf"), "w") as f: + f.write("""[Paths] +Prefix = .. +ArchData = bin/archdatadir +HostData = bin/archdatadir +Data = bin/datadir +Sysconf = bin/sysconfdir +LibraryExecutables = bin/archdatadir/bin +Plugins = bin/archdatadir/plugins +Imports = bin/archdatadir/imports +Qml2Imports = bin/archdatadir/qml +Translations = bin/datadir/translations +Documentation = bin/datadir/doc +Examples = bin/datadir/examples""") + self.copy("*LICENSE*", src="qt5/", dst="licenses") + for module in self._submodules: + if not self.options.get_safe(module): + tools.rmdir(os.path.join(self.package_folder, "licenses", module)) + tools.rmdir(os.path.join(self.package_folder, "lib", "pkgconfig")) + for mask in ["Find*.cmake", "*Config.cmake", "*-config.cmake"]: + tools.remove_files_by_mask(self.package_folder, mask) + tools.remove_files_by_mask(os.path.join(self.package_folder, "lib"), "*.la*") + tools.remove_files_by_mask(os.path.join(self.package_folder, "lib"), "*.pdb*") + tools.remove_files_by_mask(os.path.join(self.package_folder, "bin"), "*.pdb") + # "Qt5Bootstrap" is internal Qt library - removing it to avoid linking error, since it contains + # symbols that are also in "Qt5Core.lib". It looks like there is no "Qt5Bootstrap.dll". + for fl in glob.glob(os.path.join(self.package_folder, "lib", "*Qt5Bootstrap*")): + os.remove(fl) + + for m in os.listdir(os.path.join(self.package_folder, "lib", "cmake")): + module = os.path.join(self.package_folder, "lib", "cmake", m, "%sMacros.cmake" % m) + if not os.path.isfile(module): + tools.rmdir(os.path.join(self.package_folder, "lib", "cmake", m)) + + extension = "" + if self.settings.os == "Windows": + extension = ".exe" + v = tools.Version(self.version) + filecontents = textwrap.dedent("""\ + set(QT_CMAKE_EXPORT_NAMESPACE Qt5) + set(QT_VERSION_MAJOR {major}) + set(QT_VERSION_MINOR {minor}) + set(QT_VERSION_PATCH {patch}) + """.format(major=v.major, minor=v.minor, patch=v.patch)) + targets = {} + targets["Core"] = ["moc", "rcc", "qmake"] + targets["DBus"] = ["qdbuscpp2xml", "qdbusxml2cpp"] + if self.options.widgets: + targets["Widgets"] = ["uic"] + if self.options.qttools: + targets["Tools"] = ["qhelpgenerator", "qcollectiongenerator", "qdoc", "qtattributionsscanner"] + targets[""] = ["lconvert", "lrelease", "lupdate"] + if self.options.qtremoteobjects: + targets["RemoteObjects"] = ["repc"] + if self.options.qtscxml: + targets["Scxml"] = ["qscxmlc"] + for namespace, targets in targets.items(): + for target in targets: + filecontents += textwrap.dedent("""\ + if(NOT TARGET ${{QT_CMAKE_EXPORT_NAMESPACE}}::{target}) + add_executable(${{QT_CMAKE_EXPORT_NAMESPACE}}::{target} IMPORTED) + set_target_properties(${{QT_CMAKE_EXPORT_NAMESPACE}}::{target} PROPERTIES IMPORTED_LOCATION ${{CMAKE_CURRENT_LIST_DIR}}/../../../bin/{target}{ext}) + set(Qt5{namespace}_{uppercase_target}_EXECUTABLE ${{QT_CMAKE_EXPORT_NAMESPACE}}::{target}) + endif() + """.format(target=target, ext=extension, namespace=namespace, uppercase_target=target.upper())) + + tools.save(os.path.join(self.package_folder, self._cmake_executables_file), filecontents) + + def _create_private_module(module, dependencies=[]): + if "Core" not in dependencies: + dependencies.append("Core") + dependencies_string = ';'.join('Qt5::%s' % dependency for dependency in dependencies) + contents = textwrap.dedent("""\ + if(NOT TARGET Qt5::{0}Private) + add_library(Qt5::{0}Private INTERFACE IMPORTED) + set_target_properties(Qt5::{0}Private PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${{CMAKE_CURRENT_LIST_DIR}}/../../../include/Qt{0}/{1};${{CMAKE_CURRENT_LIST_DIR}}/../../../include/Qt{0}/{1}/Qt{0}" + INTERFACE_LINK_LIBRARIES "{2}" + ) + + add_library(Qt::{0}Private INTERFACE IMPORTED) + set_target_properties(Qt::{0}Private PROPERTIES + INTERFACE_LINK_LIBRARIES "Qt5::{0}Private" + _qt_is_versionless_target "TRUE" + ) + endif()""".format(module, self.version, dependencies_string)) + + tools.save(os.path.join(self.package_folder, self._cmake_qt5_private_file(module)), contents) + + _create_private_module("Core") + + if self.options.gui: + _create_private_module("Gui", ["CorePrivate", "Gui"]) + + if self.options.widgets: + _create_private_module("Widgets", ["CorePrivate", "Gui", "GuiPrivate"]) + + if self.options.qtdeclarative: + _create_private_module("Qml", ["CorePrivate", "Qml"]) + + def package_id(self): + del self.info.options.cross_compile + del self.info.options.sysroot + if self.options.multiconfiguration and self._is_msvc: + if self.settings.compiler == "Visual Studio": + if "MD" in self.settings.compiler.runtime: + self.info.settings.compiler.runtime = "MD/MDd" + else: + self.info.settings.compiler.runtime = "MT/MTd" + else: + self.info.settings.compiler.runtime_type = "Release/Debug" + + def package_info(self): + self.cpp_info.set_property("cmake_file_name", "Qt5") + + self.cpp_info.names["cmake_find_package"] = "Qt5" + self.cpp_info.names["cmake_find_package_multi"] = "Qt5" + + build_modules = [] + + libsuffix = "" + if self.settings.build_type == "Debug": + if self.settings.os == "Windows": + libsuffix = "d" + elif tools.is_apple_os(self.settings.os): + libsuffix = "_debug" + + def _get_corrected_reqs(requires): + reqs = [] + for r in requires: + reqs.append(r if "::" in r else "qt%s" % r) + return reqs + + def _create_module(module, requires=[]): + componentname = "qt%s" % module + assert componentname not in self.cpp_info.components, "Module %s already present in self.cpp_info.components" % module + self.cpp_info.components[componentname].set_property("cmake_target_name", "Qt5::{}".format(module)) + self.cpp_info.components[componentname].names["cmake_find_package"] = module + self.cpp_info.components[componentname].names["cmake_find_package_multi"] = module + if module.endswith("Private"): + libname = module[:-7] + else: + libname = module + self.cpp_info.components[componentname].libs = ["Qt5%s%s" % (libname, libsuffix)] + self.cpp_info.components[componentname].includedirs = ["include", os.path.join("include", "Qt%s" % module)] + self.cpp_info.components[componentname].defines = ["QT_%s_LIB" % module.upper()] + if module != "Core" and "Core" not in requires: + requires.append("Core") + self.cpp_info.components[componentname].requires = _get_corrected_reqs(requires) + + def _create_plugin(pluginname, libname, plugintype, requires): + componentname = "qt%s" % pluginname + assert componentname not in self.cpp_info.components, "Plugin %s already present in self.cpp_info.components" % pluginname + self.cpp_info.components[componentname].set_property("cmake_target_name", "Qt5::{}".format(pluginname)) + self.cpp_info.components[componentname].names["cmake_find_package"] = pluginname + self.cpp_info.components[componentname].names["cmake_find_package_multi"] = pluginname + if not self.options.shared: + self.cpp_info.components[componentname].libs = [libname + libsuffix] + self.cpp_info.components[componentname].libdirs = [os.path.join("bin", "archdatadir", "plugins", plugintype)] + self.cpp_info.components[componentname].includedirs = [] + if "Core" not in requires: + requires.append("Core") + self.cpp_info.components[componentname].requires = _get_corrected_reqs(requires) + + core_reqs = ["zlib::zlib"] + if self.options.with_pcre2: + core_reqs.append("pcre2::pcre2") + if self.options.with_doubleconversion: + core_reqs.append("double-conversion::double-conversion") + if self.options.get_safe("with_icu", False): + core_reqs.append("icu::icu") + if self.options.with_zstd: + core_reqs.append("zstd::zstd") + if self.options.with_glib: + core_reqs.append("glib::glib-2.0") + + _create_module("Core", core_reqs) + if self._is_msvc: + self.cpp_info.components["qtCore"].exelinkflags.append("-ENTRY:mainCRTStartup") + + if self.options.gui: + gui_reqs = [] + if self.options.with_dbus: + gui_reqs.append("DBus") + if self.options.with_freetype: + gui_reqs.append("freetype::freetype") + if self.options.with_libpng: + gui_reqs.append("libpng::libpng") + if self.options.get_safe("with_fontconfig", False): + gui_reqs.append("fontconfig::fontconfig") + if self.settings.os in ["Linux", "FreeBSD"]: + gui_reqs.extend(["xorg::xorg", "xkbcommon::xkbcommon"]) + if self.options.get_safe("opengl", "no") != "no": + gui_reqs.append("opengl::opengl") + if self.options.get_safe("with_vulkan", False): + gui_reqs.append("vulkan-loader::vulkan-loader") + if tools.is_apple_os(self.settings.os): + gui_reqs.append("moltenvk::moltenvk") + if self.options.with_harfbuzz: + gui_reqs.append("harfbuzz::harfbuzz") + if self.options.with_libjpeg == "libjpeg-turbo": + gui_reqs.append("libjpeg-turbo::libjpeg-turbo") + if self.options.with_libjpeg == "libjpeg": + gui_reqs.append("libjpeg::libjpeg") + _create_module("Gui", gui_reqs) + build_modules.append(self._cmake_qt5_private_file("Gui")) + self.cpp_info.components["qtGui"].build_modules["cmake_find_package"].append(self._cmake_qt5_private_file("Gui")) + self.cpp_info.components["qtGui"].build_modules["cmake_find_package_multi"].append(self._cmake_qt5_private_file("Gui")) + + if self.settings.os == "Windows": + _create_plugin("QWindowsIntegrationPlugin", "qwindows", "platforms", ["Core", "Gui"]) + self.cpp_info.components["qtQWindowsIntegrationPlugin"].system_libs = ["advapi32", "dwmapi", "gdi32", "imm32", + "ole32", "oleaut32", "shell32", "shlwapi", "user32", "winmm", "winspool", "wtsapi32"] + elif self.settings.os == "Android": + _create_plugin("QAndroidIntegrationPlugin", "qtforandroid", "platforms", ["Core", "Gui"]) + self.cpp_info.components["qtQAndroidIntegrationPlugin"].system_libs = ["android", "jnigraphics"] + elif self.settings.os == "Macos": + _create_plugin("QCocoaIntegrationPlugin", "qcocoa", "platforms", ["Core", "Gui"]) + self.cpp_info.components["QCocoaIntegrationPlugin"].frameworks = ["AppKit", "Carbon", "CoreServices", "CoreVideo", + "IOKit", "IOSurface", "Metal", "QuartzCore"] + elif self.settings.os in ["iOS", "tvOS"]: + _create_plugin("QIOSIntegrationPlugin", "qios", "platforms", []) + self.cpp_info.components["QIOSIntegrationPlugin"].frameworks = ["AudioToolbox", "Foundation", "Metal", + "QuartzCore", "UIKit"] + elif self.settings.os == "watchOS": + _create_plugin("QMinimalIntegrationPlugin", "qminimal", "platforms", []) + elif self.settings.os == "Emscripten": + _create_plugin("QWasmIntegrationPlugin", "qwasm", "platforms", ["Core", "Gui"]) + elif self.settings.os in ["Linux", "FreeBSD"]: + _create_module("XcbQpaPrivate", ["xkbcommon::libxkbcommon-x11", "xorg::xorg"]) + _create_plugin("QXcbIntegrationPlugin", "qxcb", "platforms", ["Core", "Gui", "XcbQpaPrivate"]) + + if self.options.with_sqlite3: + _create_plugin("QSQLiteDriverPlugin", "qsqlite", "sqldrivers", ["sqlite3::sqlite3"]) + if self.options.with_pq: + _create_plugin("QPSQLDriverPlugin", "qsqlpsql", "sqldrivers", ["libpq::libpq"]) + if self.options.get_safe("with_mysql", False): + _create_plugin("QMySQLDriverPlugin", "qsqlmysql", "sqldrivers", ["libmysqlclient::libmysqlclient"]) + if self.options.with_odbc: + if self.settings.os != "Windows": + _create_plugin("QODBCDriverPlugin", "qsqlodbc", "sqldrivers", ["odbc::odbc"]) + networkReqs = [] + if self.options.openssl: + networkReqs.append("openssl::openssl") + _create_module("Network", networkReqs) + _create_module("Sql") + _create_module("Test") + if self.options.widgets: + _create_module("Widgets", ["Gui"]) + build_modules.append(self._cmake_qt5_private_file("Widgets")) + self.cpp_info.components["qtWidgets"].build_modules["cmake_find_package"].append(self._cmake_qt5_private_file("Widgets")) + self.cpp_info.components["qtWidgets"].build_modules["cmake_find_package_multi"].append(self._cmake_qt5_private_file("Widgets")) + if self.options.gui and self.options.widgets: + _create_module("PrintSupport", ["Gui", "Widgets"]) + if self.options.get_safe("opengl", "no") != "no" and self.options.gui: + _create_module("OpenGL", ["Gui"]) + if self.options.widgets and self.options.get_safe("opengl", "no") != "no": + _create_module("OpenGLExtensions", ["Gui"]) + if self.options.with_dbus: + _create_module("DBus", ["dbus::dbus"]) + _create_module("Concurrent") + _create_module("Xml") + + if self.options.qtdeclarative: + _create_module("Qml", ["Network"]) + build_modules.append(self._cmake_qt5_private_file("Qml")) + self.cpp_info.components["qtQml"].build_modules["cmake_find_package"].append(self._cmake_qt5_private_file("Qml")) + self.cpp_info.components["qtQml"].build_modules["cmake_find_package_multi"].append(self._cmake_qt5_private_file("Qml")) + _create_module("QmlModels", ["Qml"]) + self.cpp_info.components["qtQmlImportScanner"].set_property("cmake_target_name", "Qt5::QmlImportScanner") + self.cpp_info.components["qtQmlImportScanner"].names["cmake_find_package"] = "QmlImportScanner" # this is an alias for Qml and there to integrate with existing consumers + self.cpp_info.components["qtQmlImportScanner"].names["cmake_find_package_multi"] = "QmlImportScanner" + self.cpp_info.components["qtQmlImportScanner"].requires = _get_corrected_reqs(["Qml"]) + if self.options.gui: + _create_module("Quick", ["Gui", "Qml", "QmlModels"]) + if self.options.widgets: + _create_module("QuickWidgets", ["Gui", "Qml", "Quick", "Widgets"]) + _create_module("QuickShapes", ["Gui", "Qml", "Quick"]) + _create_module("QmlWorkerScript", ["Qml"]) + _create_module("QuickTest", ["Test"]) + + if self.options.qttools and self.options.gui and self.options.widgets: + self.cpp_info.components["qtLinguistTools"].set_property("cmake_target_name", "Qt5::LinguistTools") + self.cpp_info.components["qtLinguistTools"].names["cmake_find_package"] = "LinguistTools" + self.cpp_info.components["qtLinguistTools"].names["cmake_find_package_multi"] = "LinguistTools" + _create_module("UiPlugin", ["Gui", "Widgets"]) + self.cpp_info.components["qtUiPlugin"].libs = [] # this is a collection of abstract classes, so this is header-only + self.cpp_info.components["qtUiPlugin"].libdirs = [] + _create_module("UiTools", ["UiPlugin", "Gui", "Widgets"]) + _create_module("Designer", ["Gui", "UiPlugin", "Widgets", "Xml"]) + _create_module("Help", ["Gui", "Sql", "Widgets"]) + + if self.options.qtquick3d and self.options.gui: + _create_module("Quick3DUtils", ["Gui"]) + _create_module("Quick3DAssetImport", ["Gui", "Qml", "Quick3DRender", "Quick3DUtils"]) + _create_module("Quick3DRender", ["Quick3DUtils", "Quick"]) + _create_module("Quick3DRuntimeRender", ["Quick3DRender", "Quick3DAssetImport", "Quick3DUtils"]) + _create_module("Quick3D", ["Gui", "Qml", "Quick", "Quick3DRuntimeRender"]) + + if self.options.qtquickcontrols2 and self.options.gui: + _create_module("QuickControls2", ["Gui", "Quick"]) + _create_module("QuickTemplates2", ["Gui", "Quick"]) + + if self.options.qtsvg and self.options.gui: + _create_module("Svg", ["Gui"]) + + if self.options.qtwayland and self.options.gui: + _create_module("WaylandClient", ["Gui", "wayland::wayland-client"]) + _create_module("WaylandCompositor", ["Gui", "wayland::wayland-server"]) + + if self.options.qtlocation: + _create_module("Positioning") + _create_module("Location", ["Gui", "Quick"]) + _create_plugin("QGeoServiceProviderFactoryMapbox", "qtgeoservices_mapbox", "geoservices", []) + _create_plugin("QGeoServiceProviderFactoryMapboxGL", "qtgeoservices_mapboxgl", "geoservices", []) + _create_plugin("GeoServiceProviderFactoryEsri", "qtgeoservices_esri", "geoservices", []) + _create_plugin("QGeoServiceProviderFactoryItemsOverlay", "qtgeoservices_itemsoverlay", "geoservices", []) + _create_plugin("QGeoServiceProviderFactoryNokia", "qtgeoservices_nokia", "geoservices", []) + _create_plugin("QGeoServiceProviderFactoryOsm", "qtgeoservices_osm", "geoservices", []) + _create_plugin("QGeoPositionInfoSourceFactoryGeoclue", "qtposition_geoclue", "position", []) + _create_plugin("QGeoPositionInfoSourceFactoryGeoclue2", "qtposition_geoclue2", "position", []) + _create_plugin("QGeoPositionInfoSourceFactoryPoll", "qtposition_positionpoll", "position", []) + _create_plugin("QGeoPositionInfoSourceFactorySerialNmea", "qtposition_serialnmea", "position", []) + + if self.options.qtwebchannel: + _create_module("WebChannel", ["Qml"]) + + if self.options.qtwebengine: + webenginereqs = ["Gui", "Quick", "WebChannel", "Positioning"] + if self.settings.os in ["Linux", "FreeBSD"]: + webenginereqs.extend(["expat::expat", "opus::libopus"]) + _create_module("WebEngineCore", webenginereqs) + _create_module("WebEngine", ["WebEngineCore"]) + _create_module("WebEngineWidgets", ["WebEngineCore", "Quick", "PrintSupport", "Widgets", "Gui", "Network"]) + + if self.options.qtserialport: + _create_module("SerialPort") + + if self.options.qtserialbus: + _create_module("SerialBus", ["SerialPort"]) + _create_plugin("PassThruCanBusPlugin", "qtpassthrucanbus", "canbus", []) + _create_plugin("PeakCanBusPlugin", "qtpeakcanbus", "canbus", []) + _create_plugin("SocketCanBusPlugin", "qtsocketcanbus", "canbus", []) + _create_plugin("TinyCanBusPlugin", "qttinycanbus", "canbus", []) + _create_plugin("VirtualCanBusPlugin", "qtvirtualcanbus", "canbus", []) + + if self.options.qtsensors: + _create_module("Sensors") + _create_plugin("genericSensorPlugin", "qtsensors_generic", "sensors", []) + _create_plugin("IIOSensorProxySensorPlugin", "qtsensors_iio-sensor-proxy", "sensors", []) + if self.settings.os == "Linux": + _create_plugin("LinuxSensorPlugin", "qtsensors_linuxsys", "sensors", []) + _create_plugin("QtSensorGesturePlugin", "qtsensorgestures_plugin", "sensorgestures", []) + _create_plugin("QShakeSensorGesturePlugin", "qtsensorgestures_shakeplugin", "sensorgestures", []) + + if self.options.qtscxml: + _create_module("Scxml", ["Qml"]) + + if self.options.qtpurchasing: + _create_module("Purchasing") + + if self.options.qtcharts: + _create_module("Charts", ["Gui", "Widgets"]) + + if self.options.qt3d: + _create_module("3DCore", ["Gui", "Network"]) + + _create_module("3DRender", ["3DCore"]) + _create_plugin("DefaultGeometryLoaderPlugin", "defaultgeometryloader", "geometryloaders", []) + _create_plugin("GLTFGeometryLoaderPlugin", "gltfgeometryloader", "geometryloaders", []) + _create_plugin("GLTFSceneExportPlugin", "gltfsceneexport", "sceneparsers", []) + _create_plugin("GLTFSceneImportPlugin", "gltfsceneimport", "sceneparsers", []) + _create_plugin("OpenGLRendererPlugin", "openglrenderer", "renderers", []) + _create_plugin("Scene2DPlugin", "scene2d", "renderplugins", []) + + _create_module("3DAnimation", ["3DRender", "3DCore", "Gui"]) + _create_module("3DInput", ["3DCore", "Gamepad", "Gui"]) + _create_module("3DLogic", ["3DCore", "Gui"]) + _create_module("3DExtras", ["3DRender", "3DInput", "3DLogic", "3DCore", "Gui"]) + _create_module("3DQuick", ["3DCore", "Quick", "Gui", "Qml"]) + _create_module("3DQuickAnimation", ["3DAnimation", "3DRender", "3DQuick", "3DCore", "Gui", "Qml"]) + _create_module("3DQuickExtras", ["3DExtras", "3DInput", "3DQuick", "3DRender", "3DLogic", "3DCore", "Gui", "Qml"]) + _create_module("3DQuickInput", ["3DInput", "3DQuick", "3DCore", "Gui", "Qml"]) + _create_module("3DQuickRender", ["3DRender", "3DQuick", "3DCore", "Gui", "Qml"]) + _create_module("3DQuickScene2D", ["3DRender", "3DQuick", "3DCore", "Gui", "Qml"]) + + if self.options.qtgamepad: + _create_module("Gamepad", ["Gui"]) + if self.settings.os == "Linux": + _create_plugin("QEvdevGamepadBackendPlugin", "evdevgamepad", "gamepads", []) + if self.settings.os == "Macos": + _create_plugin("QDarwinGamepadBackendPlugin", "darwingamepad", "gamepads", []) + if self.settings.os =="Windows": + _create_plugin("QXInputGamepadBackendPlugin", "xinputgamepad", "gamepads", []) + + if self.options.qtmultimedia: + multimedia_reqs = ["Network", "Gui"] + if self.options.get_safe("with_libalsa", False): + multimedia_reqs.append("libalsa::libalsa") + if self.options.with_openal: + multimedia_reqs.append("openal::openal") + if self.options.get_safe("with_pulseaudio", False): + multimedia_reqs.append("pulseaudio::pulse") + _create_module("Multimedia", multimedia_reqs) + _create_module("MultimediaWidgets", ["Multimedia", "Widgets", "Gui"]) + if self.options.qtdeclarative and self.options.gui: + _create_module("MultimediaQuick", ["Multimedia", "Quick"]) + _create_plugin("QM3uPlaylistPlugin", "qtmultimedia_m3u", "playlistformats", []) + if self.options.with_gstreamer: + _create_module("MultimediaGstTools", ["Multimedia", "MultimediaWidgets", "Gui", "gst-plugins-base::gst-plugins-base"]) + _create_plugin("QGstreamerAudioDecoderServicePlugin", "gstaudiodecoder", "mediaservice", []) + _create_plugin("QGstreamerCaptureServicePlugin", "gstmediacapture", "mediaservice", []) + _create_plugin("QGstreamerPlayerServicePlugin", "gstmediaplayer", "mediaservice", []) + if self.settings.os == "Linux": + _create_plugin("CameraBinServicePlugin", "gstcamerabin", "mediaservice", []) + _create_plugin("QAlsaPlugin", "qtaudio_alsa", "audio", []) + if self.settings.os == "Windows": + _create_plugin("AudioCaptureServicePlugin", "qtmedia_audioengine", "mediaservice", []) + _create_plugin("DSServicePlugin", "dsengine", "mediaservice", []) + _create_plugin("QWindowsAudioPlugin", "qtaudio_windows", "audio", []) + if self.settings.os == "Macos": + _create_plugin("AudioCaptureServicePlugin", "qtmedia_audioengine", "mediaservice", []) + _create_plugin("AVFMediaPlayerServicePlugin", "qavfmediaplayer", "mediaservice", []) + _create_plugin("AVFServicePlugin", "qavfcamera", "mediaservice", []) + _create_plugin("CoreAudioPlugin", "qtaudio_coreaudio", "audio", []) + + if self.options.qtwebsockets: + _create_module("WebSockets", ["Network"]) + + if self.options.qtconnectivity: + _create_module("Bluetooth", ["Network"]) + _create_module("Nfc", []) + + if self.options.qtdatavis3d: + _create_module("DataVisualization", ["Gui"]) + + if self.options.qtnetworkauth: + _create_module("NetworkAuth", ["Network"]) + + if self.settings.os != "Windows": + self.cpp_info.components["qtCore"].cxxflags.append("-fPIC") + + if self.options.get_safe("qtx11extras"): + _create_module("X11Extras") + + if self.options.qtremoteobjects: + _create_module("RemoteObjects") + + if self.options.qtwinextras: + _create_module("WinExtras") + + if self.options.qtmacextras: + _create_module("MacExtras") + + if self.options.qtxmlpatterns: + _create_module("XmlPatterns", ["Network"]) + + if self.options.qtactiveqt: + _create_module("AxBase", ["Gui", "Widgets"]) + self.cpp_info.components["qtAxBase"].includedirs = ["include", os.path.join("include", "ActiveQt")] + self.cpp_info.components["qtAxBase"].system_libs.extend(["ole32", "oleaut32", "user32", "gdi32", "advapi32"]) + if self.settings.compiler == "gcc": + self.cpp_info.components["qtAxBase"].system_libs.append("uuid") + _create_module("AxContainer", ["Core", "Gui", "Widgets", "AxBase"]) + self.cpp_info.components["qtAxContainer"].includedirs = [os.path.join("include", "ActiveQt")] + _create_module("AxServer", ["Core", "Gui", "Widgets", "AxBase"]) + self.cpp_info.components["qtAxServer"].includedirs = [os.path.join("include", "ActiveQt")] + self.cpp_info.components["qtAxServer"].system_libs.append("shell32") + + if self.options.qtscript: + _create_module("Script") + if self.options.widgets: + _create_module("ScriptTools", ["Gui", "Widgets", "Script"]) + + if self.options.qtandroidextras: + _create_module("AndroidExtras") + + if self.options.qtwebview: + _create_module("WebView", ["Gui", "Quick"]) + + if self.options.qtvirtualkeyboard: + _create_module("VirtualKeyboard", ["Qml", "Quick", "Gui"]) + + if self.options.qtspeech: + _create_module("TextToSpeech") + + if not self.options.shared: + if self.settings.os == "Windows": + self.cpp_info.components["qtCore"].system_libs.append("version") # qtcore requires "GetFileVersionInfoW" and "VerQueryValueW" which are in "Version.lib" library + self.cpp_info.components["qtCore"].system_libs.append("winmm") # qtcore requires "__imp_timeSetEvent" which is in "Winmm.lib" library + self.cpp_info.components["qtCore"].system_libs.append("netapi32") # qtcore requires "NetApiBufferFree" which is in "Netapi32.lib" library + self.cpp_info.components["qtCore"].system_libs.append("userenv") # qtcore requires "__imp_GetUserProfileDirectoryW " which is in "UserEnv.Lib" library + self.cpp_info.components["qtCore"].system_libs.append("ws2_32") # qtcore requires "WSAStartup " which is in "Ws2_32.Lib" library + self.cpp_info.components["qtNetwork"].system_libs.append("dnsapi") # qtnetwork from qtbase requires "DnsFree" which is in "Dnsapi.lib" library + self.cpp_info.components["qtNetwork"].system_libs.append("iphlpapi") + if self.options.widgets: + self.cpp_info.components["qtWidgets"].system_libs.append("UxTheme") + self.cpp_info.components["qtWidgets"].system_libs.append("dwmapi") + if self.options.qtwinextras: + self.cpp_info.components["qtWinExtras"].system_libs.append("dwmapi") # qtwinextras requires "DwmGetColorizationColor" which is in "dwmapi.lib" library + + + if self.settings.os == "Macos": + self.cpp_info.components["qtCore"].frameworks.append("IOKit") # qtcore requires "_IORegistryEntryCreateCFProperty", "_IOServiceGetMatchingService" and much more which are in "IOKit" framework + self.cpp_info.components["qtCore"].frameworks.append("Cocoa") # qtcore requires "_OBJC_CLASS_$_NSApplication" and more, which are in "Cocoa" framework + self.cpp_info.components["qtCore"].frameworks.append("Security") # qtcore requires "_SecRequirementCreateWithString" and more, which are in "Security" framework + self.cpp_info.components["qtNetwork"].frameworks.append("SystemConfiguration") + self.cpp_info.components["qtNetwork"].frameworks.append("GSS") + + self.cpp_info.components["qtCore"].builddirs.append(os.path.join("bin","archdatadir","bin")) + build_modules.append(self._cmake_executables_file) + self.cpp_info.components["qtCore"].build_modules["cmake_find_package"].append(self._cmake_executables_file) + self.cpp_info.components["qtCore"].build_modules["cmake_find_package_multi"].append(self._cmake_executables_file) + build_modules.append(self._cmake_qt5_private_file("Core")) + self.cpp_info.components["qtCore"].build_modules["cmake_find_package"].append(self._cmake_qt5_private_file("Core")) + self.cpp_info.components["qtCore"].build_modules["cmake_find_package_multi"].append(self._cmake_qt5_private_file("Core")) + + for m in os.listdir(os.path.join("lib", "cmake")): + module = os.path.join("lib", "cmake", m, "%sMacros.cmake" % m) + component_name = m.replace("Qt5", "qt") + if os.path.isfile(module): + build_modules.append(module) + self.cpp_info.components[component_name].build_modules["cmake_find_package"].append(module) + self.cpp_info.components[component_name].build_modules["cmake_find_package_multi"].append(module) + self.cpp_info.components[component_name].builddirs.append(os.path.join("lib", "cmake", m)) + + qt5core_config_extras_mkspec_dir_cmake = tools.load( + os.path.join("lib", "cmake", "Qt5Core", "Qt5CoreConfigExtrasMkspecDir.cmake")) + mkspecs_dir_begin = qt5core_config_extras_mkspec_dir_cmake.find("mkspecs/") + mkspecs_dir_end = qt5core_config_extras_mkspec_dir_cmake.find("\"", mkspecs_dir_begin) + mkspecs_dir = qt5core_config_extras_mkspec_dir_cmake[mkspecs_dir_begin:mkspecs_dir_end].split('/') + mkspecs_path = os.path.join("bin", "archdatadir", *mkspecs_dir) + assert os.path.exists(mkspecs_path) + self.cpp_info.components["qtCore"].includedirs.append(mkspecs_path) + + objects_dirs = glob.glob(os.path.join(self.package_folder, "lib", "objects-*/")) + for object_dir in objects_dirs: + for m in os.listdir(object_dir): + component = "qt" + m[:m.find("_")] + if component not in self.cpp_info.components: + continue + submodules_dir = os.path.join(object_dir, m) + for sub_dir in os.listdir(submodules_dir): + submodule_dir = os.path.join(submodules_dir, sub_dir) + obj_files = [os.path.join(submodule_dir, file) for file in os.listdir(submodule_dir)] + self.cpp_info.components[component].exelinkflags.extend(obj_files) + self.cpp_info.components[component].sharedlinkflags.extend(obj_files) + + self.cpp_info.set_property("cmake_build_modules", build_modules) + + @staticmethod + def _remove_duplicate(l): + seen = set() + seen_add = seen.add + for element in itertools.filterfalse(seen.__contains__, l): + seen_add(element) + yield element + + def _gather_libs(self, p): + if not p in self.deps_cpp_info.deps: + return [] + libs = ["-l" + i for i in self.deps_cpp_info[p].libs + self.deps_cpp_info[p].system_libs] + if tools.is_apple_os(self.settings.os): + libs += ["-framework " + i for i in self.deps_cpp_info[p].frameworks] + libs += self.deps_cpp_info[p].sharedlinkflags + for dep in self.deps_cpp_info[p].public_deps: + libs += self._gather_libs(dep) + return self._remove_duplicate(libs) diff --git a/qt/5.x.x/patches/7371d3a.diff b/qt/5.x.x/patches/7371d3a.diff new file mode 100644 index 0000000..9488a6a --- /dev/null +++ b/qt/5.x.x/patches/7371d3a.diff @@ -0,0 +1,38 @@ +Parent: 30151e20 (Fix misidentification of some shearing QTransforms as only rotating) +Author: Zhang Yu +AuthorDate: 2020-11-17 21:05:39 +0800 +Commit: Zhang Yu +CommitDate: 2020-11-18 07:41:48 +0000 + +Fix QGraphicsItem crash if click right button of mouse + +In this case, the 'parent' is QGraphicsTextItem which isn't a object +inheriting from QWidget. Converting QGraphicsTextItem to QWidget +by static_cast and using it as QWidget leads to crash. + +Fixes: QTBUG-88309 +Change-Id: I3c583f43125eb36841848434d1fa9a135b0e9f57 +Reviewed-by: Volker Hilsheimer +(cherry picked from commit 4df5f93018344f6cdc6cd5a08a084b1c61e0c076) + +diff --git a/src/widgets/widgets/qwidgettextcontrol.cpp b/src/widgets/widgets/qwidgettextcontrol.cpp +index 40b8af6..e2a07c0 100644 +--- a/src/widgets/widgets/qwidgettextcontrol.cpp ++++ b/src/widgets/widgets/qwidgettextcontrol.cpp +@@ -1942,10 +1942,14 @@ + if (!menu) + return; + menu->setAttribute(Qt::WA_DeleteOnClose); +- if (auto *window = static_cast(parent)->window()->windowHandle()) { +- QMenuPrivate::get(menu)->topData()->initialScreenIndex = ++ ++ if (auto *widget = qobject_cast(parent)) { ++ if (auto *window = widget->window()->windowHandle()) { ++ QMenuPrivate::get(menu)->topData()->initialScreenIndex = + QGuiApplication::screens().indexOf(window->screen()); ++ } + } ++ + menu->popup(screenPos); + #endif + } diff --git a/qt/5.x.x/patches/QTBUG-88625.diff b/qt/5.x.x/patches/QTBUG-88625.diff new file mode 100644 index 0000000..ed0c1fd --- /dev/null +++ b/qt/5.x.x/patches/QTBUG-88625.diff @@ -0,0 +1,58 @@ +Fix compile errors in QtWebEngine when building with VS2019 >= 16.8.0 . +See https://bugreports.qt.io/browse/QTBUG-88625 and +https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/321741 . + +diff -u -r a/src/3rdparty/chromium/third_party/angle/src/common/mathutil.cpp b/src/3rdparty/chromium/third_party/angle/src/common/mathutil.cpp +--- a/src/3rdparty/chromium/third_party/angle/src/common/mathutil.cpp 2021-05-20 13:38:32.243947800 +0200 ++++ b/src/3rdparty/chromium/third_party/angle/src/common/mathutil.cpp 2021-05-20 12:25:30.392900700 +0200 +@@ -72,11 +72,11 @@ + const RGB9E5Data *inputData = reinterpret_cast(&input); + + *red = +- inputData->R * pow(2.0f, (int)inputData->E - g_sharedexp_bias - g_sharedexp_mantissabits); ++ inputData->R * (float)pow(2.0f, (int)inputData->E - g_sharedexp_bias - g_sharedexp_mantissabits); + *green = +- inputData->G * pow(2.0f, (int)inputData->E - g_sharedexp_bias - g_sharedexp_mantissabits); ++ inputData->G * (float)pow(2.0f, (int)inputData->E - g_sharedexp_bias - g_sharedexp_mantissabits); + *blue = +- inputData->B * pow(2.0f, (int)inputData->E - g_sharedexp_bias - g_sharedexp_mantissabits); ++ inputData->B * (float)pow(2.0f, (int)inputData->E - g_sharedexp_bias - g_sharedexp_mantissabits); + } + + } // namespace gl +diff -u -r a/src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/lab_color_space.h b/src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/lab_color_space.h +--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/lab_color_space.h 2020-11-07 02:22:36.000000000 +0100 ++++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/lab_color_space.h 2021-05-20 13:39:42.890109500 +0200 +@@ -130,7 +130,7 @@ + // https://en.wikipedia.org/wiki/CIELAB_color_space#Forward_transformation. + FloatPoint3D toXYZ(const FloatPoint3D& lab) const { + auto invf = [](float x) { +- return x > kSigma ? pow(x, 3) : 3 * kSigma2 * (x - 4.0f / 29.0f); ++ return x > kSigma ? (float)pow(x, 3) : 3 * kSigma2 * (x - 4.0f / 29.0f); + }; + + FloatPoint3D v = {clamp(lab.X(), 0.0f, 100.0f), +diff -u -r a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/timestamped_trace_piece.h b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/timestamped_trace_piece.h +--- a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/timestamped_trace_piece.h 2020-11-07 02:22:36.000000000 +0100 ++++ b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/timestamped_trace_piece.h 2021-05-20 13:41:08.983902900 +0200 +@@ -197,6 +197,20 @@ + } + return *this; + } ++ ++ #if PERFETTO_BUILDFLAG(PERFETTO_COMPILER_MSVC) ++ TimestampedTracePiece& operator=(TimestampedTracePiece&& ttp) const ++ { ++ if (this != &ttp) { ++ // First invoke the destructor and then invoke the move constructor ++ // inline via placement-new to implement move-assignment. ++ this->~TimestampedTracePiece(); ++ new (const_cast(this)) TimestampedTracePiece(std::move(ttp)); ++ } ++ ++ return const_cast(*this); ++ } ++#endif // PERFETTO_BUILDFLAG(PERFETTO_COMPILER_MSVC) + + ~TimestampedTracePiece() { + switch (type) { diff --git a/qt/5.x.x/patches/QTBUG-90395.diff b/qt/5.x.x/patches/QTBUG-90395.diff new file mode 100644 index 0000000..9d39131 --- /dev/null +++ b/qt/5.x.x/patches/QTBUG-90395.diff @@ -0,0 +1,38 @@ +Description: include to fix some GCC 11 build issues +Origin: upstream, commits: + https://code.qt.io/cgit/qt/qtbase.git/commit/?id=813a928c7c3cf986 + https://code.qt.io/cgit/qt/qtbase.git/commit/?id=9c56d4da2ff631a8 +Last-Update: 2021-01-26 + +--- a/src/corelib/global/qendian.h ++++ b/src/corelib/global/qendian.h +@@ -44,6 +44,8 @@ + #include + #include + ++#include ++ + // include stdlib.h and hope that it defines __GLIBC__ for glibc-based systems + #include + #include +--- a/src/corelib/global/qfloat16.h ++++ b/src/corelib/global/qfloat16.h +@@ -43,6 +43,7 @@ + + #include + #include ++#include + #include + + #if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__AVX2__) && !defined(__F16C__) +--- a/src/corelib/text/qbytearraymatcher.h ++++ b/src/corelib/text/qbytearraymatcher.h +@@ -42,6 +42,8 @@ + + #include + ++#include ++ + QT_BEGIN_NAMESPACE + + diff --git a/qt/5.x.x/patches/aa2a39dea5.diff b/qt/5.x.x/patches/aa2a39dea5.diff new file mode 100644 index 0000000..3fe3827 --- /dev/null +++ b/qt/5.x.x/patches/aa2a39dea5.diff @@ -0,0 +1,29 @@ +From aa2a39dea5918c63045310b0d2a7e34ce9934e0c Mon Sep 17 00:00:00 2001 +From: Eric Lemanissier +Date: Tue, 26 Nov 2019 12:47:47 +0100 +Subject: [PATCH] add inline source detection to glib + +this allows to use static version of glib (pkg-config only works with shared libraries) + +Change-Id: If9b0054985b87b8da43269425b32c2e4ffb65f5a +--- + src/corelib/configure.json | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/corelib/configure.json b/src/corelib/configure.json +index ae360239c6..998687dc4e 100644 +--- a/src/corelib/configure.json ++++ b/src/corelib/configure.json +@@ -45,7 +45,8 @@ + }, + "headers": "glib.h", + "sources": [ +- { "type": "pkgConfig", "args": "glib-2.0 gthread-2.0" } ++ { "type": "pkgConfig", "args": "glib-2.0 gthread-2.0" }, ++ "-lgthread-2.0 -lglib-2.0" + ] + }, + "posix_iconv": { +-- +2.23.0.windows.1 + diff --git a/qt/5.x.x/patches/c72097e.diff b/qt/5.x.x/patches/c72097e.diff new file mode 100644 index 0000000..56b2679 --- /dev/null +++ b/qt/5.x.x/patches/c72097e.diff @@ -0,0 +1,42 @@ +From c72097e8790553771daf3231124c3fbe1a438379 Mon Sep 17 00:00:00 2001 +From: Samuli Piippo +Date: Thu, 30 Mar 2017 11:37:24 +0300 +Subject: [PATCH] chromium: workaround for too long .rps file name + +Ninja may fail when the build directory is too long: + +ninja: error: WriteFile(__third_party_WebKit_Source_bindings_modules_\ +interfaces_info_individual_modules__home_qt_work_build_build-nitrogen\ +6x_tmp_work_cortexa9hf-neon-mx6qdl-poky-linux-gnueabi_qtwebengine_5.9\ +.0_gitAUTOINC_29afdb0a34_049134677a-r0_build_src_toolchain_target__ru\ +le.rsp): Unable to create file. File name too long + +Task-number: QTBUG-59769 +Change-Id: I73c5e64ae5174412be2a675e35b0b6047f2bf4c1 +--- + src/3rdparty/gn/tools/gn/ninja_action_target_writer.cc | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/src/3rdparty/gn/tools/gn/ninja_action_target_writer.cc b/src/3rdparty/gn/tools/gn/ninja_action_target_writer.cc +index a5bc6cd..5cefbfe 100644 +--- a/src/3rdparty/gn/tools/gn/ninja_action_target_writer.cc ++++ b/src/3rdparty/gn/tools/gn/ninja_action_target_writer.cc +@@ -119,9 +119,18 @@ std::string NinjaActionTargetWriter::WriteRuleDefinition() { + // strictly necessary for regular one-shot actions, but it's easier to + // just always define unique_name. + std::string rspfile = custom_rule_name; ++ ++ //quick workaround if filename length > 255 - ".rsp", just cut the dirs starting from the end ++ //please note ".$unique_name" is not used at the moment ++ int pos = 0; ++ std::string delimiter("_"); ++ while (rspfile.length() > 250 && (pos = rspfile.find_last_of(delimiter)) != std::string::npos) ++ rspfile = rspfile.substr(0,pos); ++ + if (!target_->sources().empty()) + rspfile += ".$unique_name"; + rspfile += ".rsp"; ++ + out_ << " rspfile = " << rspfile << std::endl; + + // Response file contents. diff --git a/qt/5.x.x/patches/dece6f5.diff b/qt/5.x.x/patches/dece6f5.diff new file mode 100644 index 0000000..cd70c3d --- /dev/null +++ b/qt/5.x.x/patches/dece6f5.diff @@ -0,0 +1,14 @@ +diff --git a/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h b/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h +index e070ba977d..35a62f59e3 100644 +--- a/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h ++++ b/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h +@@ -43,6 +43,9 @@ + #include + #include + ++ ++#include ++ + QT_BEGIN_NAMESPACE + + class QIOSurfaceGraphicsBuffer : public QPlatformGraphicsBuffer diff --git a/qt/5.x.x/patches/declarative_missing_header.diff b/qt/5.x.x/patches/declarative_missing_header.diff new file mode 100644 index 0000000..3422534 --- /dev/null +++ b/qt/5.x.x/patches/declarative_missing_header.diff @@ -0,0 +1,11 @@ +--- a/src/qmldebug/qqmlprofilerevent_p.h ++++ b/src/qmldebug/qqmlprofilerevent_p.h +@@ -49,7 +49,7 @@ + + #include + #include +- ++#include + // + // W A R N I N G + // ------------- diff --git a/qt/5.x.x/patches/f830b86.diff b/qt/5.x.x/patches/f830b86.diff new file mode 100644 index 0000000..3b0d181 --- /dev/null +++ b/qt/5.x.x/patches/f830b86.diff @@ -0,0 +1,51 @@ +From f830b86ef770100f6e3fa234ac3e00eee7a1cd70 Mon Sep 17 00:00:00 2001 +From: Peter Varga +Date: Mon, 16 Nov 2020 11:11:13 +0100 +Subject: [PATCH] [Backport] mac: make find_sdk.py work when the sdk goes to 11 + +Bug: 1098738 +Change-Id: I25b84537a445ecb8f80241c98d4753932f5f7c90 +Commit-Queue: Nico Weber +Commit-Queue: Mark Mentovai +Auto-Submit: Nico Weber +Reviewed-by: Mark Mentovai +Cr-Commit-Position: refs/heads/master@{#781835} +Reviewed-by: Allan Sandfeld Jensen +--- + +diff --git a/chromium/build/mac/find_sdk.py b/chromium/build/mac/find_sdk.py +index 38c2883..a2f7455 100755 +--- a/chromium/build/mac/find_sdk.py ++++ b/chromium/build/mac/find_sdk.py +@@ -2,8 +2,7 @@ + # Copyright (c) 2012 The Chromium Authors. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +- +-"""Prints the lowest locally available SDK version greater than or equal to a ++r"""Prints the lowest locally available SDK version greater than or equal to a + given minimum sdk version to standard output. + + If --developer_dir is passed, then the script will use the Xcode toolchain +@@ -14,8 +13,10 @@ + toolchain bin dir. + + Usage: +- python find_sdk.py [--developer_dir DEVELOPER_DIR] [--print_sdk_path] \ +- [--print_bin_path] 10.6 # Ignores SDKs < 10.6 ++ python find_sdk.py \ ++ [--print_sdk_path] \ ++ [--print_bin_path] \ ++ 10.6 # Ignores SDKs < 10.6 + + Sample Output: + /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk +@@ -88,7 +89,7 @@ + raise SdkError('Install Xcode, launch it, accept the license ' + + 'agreement, and run `sudo xcode-select -s /path/to/Xcode.app` ' + + 'to continue.') +- sdks = [re.findall('^MacOSX(10\.\d+)\.sdk$', s) for s in os.listdir(sdk_dir)] ++ sdks = [re.findall('^MacOSX(\d+\.\d+)\.sdk$', s) for s in os.listdir(sdk_dir)] + sdks = [s[0] for s in sdks if s] # [['10.5'], ['10.6']] => ['10.5', '10.6'] + sdks = [s for s in sdks # ['10.5', '10.6'] => ['10.6'] + if parse_version(s) >= parse_version(min_sdk_version)] diff --git a/qt/5.x.x/patches/fix-gcc-11.diff b/qt/5.x.x/patches/fix-gcc-11.diff new file mode 100644 index 0000000..5818509 --- /dev/null +++ b/qt/5.x.x/patches/fix-gcc-11.diff @@ -0,0 +1,10 @@ +--- a/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.h ++++ b/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.h +@@ -19,6 +19,7 @@ + + #include + #include ++#include + + #include + #include \ No newline at end of file diff --git a/qt/5.x.x/patches/fix-macdeployqt.diff b/qt/5.x.x/patches/fix-macdeployqt.diff new file mode 100644 index 0000000..a6e5f96 --- /dev/null +++ b/qt/5.x.x/patches/fix-macdeployqt.diff @@ -0,0 +1,66 @@ +From 03abcbabbd4caa11048d19d95b23f165cd7a5361 Mon Sep 17 00:00:00 2001 +From: Seth Parker +Date: Wed, 31 Mar 2021 15:34:10 -0400 +Subject: [PATCH] macdeployqt: Fix plugin resolution bugs for non-standard + installs +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Uses QLibraryInfo to resolve plugins at installed locations. + +[ChangeLog][macOS][macdeployqt] Uses QLibraryInfo to resolve plugins at install locations. + +Fixes: QTBUG-91644 +Change-Id: Ie309061024abd7a58ea62d707716342c99897c26 +Reviewed-by: Morten Johan Sørvig +--- + src/macdeployqt/macdeployqt/main.cpp | 30 ++++++++++++++++++++++------ + 1 file changed, 24 insertions(+), 6 deletions(-) + +diff --git a/src/macdeployqt/macdeployqt/main.cpp b/src/macdeployqt/macdeployqt/main.cpp +index 8914e835b..628a71378 100644 +--- a/src/macdeployqt/macdeployqt/main.cpp ++++ b/src/macdeployqt/macdeployqt/main.cpp +@@ -27,6 +27,7 @@ + ****************************************************************************/ + #include + #include ++#include + + #include "../shared/shared.h" + +@@ -236,10 +237,28 @@ int main(int argc, char **argv) + } + +- if (plugins && !deploymentInfo.qtPath.isEmpty()) { +- deploymentInfo.pluginPath = deploymentInfo.qtPath + "/plugins"; +- LogNormal(); +- deployPlugins(appBundlePath, deploymentInfo, useDebugLibs); +- createQtConf(appBundlePath); ++ // Handle plugins ++ if (plugins) { ++ // Set the plugins search directory ++ deploymentInfo.pluginPath = QLibraryInfo::location(QLibraryInfo::PluginsPath); ++ ++ // Sanity checks ++ if (deploymentInfo.pluginPath.isEmpty()) { ++ LogError() << "Missing Qt plugins path\n"; ++ return 1; ++ } ++ ++ if (!QDir(deploymentInfo.pluginPath).exists()) { ++ LogError() << "Plugins path does not exist" << deploymentInfo.pluginPath << "\n"; ++ return 1; ++ } ++ ++ // Deploy plugins ++ Q_ASSERT(!deploymentInfo.pluginPath.isEmpty()); ++ if (!deploymentInfo.pluginPath.isEmpty()) { ++ LogNormal(); ++ deployPlugins(appBundlePath, deploymentInfo, useDebugLibs); ++ createQtConf(appBundlePath); ++ } + } + + if (runStripEnabled) diff --git a/qt/5.x.x/qtmodules5.15.2.conf b/qt/5.x.x/qtmodules5.15.2.conf new file mode 100644 index 0000000..788b31c --- /dev/null +++ b/qt/5.x.x/qtmodules5.15.2.conf @@ -0,0 +1,284 @@ +[submodule "qtbase"] + path = qtbase + url = ../qtbase.git + status = essential +[submodule "qtsvg"] + depends = qtbase + path = qtsvg + url = ../qtsvg.git + status = addon +[submodule "qtdeclarative"] + depends = qtbase + recommends = qtsvg + path = qtdeclarative + url = ../qtdeclarative.git + status = essential +[submodule "qtactiveqt"] + depends = qtbase + path = qtactiveqt + url = ../qtactiveqt.git + status = addon +[submodule "qtscript"] + depends = qtbase + recommends = qttools + path = qtscript + url = ../qtscript.git + status = deprecated +[submodule "qtmultimedia"] + depends = qtbase + recommends = qtdeclarative + path = qtmultimedia + url = ../qtmultimedia.git + status = essential +[submodule "qttools"] + depends = qtbase + recommends = qtdeclarative qtactiveqt + path = qttools + url = ../qttools.git + status = essential +[submodule "qtxmlpatterns"] + depends = qtbase + recommends = qtdeclarative + path = qtxmlpatterns + url = ../qtxmlpatterns.git + status = deprecated +[submodule "qttranslations"] + depends = qttools + path = qttranslations + url = ../qttranslations.git + status = essential + priority = 30 +[submodule "qtdoc"] + depends = qtdeclarative qttools + recommends = qtmultimedia qtquickcontrols qtquickcontrols2 + path = qtdoc + url = ../qtdoc.git + status = essential + priority = 40 +[submodule "qtrepotools"] + path = qtrepotools + url = ../qtrepotools.git + branch = master + status = essential + project = - +[submodule "qtqa"] + depends = qtbase + path = qtqa + url = ../qtqa.git + branch = master + status = essential + priority = 50 +[submodule "qtlocation"] + depends = qtbase + recommends = qtdeclarative qtquickcontrols qtquickcontrols2 qtserialport + path = qtlocation + url = ../qtlocation.git + status = addon +[submodule "qtsensors"] + depends = qtbase + recommends = qtdeclarative + path = qtsensors + url = ../qtsensors.git + status = addon +[submodule "qtsystems"] + depends = qtbase + recommends = qtdeclarative + path = qtsystems + url = ../qtsystems.git + branch = dev + status = ignore +[submodule "qtfeedback"] + depends = qtdeclarative + recommends = qtmultimedia + path = qtfeedback + url = ../qtfeedback.git + branch = master + status = ignore +[submodule "qtdocgallery"] + depends = qtdeclarative + path = qtdocgallery + url = ../qtdocgallery.git + branch = master + status = ignore +[submodule "qtpim"] + depends = qtdeclarative + path = qtpim + url = ../qtpim.git + branch = dev + status = ignore +[submodule "qtconnectivity"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtconnectivity + url = ../qtconnectivity.git + status = addon +[submodule "qtwayland"] + depends = qtbase + recommends = qtdeclarative + path = qtwayland + url = ../qtwayland.git + status = addon +[submodule "qt3d"] + depends = qtbase + recommends = qtdeclarative qtimageformats qtgamepad + path = qt3d + url = ../qt3d.git + status = addon +[submodule "qtimageformats"] + depends = qtbase + path = qtimageformats + url = ../qtimageformats.git + status = addon +[submodule "qtgraphicaleffects"] + depends = qtdeclarative + path = qtgraphicaleffects + url = ../qtgraphicaleffects.git + status = essential +[submodule "qtquickcontrols"] + depends = qtdeclarative + recommends = qtgraphicaleffects + path = qtquickcontrols + url = ../qtquickcontrols.git + status = addon +[submodule "qtserialbus"] + depends = qtbase + recommends = qtserialport + path = qtserialbus + url = ../qtserialbus.git + status = addon +[submodule "qtserialport"] + depends = qtbase + path = qtserialport + url = ../qtserialport.git + status = addon +[submodule "qtx11extras"] + depends = qtbase + path = qtx11extras + url = ../qtx11extras.git + status = addon +[submodule "qtmacextras"] + depends = qtbase + path = qtmacextras + url = ../qtmacextras.git + status = addon +[submodule "qtwinextras"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtwinextras + url = ../qtwinextras.git + status = addon +[submodule "qtandroidextras"] + depends = qtbase + path = qtandroidextras + url = ../qtandroidextras.git + status = addon +[submodule "qtwebsockets"] + depends = qtbase + recommends = qtdeclarative + path = qtwebsockets + url = ../qtwebsockets.git + status = addon +[submodule "qtwebchannel"] + depends = qtbase + recommends = qtdeclarative qtwebsockets + path = qtwebchannel + url = ../qtwebchannel.git + status = addon +[submodule "qtwebengine"] + depends = qtdeclarative + recommends = qtquickcontrols qtquickcontrols2 qtlocation qtwebchannel qttools + path = qtwebengine + url = ../qtwebengine.git + status = addon + priority = 10 +[submodule "qtcanvas3d"] + depends = qtdeclarative + path = qtcanvas3d + url = ../qtcanvas3d.git + branch = dev + status = ignore +[submodule "qtwebview"] + depends = qtdeclarative + recommends = qtwebengine + path = qtwebview + url = ../qtwebview.git + status = addon +[submodule "qtquickcontrols2"] + depends = qtgraphicaleffects + recommends = qtimageformats + path = qtquickcontrols2 + url = ../qtquickcontrols2.git + status = essential +[submodule "qtpurchasing"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtpurchasing + url = ../qtpurchasing.git + status = addon +[submodule "qtcharts"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtcharts + url = ../qtcharts.git + status = addon +[submodule "qtdatavis3d"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtdatavis3d + url = ../qtdatavis3d.git + status = addon +[submodule "qtvirtualkeyboard"] + depends = qtbase qtdeclarative qtsvg + recommends = qtmultimedia qtquickcontrols + path = qtvirtualkeyboard + url = ../qtvirtualkeyboard.git + status = addon +[submodule "qtgamepad"] + depends = qtbase + recommends = qtdeclarative + path = qtgamepad + url = ../qtgamepad.git + status = addon +[submodule "qtscxml"] + depends = qtbase qtdeclarative + path = qtscxml + url = ../qtscxml.git + status = addon +[submodule "qtspeech"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtspeech + url = ../qtspeech.git + status = addon +[submodule "qtnetworkauth"] + depends = qtbase + path = qtnetworkauth + url = ../qtnetworkauth.git + status = addon +[submodule "qtremoteobjects"] + depends = qtbase + recommends = qtdeclarative + path = qtremoteobjects + url = ../qtremoteobjects.git + status = addon +[submodule "qtwebglplugin"] + depends = qtbase qtwebsockets + recommends = qtdeclarative + path = qtwebglplugin + url = ../qtwebglplugin.git + status = addon +[submodule "qtlottie"] + depends = qtbase qtdeclarative + path = qtlottie + url = ../qtlottie.git + status = addon +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + status = addon +[submodule "qtquick3d"] + depends = qtbase qtdeclarative + path = qtquick3d + url = ../qtquick3d.git + status = addon diff --git a/qt/5.x.x/test_package/CMakeLists.txt b/qt/5.x.x/test_package/CMakeLists.txt new file mode 100644 index 0000000..0f36d47 --- /dev/null +++ b/qt/5.x.x/test_package/CMakeLists.txt @@ -0,0 +1,21 @@ +cmake_minimum_required(VERSION 3.1.0) + +set(CMAKE_CXX_STANDARD 11) + +project(test_package) + +include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) +conan_set_vs_runtime() +conan_set_libcxx() +conan_output_dirs_setup() + +find_package(Qt5 COMPONENTS Core Network Sql Concurrent Xml REQUIRED CONFIG) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) + +set(SOURCES test_package.cpp greeter.h example.qrc) + +add_executable(${PROJECT_NAME} WIN32 ${SOURCES}) + +target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Network Qt5::Sql Qt5::Concurrent Qt5::Xml) diff --git a/qt/5.x.x/test_package/conanfile.py b/qt/5.x.x/test_package/conanfile.py new file mode 100644 index 0000000..bb73f38 --- /dev/null +++ b/qt/5.x.x/test_package/conanfile.py @@ -0,0 +1,119 @@ +import os +import shutil + +from conans import ConanFile, tools, Meson, RunEnvironment, CMake +from conans.errors import ConanException + + +class TestPackageConan(ConanFile): + settings = "os", "compiler", "build_type", "arch" + generators = "qt", "cmake", "cmake_find_package_multi", "qmake" + + @property + def _settings_build(self): + return getattr(self, "settings_build", self.settings) + + def build_requirements(self): + if self._settings_build.os == "Windows" and self.settings.compiler == "Visual Studio": + self.build_requires("jom/1.1.3") + if self._meson_supported(): + self.build_requires("meson/0.59.3") + + def _is_mingw(self): + return self.settings.os == "Windows" and self.settings.compiler == "gcc" + + def _meson_supported(self): + return self.options["qt"].shared and\ + not tools.cross_building(self) and\ + not tools.os_info.is_macos and\ + not self._is_mingw() + + def _build_with_qmake(self): + tools.mkdir("qmake_folder") + with tools.chdir("qmake_folder"): + self.output.info("Building with qmake") + + with tools.vcvars(self.settings) if self.settings.compiler == "Visual Studio" else tools.no_op(): + args = [self.source_folder, "DESTDIR=bin"] + + def _getenvpath(var): + val = os.getenv(var) + if val and tools.os_info.is_windows: + val = val.replace("\\", "/") + os.environ[var] = val + return val + + value = _getenvpath("CC") + if value: + args += ['QMAKE_CC="' + value + '"', + 'QMAKE_LINK_C="' + value + '"', + 'QMAKE_LINK_C_SHLIB="' + value + '"'] + + value = _getenvpath('CXX') + if value: + args += ['QMAKE_CXX="' + value + '"', + 'QMAKE_LINK="' + value + '"', + 'QMAKE_LINK_SHLIB="' + value + '"'] + + self.run("qmake %s" % " ".join(args), run_environment=True) + if tools.os_info.is_windows: + if self.settings.compiler == "Visual Studio": + self.run("jom", run_environment=True) + else: + self.run("mingw32-make", run_environment=True) + else: + self.run("make", run_environment=True) + + def _build_with_meson(self): + if self._meson_supported(): + self.output.info("Building with Meson") + tools.mkdir("meson_folder") + with tools.environment_append(RunEnvironment(self).vars): + meson = Meson(self) + try: + meson.configure(build_folder="meson_folder", defs={"cpp_std": "c++11"}) + except ConanException: + self.output.info(open("meson_folder/meson-logs/meson-log.txt", 'r').read()) + raise + meson.build() + + def _build_with_cmake_find_package_multi(self): + self.output.info("Building with cmake_find_package_multi") + env_build = RunEnvironment(self) + with tools.environment_append(env_build.vars): + cmake = CMake(self, set_cmake_flags=True) + if self.settings.os == "Macos": + cmake.definitions['CMAKE_OSX_DEPLOYMENT_TARGET'] = '10.14' + + cmake.configure() + cmake.build() + + def build(self): + self._build_with_qmake() + self._build_with_meson() + self._build_with_cmake_find_package_multi() + + def _test_with_qmake(self): + self.output.info("Testing qmake") + bin_path = os.path.join("qmake_folder", "bin") + if tools.os_info.is_macos: + bin_path = os.path.join(bin_path, "test_package.app", "Contents", "MacOS") + shutil.copy("qt.conf", bin_path) + self.run(os.path.join(bin_path, "test_package"), run_environment=True) + + def _test_with_meson(self): + if self._meson_supported(): + self.output.info("Testing Meson") + shutil.copy("qt.conf", "meson_folder") + self.run(os.path.join("meson_folder", "test_package"), run_environment=True) + + def _test_with_cmake_find_package_multi(self): + self.output.info("Testing CMake_find_package_multi") + shutil.copy("qt.conf", "bin") + self.run(os.path.join("bin", "test_package"), run_environment=True) + + def test(self): + if not tools.cross_building(self, skip_x64_x86=True): + self._test_with_qmake() + self._test_with_meson() + self._test_with_cmake_find_package_multi() diff --git a/qt/5.x.x/test_package/example.qrc b/qt/5.x.x/test_package/example.qrc new file mode 100644 index 0000000..7060adf --- /dev/null +++ b/qt/5.x.x/test_package/example.qrc @@ -0,0 +1,5 @@ + + + resource.txt + + diff --git a/qt/5.x.x/test_package/greeter.h b/qt/5.x.x/test_package/greeter.h new file mode 100644 index 0000000..85052e0 --- /dev/null +++ b/qt/5.x.x/test_package/greeter.h @@ -0,0 +1,26 @@ +#include +#include +#include + +class Greeter : public QObject +{ + Q_OBJECT +public: + Greeter(const QString& name, QObject *parent = 0) + : QObject(parent) + , mName(name) {} + +public slots: + void run() + { + qDebug() << QString("Hello %1!").arg(mName); + + emit finished(); + } + +signals: + void finished(); + +private: + const QString& mName; +}; diff --git a/qt/5.x.x/test_package/meson.build b/qt/5.x.x/test_package/meson.build new file mode 100644 index 0000000..9ca197c --- /dev/null +++ b/qt/5.x.x/test_package/meson.build @@ -0,0 +1,6 @@ +project('test_package', 'cpp') +qt5 = import('qt5') +qt5_dep = dependency('qt5', modules: ['Core', 'Network', 'Sql', 'Concurrent', 'Xml']) +moc_files = qt5.preprocess(moc_headers : 'greeter.h', qresources : 'example.qrc') +executable('test_package', 'test_package.cpp', moc_files, + dependencies : qt5_dep) diff --git a/qt/5.x.x/test_package/resource.txt b/qt/5.x.x/test_package/resource.txt new file mode 100644 index 0000000..ab281a2 --- /dev/null +++ b/qt/5.x.x/test_package/resource.txt @@ -0,0 +1 @@ +Hello World From Resource diff --git a/qt/5.x.x/test_package/test_package.cpp b/qt/5.x.x/test_package/test_package.cpp new file mode 100644 index 0000000..8026589 --- /dev/null +++ b/qt/5.x.x/test_package/test_package.cpp @@ -0,0 +1,52 @@ +#include +#include +#include +#include +#include "greeter.h" +#include + +#include +#include +#include +#include + +#include + +void f() +{ + qDebug() << "inside f"; +} + +int main(int argc, char *argv[]){ + QCoreApplication app(argc, argv); + QCoreApplication::setApplicationName("Application Example"); + QCoreApplication::setApplicationVersion("1.0.0"); + + QString name = argc > 0 ? argv[1] : ""; + if (name.isEmpty()) { + name = "World"; + } + + Greeter* greeter = new Greeter(name, &app); + QObject::connect(greeter, SIGNAL(finished()), &app, SLOT(quit())); + QTimer::singleShot(0, greeter, SLOT(run())); + + QFile f(":/resource.txt"); + if(!f.open(QIODevice::ReadOnly)) + qFatal("Could not open resource file"); + qDebug() << "Resource content:" << f.readAll(); + f.close(); + + qDebug() << W_OK; + + QNetworkAccessManager networkTester; + + QSqlDatabase sqlTester; + + QFuture future = QtConcurrent::run(::f); + future.waitForFinished(); + + QDomText xmlTester; + + return app.exec(); +} diff --git a/qt/5.x.x/test_package/test_package.pro b/qt/5.x.x/test_package/test_package.pro new file mode 100644 index 0000000..58325c6 --- /dev/null +++ b/qt/5.x.x/test_package/test_package.pro @@ -0,0 +1,14 @@ +SOURCES += test_package.cpp + +HEADERS += greeter.h + +RESOURCES = example.qrc + +QT -= gui +QT += network sql concurrent xml + +CONFIG += console + +CONFIG += conan_basic_setup +include($$OUT_PWD/../conanbuildinfo.pri) +LIBS -= $$CONAN_LIBS_QT diff --git a/qt/6.x.x/conandata.yml b/qt/6.x.x/conandata.yml new file mode 100644 index 0000000..3d5e461 --- /dev/null +++ b/qt/6.x.x/conandata.yml @@ -0,0 +1,149 @@ +sources: + # "6.0.1": + # url: + # - "https://download.qt.io/archive/qt/6.0/6.0.1/single/qt-everywhere-src-6.0.1.tar.xz" + # - "https://qt-mirror.dannhauer.de/archive/qt/6.0/6.0.1/single/qt-everywhere-src-6.0.1.tar.xz" + # - "https://www.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/6.0/6.0.1/single/qt-everywhere-src-6.0.1.tar.xz" + # - "https://ftp.fau.de/qtproject/archive/qt/6.0/6.0.1/single/qt-everywhere-src-6.0.1.tar.xz" + # sha256: "d13cfac103cd80b216cd2f73d0211dd6b1a1de2516911c89ce9c5ed14d9631a8" + # "6.0.2": + # url: + # - "https://download.qt.io/archive/qt/6.0/6.0.2/single/qt-everywhere-src-6.0.2.tar.xz" + # - "https://qt-mirror.dannhauer.de/archive/qt/6.0/6.0.2/single/qt-everywhere-src-6.0.2.tar.xz" + # - "https://www.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/6.0/6.0.2/single/qt-everywhere-src-6.0.2.tar.xz" + # - "https://ftp.fau.de/qtproject/archive/qt/6.0/6.0.2/single/qt-everywhere-src-6.0.2.tar.xz" + # sha256: "67a076640647783b95a907d2231e4f34cec69be5ed338c1c1b33124cadf10bdf" + # "6.0.3": + # url: + # - "https://download.qt.io/archive/qt/6.0/6.0.3/single/qt-everywhere-src-6.0.3.tar.xz" + # - "https://qt-mirror.dannhauer.de/archive/qt/6.0/6.0.3/single/qt-everywhere-src-6.0.3.tar.xz" + # - "https://www.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/6.0/6.0.3/single/qt-everywhere-src-6.0.3.tar.xz" + # - "https://ftp.fau.de/qtproject/archive/qt/6.0/6.0.3/single/qt-everywhere-src-6.0.3.tar.xz" + # sha256: "ca4a97439443dd0b476a47b284ba772c3b1b041a9eef733e26a789490993a0e3" + "6.0.4": + url: + - "https://download.qt.io/archive/qt/6.0/6.0.4/single/qt-everywhere-src-6.0.4.tar.xz" + - "https://qt-mirror.dannhauer.de/archive/qt/6.0/6.0.4/single/qt-everywhere-src-6.0.4.tar.xz" + - "https://www.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/6.0/6.0.4/single/qt-everywhere-src-6.0.4.tar.xz" + - "https://ftp.fau.de/qtproject/archive/qt/6.0/6.0.4/single/qt-everywhere-src-6.0.4.tar.xz" + sha256: "677db6472420f9046b16f7c0d0aa15c4f11f344462a6374feb860625c12fc72b" + #"6.1.0": + # url: + # - "https://download.qt.io/archive/qt/6.1/6.1.0/single/qt-everywhere-src-6.1.0.tar.xz" + # - "https://qt-mirror.dannhauer.de/archive/qt/6.1/6.1.0/single/qt-everywhere-src-6.1.0.tar.xz" + # - "https://www.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/6.1/6.1.0/single/qt-everywhere-src-6.1.0.tar.xz" + # - "https://ftp.fau.de/qtproject/archive/qt/6.1/6.1.0/single/qt-everywhere-src-6.1.0.tar.xz" + # sha256: "326a710b08b0973bb4f5306a786548d8b8dd656db75ce9f3f85ea32680d3c88a" + #"6.1.1": + # url: + # - "https://download.qt.io/archive/qt/6.1/6.1.1/single/qt-everywhere-src-6.1.1.tar.xz" + # - "https://qt-mirror.dannhauer.de/archive/qt/6.1/6.1.1/single/qt-everywhere-src-6.1.1.tar.xz" + # - "https://www.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/6.1/6.1.1/single/qt-everywhere-src-6.1.1.tar.xz" + # - "https://ftp.fau.de/qtproject/archive/qt/6.1/6.1.1/single/qt-everywhere-src-6.1.1.tar.xz" + # sha256: "6ac937aae4c7b5a3eac90ea4d13f31ded9f78ebc93007bb919fae65c58c808c3" + #"6.1.2": + # url: + # - "https://download.qt.io/archive/qt/6.1/6.1.2/single/qt-everywhere-src-6.1.2.tar.xz" + # - "https://qt-mirror.dannhauer.de/archive/qt/6.1/6.1.2/single/qt-everywhere-src-6.1.2.tar.xz" + # - "https://www.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/6.1/6.1.2/single/qt-everywhere-src-6.1.2.tar.xz" + # - "https://ftp.fau.de/qtproject/archive/qt/6.1/6.1.2/single/qt-everywhere-src-6.1.2.tar.xz" + # sha256: "4b40f10eb188506656f13dbf067b714145047f41d7bf83f03b727fa1c7c4cdcb" + "6.1.3": + url: + - "https://download.qt.io/archive/qt/6.1/6.1.3/single/qt-everywhere-src-6.1.3.tar.xz" + - "https://qt-mirror.dannhauer.de/archive/qt/6.1/6.1.3/single/qt-everywhere-src-6.1.3.tar.xz" + - "https://www.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/6.1/6.1.3/single/qt-everywhere-src-6.1.3.tar.xz" + - "https://ftp.fau.de/qtproject/archive/qt/6.1/6.1.3/single/qt-everywhere-src-6.1.3.tar.xz" + sha256: "552342a81fa76967656b0301233b4b586d36967fad5cd110765347aebe07413c" + "6.2.0": + url: + - "https://download.qt.io/archive/qt/6.2/6.2.0/single/qt-everywhere-src-6.2.0.tar.xz" + - "https://qt-mirror.dannhauer.de/archive/qt/6.2/6.2.0/single/qt-everywhere-src-6.2.0.tar.xz" + - "https://www.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/6.2/6.2.0/single/qt-everywhere-src-6.2.0.tar.xz" + - "https://ftp.fau.de/qtproject/archive/qt/6.2/6.2.0/single/qt-everywhere-src-6.2.0.tar.xz" + sha256: "60c2dc0ee86dd338e5c5194bd95922abfc097841e3e855693dfb4f5aaf0db4db" + "6.2.1": + url: + - "https://download.qt.io/archive/qt/6.2/6.2.1/single/qt-everywhere-src-6.2.1.tar.xz" + - "https://qt-mirror.dannhauer.de/archive/qt/6.2/6.2.1/single/qt-everywhere-src-6.2.1.tar.xz" + - "https://www.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/6.2/6.2.1/single/qt-everywhere-src-6.2.1.tar.xz" + - "https://ftp.fau.de/qtproject/archive/qt/6.2/6.2.1/single/qt-everywhere-src-6.2.1.tar.xz" + sha256: "e03fffc5c3b5fea09dcc161444df7dfbbe24e8a8ce9377014ec21b66f48d43cd" + "6.2.2": + url: + - "https://download.qt.io/archive/qt/6.2/6.2.2/single/qt-everywhere-src-6.2.2.tar.xz" + - "https://qt-mirror.dannhauer.de/archive/qt/6.2/6.2.2/single/qt-everywhere-src-6.2.2.tar.xz" + - "https://www.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/6.2/6.2.2/single/qt-everywhere-src-6.2.2.tar.xz" + - "https://ftp.fau.de/qtproject/archive/qt/6.2/6.2.2/single/qt-everywhere-src-6.2.2.tar.xz" + sha256: "907994f78d42b30bdea95e290e91930c2d9b593f3f8dd994f44157e387feee0f" + "6.2.3": + url: + - "https://download.qt.io/archive/qt/6.2/6.2.3/single/qt-everywhere-src-6.2.3.tar.xz" + - "https://qt-mirror.dannhauer.de/archive/qt/6.2/6.2.3/single/qt-everywhere-src-6.2.3.tar.xz" + - "https://www.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/6.2/6.2.3/single/qt-everywhere-src-6.2.3.tar.xz" + - "https://ftp.fau.de/qtproject/archive/qt/6.2/6.2.3/single/qt-everywhere-src-6.2.3.tar.xz" + sha256: "f784998a159334d1f47617fd51bd0619b9dbfe445184567d2cd7c820ccb12771" +patches: + "6.0.4": + - base_path: "qt6/qtbase/cmake" + patch_file: "patches/qt6-pri-helpers-fix.diff" + #"6.1.0": + # - base_path: "qt6/qtbase/cmake" + # patch_file: "patches/qt6-pri-helpers-fix.diff" + #"6.1.1": + # - base_path: "qt6/qtbase/cmake" + # patch_file: "patches/qt6-pri-helpers-fix.diff" + #"6.1.2": + # - base_path: "qt6/qtdeclarative" + # patch_file: "patches/32451d5.diff" + # - base_path: "qt6/qtbase/cmake" + # patch_file: "patches/qt6-pri-helpers-fix.diff" + "6.1.3": + - base_path: "qt6/qtdeclarative" + patch_file: "patches/32451d5.diff" + - base_path: "qt6/qtbase/cmake" + patch_file: "patches/qt6-pri-helpers-fix.diff" + "6.2.0": + - base_path: "qt6/qtdeclarative" + patch_file: "patches/32451d5.diff" + - base_path: "qt6/qtbase/cmake" + patch_file: "patches/qt6-pri-helpers-fix.diff" + - patch_file: "patches/c72097e.diff" + base_path: "qt6/qtwebengine" + - patch_file: "patches/138a720.diff" + base_path: "qt6/qtwebengine/src/3rdparty" + - patch_file: "patches/5fe0b82.patch" + base_path: "qt6/qttools/src/assistant/qlitehtml/src/3rdparty/litehtml" + "6.2.1": + - base_path: "qt6/qtdeclarative" + patch_file: "patches/32451d5.diff" + - base_path: "qt6/qtbase/cmake" + patch_file: "patches/qt6-pri-helpers-fix.diff" + - patch_file: "patches/c72097e.diff" + base_path: "qt6/qtwebengine" + - patch_file: "patches/138a720.diff" + base_path: "qt6/qtwebengine/src/3rdparty" + - patch_file: "patches/5fe0b82.patch" + base_path: "qt6/qttools/src/assistant/qlitehtml/src/3rdparty/litehtml" + - base_path: "qt6/qtbase" + patch_file: "patches/dece6f5.patch" + - base_path: "qt6/qtwebengine/src/3rdparty" + patch_file: "patches/c76d2f6.patch" + "6.2.2": + - base_path: "qt6/qtdeclarative" + patch_file: "patches/32451d5.diff" + - base_path: "qt6/qtbase/cmake" + patch_file: "patches/qt6-pri-helpers-fix.diff" + - patch_file: "patches/c72097e.diff" + base_path: "qt6/qtwebengine" + - patch_file: "patches/138a720.diff" + base_path: "qt6/qtwebengine/src/3rdparty" + "6.2.3": + - base_path: "qt6/qtdeclarative" + patch_file: "patches/32451d5.diff" + - base_path: "qt6/qtbase/cmake" + patch_file: "patches/qt6-pri-helpers-fix.diff" + - patch_file: "patches/c72097e.diff" + base_path: "qt6/qtwebengine" + - patch_file: "patches/138a720.diff" + base_path: "qt6/qtwebengine/src/3rdparty" diff --git a/qt/6.x.x/conanfile.py b/qt/6.x.x/conanfile.py new file mode 100644 index 0000000..5f6d649 --- /dev/null +++ b/qt/6.x.x/conanfile.py @@ -0,0 +1,1292 @@ +from conan.tools.microsoft import msvc_runtime_flag +from conans import ConanFile, tools, RunEnvironment, CMake +from conans.errors import ConanInvalidConfiguration +from conans.model import Generator +import configparser +import glob +import os +import textwrap + +required_conan_version = ">=1.43.0" + + +class qt(Generator): + @staticmethod + def content_template(path, folder, os_): + return textwrap.dedent("""\ + [Paths] + Prefix = {0} + ArchData = {1}/archdatadir + HostData = {1}/archdatadir + Data = {1}/datadir + Sysconf = {1}/sysconfdir + LibraryExecutables = {1}/archdatadir/{2} + HostLibraryExecutables = bin + Plugins = {1}/archdatadir/plugins + Imports = {1}/archdatadir/imports + Qml2Imports = {1}/archdatadir/qml + Translations = {1}/datadir/translations + Documentation = {1}/datadir/doc + Examples = {1}/datadir/examples""").format(path, folder, + "bin" if os_ == "Windows" else "libexec") + + @property + def filename(self): + return "qt.conf" + + @property + def content(self): + return qt.content_template( + self.conanfile.deps_cpp_info["qt"].rootpath.replace("\\", "/"), + "res", + self.conanfile.settings.os) + + +class QtConan(ConanFile): + _submodules = ["qtsvg", "qtdeclarative", "qttools", "qttranslations", "qtdoc", + "qtwayland","qtquickcontrols2", "qtquicktimeline", "qtquick3d", "qtshadertools", "qt5compat", + "qtactiveqt", "qtcharts", "qtdatavis3d", "qtlottie", "qtscxml", "qtvirtualkeyboard", + "qt3d", "qtimageformats", "qtnetworkauth", "qtcoap", "qtmqtt", "qtopcua", + "qtmultimedia", "qtlocation", "qtsensors", "qtconnectivity", "qtserialbus", + "qtserialport", "qtwebsockets", "qtwebchannel", "qtwebengine", "qtwebview", + "qtremoteobjects", "qtpositioning"] + + generators = "pkg_config", "cmake_find_package", "cmake" + name = "qt" + description = "Qt is a cross-platform framework for graphical user interfaces." + topics = ("qt", "ui") + url = "https://github.com/conan-io/conan-center-index" + homepage = "https://www.qt.io" + license = "LGPL-3.0" + settings = "os", "arch", "compiler", "build_type" + + options = { + "shared": [True, False], + "opengl": ["no", "desktop", "dynamic"], + "with_vulkan": [True, False], + "openssl": [True, False], + "with_pcre2": [True, False], + "with_glib": [True, False], + "with_doubleconversion": [True, False], + "with_freetype": [True, False], + "with_fontconfig": [True, False], + "with_icu": [True, False], + "with_harfbuzz": [True, False], + "with_libjpeg": ["libjpeg", "libjpeg-turbo", False], + "with_libpng": [True, False], + "with_sqlite3": [True, False], + "with_mysql": [True, False], + "with_pq": [True, False], + "with_odbc": [True, False], + "with_zstd": [True, False], + "with_brotli": [True, False], + "with_dbus": [True, False], + "with_libalsa": [True, False], + "with_openal": [True, False], + "with_gstreamer": [True, False], + "with_pulseaudio": [True, False], + + "gui": [True, False], + "widgets": [True, False], + + "device": "ANY", + "cross_compile": "ANY", + "sysroot": "ANY", + "multiconfiguration": [True, False], + "disabled_features": "ANY", + } + options.update({module: [True, False] for module in _submodules}) + + # this significantly speeds up windows builds + no_copy_source = True + + default_options = { + "shared": False, + "opengl": "desktop", + "with_vulkan": False, + "openssl": True, + "with_pcre2": True, + "with_glib": False, + "with_doubleconversion": True, + "with_freetype": True, + "with_fontconfig": True, + "with_icu": True, + "with_harfbuzz": True, + "with_libjpeg": False, + "with_libpng": True, + "with_sqlite3": True, + "with_mysql": False, + "with_pq": True, + "with_odbc": True, + "with_zstd": False, + "with_brotli": True, + "with_dbus": False, + "with_libalsa": False, + "with_openal": True, + "with_gstreamer": True, + "with_pulseaudio": False, + + "gui": True, + "widgets": True, + + "device": None, + "cross_compile": None, + "sysroot": None, + "multiconfiguration": False, + "disabled_features": "", + } + default_options.update({module: False for module in _submodules}) + + short_paths = True + + _cmake = None + + _submodules_tree = None + + @property + def _is_msvc(self): + return str(self.settings.compiler) in ["Visual Studio", "msvc"] + + @property + def _get_module_tree(self): + if self._submodules_tree: + return self._submodules_tree + config = configparser.ConfigParser() + config.read(os.path.join(self.recipe_folder, "qtmodules%s.conf" % self.version)) + self._submodules_tree = {} + assert config.sections() + for s in config.sections(): + section = str(s) + assert section.startswith("submodule ") + assert section.count('"') == 2 + modulename = section[section.find('"') + 1: section.rfind('"')] + status = str(config.get(section, "status")) + if status not in ["obsolete", "ignore", "additionalLibrary"]: + self._submodules_tree[modulename] = {"status": status, + "path": str(config.get(section, "path")), "depends": []} + if config.has_option(section, "depends"): + self._submodules_tree[modulename]["depends"] = [str(i) for i in config.get(section, "depends").split()] + + for m in self._submodules_tree: + assert m in ["qtbase", "qtqa", "qtrepotools"] or m in self._submodules, "module %s not in self._submodules" % m + + return self._submodules_tree + + def export_sources(self): + for patch in self.conan_data.get("patches", {}).get(self.version, []): + self.copy(patch["patch_file"]) + + def export(self): + self.copy("qtmodules%s.conf" % self.version) + + def config_options(self): + if self.settings.os not in ["Linux", "FreeBSD"]: + del self.options.with_icu + del self.options.with_fontconfig + self.options.with_glib = False + del self.options.with_libalsa + + if self.settings.os == "Windows": + self.options.opengl = "dynamic" + if self.settings.os != "Linux": + self.options.qtwayland = False + + for m in self._submodules: + if m not in self._get_module_tree: + delattr(self.options, m) + + @property + def _minimum_compilers_version(self): + # Qt6 requires C++17 + return { + "Visual Studio": "16", + "gcc": "8", + "clang": "9", + "apple-clang": "11" + } + + def configure(self): + if not self.options.gui: + del self.options.opengl + del self.options.with_vulkan + del self.options.with_freetype + del self.options.with_fontconfig + del self.options.with_harfbuzz + del self.options.with_libjpeg + del self.options.with_libpng + + if not self.options.get_safe("qtmultimedia"): + del self.options.with_libalsa + del self.options.with_openal + del self.options.with_gstreamer + del self.options.with_pulseaudio + + if self.settings.os in ("FreeBSD", "Linux"): + if self.options.get_safe("qtwebengine"): + self.options.with_fontconfig = True + + if self.options.multiconfiguration: + del self.settings.build_type + + def _enablemodule(mod): + if mod != "qtbase": + setattr(self.options, mod, True) + for req in self._get_module_tree[mod]["depends"]: + _enablemodule(req) + + for module in self._get_module_tree: + if self.options.get_safe(module): + _enablemodule(module) + + def validate(self): + # C++ minimum standard required + if self.settings.compiler.get_safe("cppstd"): + tools.check_min_cppstd(self, 17) + minimum_version = self._minimum_compilers_version.get(str(self.settings.compiler), False) + if not minimum_version: + self.output.warn("C++17 support required. Your compiler is unknown. Assuming it supports C++17.") + elif tools.Version(self.settings.compiler.version) < minimum_version: + raise ConanInvalidConfiguration("C++17 support required, which your compiler does not support.") + + if self.options.get_safe("qtwebengine"): + if not self.options.shared: + raise ConanInvalidConfiguration("Static builds of Qt WebEngine are not supported") + + if not (self.options.gui and self.options.qtdeclarative and self.options.qtwebchannel): + raise ConanInvalidConfiguration("option qt:qtwebengine requires also qt:gui, qt:qtdeclarative and qt:qtwebchannel") + + if hasattr(self, "settings_build") and tools.cross_building(self, skip_x64_x86=True): + raise ConanInvalidConfiguration("Cross compiling Qt WebEngine is not supported") + + if self.options.widgets and not self.options.gui: + raise ConanInvalidConfiguration("using option qt:widgets without option qt:gui is not possible. " + "You can either disable qt:widgets or enable qt:gui") + if self.settings.os == "Android" and self.options.get_safe("opengl", "no") == "desktop": + raise ConanInvalidConfiguration("OpenGL desktop is not supported on Android.") + + if self.settings.os != "Windows" and self.options.get_safe("opengl", "no") == "dynamic": + raise ConanInvalidConfiguration("Dynamic OpenGL is supported only on Windows.") + + if self.options.get_safe("with_fontconfig", False) and not self.options.get_safe("with_freetype", False): + raise ConanInvalidConfiguration("with_fontconfig cannot be enabled if with_freetype is disabled.") + + if "MT" in self.settings.get_safe("compiler.runtime", default="") and self.options.shared: + raise ConanInvalidConfiguration("Qt cannot be built as shared library with static runtime") + + if self.options.get_safe("with_pulseaudio", False) or self.options.get_safe("with_libalsa", False): + raise ConanInvalidConfiguration("alsa and pulseaudio are not supported (QTBUG-95116), please disable them.") + + def requirements(self): + self.requires("zlib/1.2.11") + if self.options.openssl: + self.requires("openssl/1.1.1m") + if self.options.with_pcre2: + self.requires("pcre2/10.37") + if self.options.get_safe("with_vulkan"): + self.requires("vulkan-loader/1.2.198.0") + if tools.is_apple_os(self.settings.os): + self.requires("moltenvk/1.1.6") + if self.options.with_glib: + self.requires("glib/2.70.1") + if self.options.with_doubleconversion and not self.options.multiconfiguration: + self.requires("double-conversion/3.2.0") + if self.options.get_safe("with_freetype", False) and not self.options.multiconfiguration: + self.requires("freetype/2.11.1") + if self.options.get_safe("with_fontconfig", False): + self.requires("fontconfig/2.13.93") + if self.options.get_safe("with_icu", False): + self.requires("icu/70.1") + if self.options.get_safe("with_harfbuzz", False) and not self.options.multiconfiguration: + self.requires("harfbuzz/3.2.0") + if self.options.get_safe("with_libjpeg", False) and not self.options.multiconfiguration: + if self.options.with_libjpeg == "libjpeg-turbo": + self.requires("libjpeg-turbo/2.1.2") + else: + self.requires("libjpeg/9d") + if self.options.get_safe("with_libpng", False) and not self.options.multiconfiguration: + self.requires("libpng/1.6.37") + if self.options.with_sqlite3 and not self.options.multiconfiguration: + self.requires("sqlite3/3.37.2") + self.options["sqlite3"].enable_column_metadata = True + if self.options.get_safe("with_mysql", False): + self.requires("libmysqlclient/8.0.25") + if self.options.with_pq: + self.requires("libpq/13.4") + if self.options.with_odbc: + if self.settings.os != "Windows": + self.requires("odbc/2.3.9") + if self.options.get_safe("with_openal", False): + self.requires("openal/1.21.1") + if self.options.get_safe("with_libalsa", False): + self.requires("libalsa/1.2.5.1") + if self.options.gui and self.settings.os in ["Linux", "FreeBSD"]: + self.requires("xorg/system") + self.requires("xkbcommon/1.3.1") + if self.settings.os != "Windows" and self.options.get_safe("opengl", "no") != "no": + self.requires("opengl/system") + if self.options.with_zstd: + self.requires("zstd/1.5.2") + if self.options.qtwayland: + self.requires("wayland/1.20.0") + if self.options.with_brotli: + self.requires("brotli/1.0.9") + if self.options.get_safe("qtwebengine") and self.settings.os == "Linux": + self.requires("expat/2.4.4") + self.requires("opus/1.3.1") + self.requires("xorg-proto/2021.4") + self.requires("libxshmfence/1.3") + self.requires("nss/3.72") + self.requires("libdrm/2.4.109") + if self.options.get_safe("with_gstreamer", False): + self.requires("gst-plugins-base/1.19.2") + if self.options.get_safe("with_pulseaudio", False): + self.requires("pulseaudio/14.2") + if self.options.with_dbus: + self.requires("dbus/1.12.20") + + def build_requirements(self): + self.build_requires("cmake/3.22.0") + self.build_requires("ninja/1.10.2") + self.build_requires("pkgconf/1.7.4") + if self._is_msvc: + self.build_requires('strawberryperl/5.30.0.1') + + if self.options.get_safe("qtwebengine"): + self.build_requires("nodejs/16.3.0") + self.build_requires("gperf/3.1") + # gperf, bison, flex, python >= 2.7.5 & < 3 + if self.settings.os != "Windows": + self.build_requires("bison/3.7.6") + self.build_requires("flex/2.6.4") + else: + self.build_requires("winflexbison/2.5.24") + + # Check if a valid python2 is available in PATH or it will failflex + # Start by checking if python2 can be found + python_exe = tools.which("python2") + if not python_exe: + # Fall back on regular python + python_exe = tools.which("python") + + if not python_exe: + msg = ("Python2 must be available in PATH " + "in order to build Qt WebEngine") + raise ConanInvalidConfiguration(msg) + + # In any case, check its actual version for compatibility + from six import StringIO # Python 2 and 3 compatible + mybuf = StringIO() + cmd_v = "\"{}\" --version".format(python_exe) + self.run(cmd_v, output=mybuf) + verstr = mybuf.getvalue().strip().split("Python ")[1] + if verstr.endswith("+"): + verstr = verstr[:-1] + version = tools.Version(verstr) + # >= 2.7.5 & < 3 + v_min = "2.7.5" + v_max = "3.0.0" + if (version >= v_min) and (version < v_max): + msg = ("Found valid Python 2 required for QtWebengine:" + " version={}, path={}".format(mybuf.getvalue(), python_exe)) + self.output.success(msg) + else: + msg = ("Found Python 2 in path, but with invalid version {}" + " (QtWebEngine requires >= {} & < " + "{})\nIf you have both Python 2 and 3 installed, copy the python 2 executable to" + "python2(.exe)".format(verstr, v_min, v_max)) + raise ConanInvalidConfiguration(msg) + + if self.options.qtwayland: + self.build_requires("wayland/1.20.0") + + def source(self): + tools.get(**self.conan_data["sources"][self.version], + strip_root=True, destination="qt6") + + # patching in source method because of no_copy_source attribute + + tools.replace_in_file(os.path.join("qt6", "CMakeLists.txt"), + "enable_testing()", + "include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)\nconan_basic_setup(KEEP_RPATHS)\n" + "set(QT_EXTRA_INCLUDEPATHS ${CONAN_INCLUDE_DIRS})\n" + "set(QT_EXTRA_DEFINES ${CONAN_DEFINES})\n" + "set(QT_EXTRA_LIBDIRS ${CONAN_LIB_DIRS})\n" + "enable_testing()") + + for patch in self.conan_data.get("patches", {}).get(self.version, []): + tools.patch(**patch) + if tools.Version(self.version) >= "6.2.0": + for f in ["renderer", os.path.join("renderer", "core"), os.path.join("renderer", "platform")]: + tools.replace_in_file(os.path.join(self.source_folder, "qt6", "qtwebengine", "src", "3rdparty", "chromium", "third_party", "blink", f, "BUILD.gn"), + " if (enable_precompiled_headers) {\n if (is_win) {", + " if (enable_precompiled_headers) {\n if (false) {" + ) + + tools.replace_in_file(os.path.join("qt6", "qtbase", "cmake", "QtInternalTargets.cmake"), + "target_compile_options(PlatformCommonInternal INTERFACE -Zc:wchar_t)", + "target_compile_options(PlatformCommonInternal INTERFACE -Zc:wchar_t -Zc:twoPhase-)") + for f in ["FindPostgreSQL.cmake"]: + file = os.path.join("qt6", "qtbase", "cmake", f) + if os.path.isfile(file): + os.remove(file) + + # workaround QTBUG-94356 + if tools.Version(self.version) >= "6.1.1": + tools.replace_in_file(os.path.join("qt6", "qtbase", "cmake", "FindWrapZLIB.cmake"), '"-lz"', 'ZLIB::ZLIB') + tools.replace_in_file(os.path.join("qt6", "qtbase", "configure.cmake"), + "set_property(TARGET ZLIB::ZLIB PROPERTY IMPORTED_GLOBAL TRUE)", + "") + + def _xplatform(self): + if self.settings.os == "Linux": + if self.settings.compiler == "gcc": + return {"x86": "linux-g++-32", + "armv6": "linux-arm-gnueabi-g++", + "armv7": "linux-arm-gnueabi-g++", + "armv7hf": "linux-arm-gnueabi-g++", + "armv8": "linux-aarch64-gnu-g++"}.get(str(self.settings.arch), "linux-g++") + elif self.settings.compiler == "clang": + if self.settings.arch == "x86": + return "linux-clang-libc++-32" if self.settings.compiler.libcxx == "libc++" else "linux-clang-32" + elif self.settings.arch == "x86_64": + return "linux-clang-libc++" if self.settings.compiler.libcxx == "libc++" else "linux-clang" + + elif self.settings.os == "Macos": + return {"clang": "macx-clang", + "apple-clang": "macx-clang", + "gcc": "macx-g++"}.get(str(self.settings.compiler)) + + elif self.settings.os == "iOS": + if self.settings.compiler == "apple-clang": + return "macx-ios-clang" + + elif self.settings.os == "watchOS": + if self.settings.compiler == "apple-clang": + return "macx-watchos-clang" + + elif self.settings.os == "tvOS": + if self.settings.compiler == "apple-clang": + return "macx-tvos-clang" + + elif self.settings.os == "Android": + if self.settings.compiler == "clang": + return "android-clang" + + elif self.settings.os == "Windows": + return { + "Visual Studio": "win32-msvc", + "msvc": "win32-msvc", + "gcc": "win32-g++", + "clang": "win32-clang-g++", + }.get(str(self.settings.compiler)) + + elif self.settings.os == "WindowsStore": + if self._is_msvc: + if self.settings.compiler == "Visual Studio": + msvc_version = str(self.settings.compiler.version) + else: + msvc_version = { + "190": "14", + "191": "15", + "192": "16", + }.get(str(self.settings.compiler.version)) + return { + "14": { + "armv7": "winrt-arm-msvc2015", + "x86": "winrt-x86-msvc2015", + "x86_64": "winrt-x64-msvc2015", + }, + "15": { + "armv7": "winrt-arm-msvc2017", + "x86": "winrt-x86-msvc2017", + "x86_64": "winrt-x64-msvc2017", + }, + "16": { + "armv7": "winrt-arm-msvc2019", + "x86": "winrt-x86-msvc2019", + "x86_64": "winrt-x64-msvc2019", + } + }.get(msvc_version).get(str(self.settings.arch)) + + elif self.settings.os == "FreeBSD": + return {"clang": "freebsd-clang", + "gcc": "freebsd-g++"}.get(str(self.settings.compiler)) + + elif self.settings.os == "SunOS": + if self.settings.compiler == "sun-cc": + if self.settings.arch == "sparc": + return "solaris-cc-stlport" if self.settings.compiler.libcxx == "libstlport" else "solaris-cc" + elif self.settings.arch == "sparcv9": + return "solaris-cc64-stlport" if self.settings.compiler.libcxx == "libstlport" else "solaris-cc64" + elif self.settings.compiler == "gcc": + return {"sparc": "solaris-g++", + "sparcv9": "solaris-g++-64"}.get(str(self.settings.arch)) + elif self.settings.os == "Neutrino" and self.settings.compiler == "qcc": + return {"armv8": "qnx-aarch64le-qcc", + "armv8.3": "qnx-aarch64le-qcc", + "armv7": "qnx-armle-v7-qcc", + "armv7hf": "qnx-armle-v7-qcc", + "armv7s": "qnx-armle-v7-qcc", + "armv7k": "qnx-armle-v7-qcc", + "x86": "qnx-x86-qcc", + "x86_64": "qnx-x86-64-qcc"}.get(str(self.settings.arch)) + elif self.settings.os == "Emscripten" and self.settings.arch == "wasm": + return "wasm-emscripten" + + return None + + def _configure_cmake(self): + if self._cmake: + return self._cmake + self._cmake = CMake(self, generator="Ninja") + + self._cmake.definitions["INSTALL_MKSPECSDIR"] = os.path.join(self.package_folder, "res", "archdatadir", "mkspecs") + self._cmake.definitions["INSTALL_ARCHDATADIR"] = os.path.join(self.package_folder, "res", "archdatadir") + self._cmake.definitions["INSTALL_LIBEXECDIR"] = os.path.join(self.package_folder, "bin") + self._cmake.definitions["INSTALL_DATADIR"] = os.path.join(self.package_folder, "res", "datadir") + self._cmake.definitions["INSTALL_SYSCONFDIR"] = os.path.join(self.package_folder, "res", "sysconfdir") + + self._cmake.definitions["QT_BUILD_TESTS"] = "OFF" + self._cmake.definitions["QT_BUILD_EXAMPLES"] = "OFF" + + if self._is_msvc and "MT" in msvc_runtime_flag(self): + self._cmake.definitions["FEATURE_static_runtime"] = "ON" + + if self.options.multiconfiguration: + self._cmake.generator = "Ninja Multi-Config" + self._cmake.definitions["CMAKE_CONFIGURATION_TYPES"] = "Release;Debug" + self._cmake.definitions["FEATURE_optimize_size"] = ("ON" if self.settings.build_type == "MinSizeRel" else "OFF") + + for module in self._get_module_tree: + if module != 'qtbase': + self._cmake.definitions["BUILD_%s" % module] = ("ON" if self.options.get_safe(module) else "OFF") + + self._cmake.definitions["FEATURE_system_zlib"] = "ON" + + self._cmake.definitions["INPUT_opengl"] = self.options.get_safe("opengl", "no") + + # openSSL + if not self.options.openssl: + self._cmake.definitions["INPUT_openssl"] = "no" + else: + if self.options["openssl"].shared: + self._cmake.definitions["INPUT_openssl"] = "runtime" + else: + self._cmake.definitions["INPUT_openssl"] = "linked" + + if self.options.with_dbus: + self._cmake.definitions["INPUT_dbus"] = "linked" + else: + self._cmake.definitions["FEATURE_dbus"] = "OFF" + + + for opt, conf_arg in [("with_glib", "glib"), + ("with_icu", "icu"), + ("with_fontconfig", "fontconfig"), + ("with_mysql", "sql_mysql"), + ("with_pq", "sql_psql"), + ("with_odbc", "sql_odbc"), + ("gui", "gui"), + ("widgets", "widgets"), + ("with_zstd", "zstd"), + ("with_vulkan", "vulkan"), + ("with_brotli", "brotli")]: + self._cmake.definitions["FEATURE_%s" % conf_arg] = ("ON" if self.options.get_safe(opt, False) else "OFF") + + + for opt, conf_arg in [ + ("with_doubleconversion", "doubleconversion"), + ("with_freetype", "freetype"), + ("with_harfbuzz", "harfbuzz"), + ("with_libjpeg", "jpeg"), + ("with_libpng", "png"), + ("with_sqlite3", "sqlite"), + ("with_pcre2", "pcre2"),]: + if self.options.get_safe(opt, False): + if self.options.multiconfiguration: + self._cmake.definitions["FEATURE_%s" % conf_arg] = "ON" + else: + self._cmake.definitions["FEATURE_system_%s" % conf_arg] = "ON" + else: + self._cmake.definitions["FEATURE_%s" % conf_arg] = "OFF" + self._cmake.definitions["FEATURE_system_%s" % conf_arg] = "OFF" + + for feature in str(self.options.disabled_features).split(" "): + self._cmake.definitions["FEATURE_%s" % feature] = "OFF" + + if self.settings.os == "Macos": + self._cmake.definitions["FEATURE_framework"] = "OFF" + elif self.settings.os == "Android": + self._cmake.definitions["CMAKE_ANDROID_NATIVE_API_LEVEL"] = self.settings.os.api_level + self._cmake.definitions["ANDROID_ABI"] = {"armv7": "armeabi-v7a", + "armv8": "arm64-v8a", + "x86": "x86", + "x86_64": "x86_64"}.get(str(self.settings.arch)) + + if self.options.sysroot: + self._cmake.definitions["CMAKE_SYSROOT"] = self.options.sysroot + + if self.options.device: + self._cmake.definitions["QT_QMAKE_TARGET_MKSPEC"] = os.path.join("devices", self.options.device) + else: + xplatform_val = self._xplatform() + if xplatform_val: + self._cmake.definitions["QT_QMAKE_TARGET_MKSPEC"] = xplatform_val + else: + self.output.warn("host not supported: %s %s %s %s" % + (self.settings.os, self.settings.compiler, + self.settings.compiler.version, self.settings.arch)) + if self.options.cross_compile: + self._cmake.definitions["QT_QMAKE_DEVICE_OPTIONS"] = "CROSS_COMPILE=%s" % self.options.cross_compile + + self._cmake.definitions["FEATURE_pkg_config"] = "ON" + if self.settings.compiler == "gcc" and self.settings.build_type == "Debug" and not self.options.shared: + self._cmake.definitions["BUILD_WITH_PCH"]= "OFF" # disabling PCH to save disk space + + try: + self._cmake.configure(source_folder="qt6") + except: + cmake_err_log = os.path.join(self.build_folder, "CMakeFiles", "CMakeError.log") + cmake_out_log = os.path.join(self.build_folder, "CMakeFiles", "CMakeOutput.log") + if (os.path.isfile(cmake_err_log)): + self.output.info(tools.load(cmake_err_log)) + if (os.path.isfile(cmake_out_log)): + self.output.info(tools.load(cmake_out_log)) + raise + return self._cmake + + def build(self): + for f in glob.glob("*.cmake"): + tools.replace_in_file(f, + "$<$,SHARED_LIBRARY>:>", + "", strict=False) + tools.replace_in_file(f, + "$<$,MODULE_LIBRARY>:>", + "", strict=False) + tools.replace_in_file(f, + "$<$,EXECUTABLE>:>", + "", strict=False) + tools.replace_in_file(f, + "$<$,SHARED_LIBRARY>:-Wl,--export-dynamic>", + "", strict=False) + tools.replace_in_file(f, + "$<$,MODULE_LIBRARY>:-Wl,--export-dynamic>", + "", strict=False) + tools.replace_in_file(f, + " IMPORTED)\n", + " IMPORTED GLOBAL)\n", strict=False) + with tools.vcvars(self) if self._is_msvc else tools.no_op(): + # next lines force cmake package to be in PATH before the one provided by visual studio (vcvars) + build_env = tools.RunEnvironment(self).vars if self._is_msvc else {} + build_env["MAKEFLAGS"] = "j%d" % tools.cpu_count() + build_env["PKG_CONFIG_PATH"] = [self.build_folder] + if self.settings.os == "Windows": + if not "PATH" in build_env: + build_env["PATH"] = [] + build_env["PATH"].append(os.path.join(self.source_folder, "qt6", "gnuwin32", "bin")) + if self._is_msvc: + # this avoids cmake using gcc from strawberryperl + build_env["CC"] = "cl" + build_env["CXX"] = "cl" + with tools.environment_append(build_env): + + if tools.os_info.is_macos: + open(".qmake.stash" , "w").close() + open(".qmake.super" , "w").close() + + cmake = self._configure_cmake() + if tools.os_info.is_macos: + with open("bash_env", "w") as f: + f.write('export DYLD_LIBRARY_PATH="%s"' % ":".join(RunEnvironment(self).vars["DYLD_LIBRARY_PATH"])) + with tools.environment_append({ + "BASH_ENV": os.path.abspath("bash_env") + }) if tools.os_info.is_macos else tools.no_op(): + with tools.run_environment(self): + cmake.build() + @property + def _cmake_executables_file(self): + return os.path.join("lib", "cmake", "Qt6Core", "conan_qt_executables_variables.cmake") + + @property + def _cmake_entry_point_file(self): + return os.path.join("lib", "cmake", "Qt6Core", "conan_qt_entry_point.cmake") + + def _cmake_qt6_private_file(self, module): + return os.path.join("lib", "cmake", "Qt6{0}".format(module), "conan_qt_qt6_{0}private.cmake".format(module.lower())) + + def package(self): + cmake = self._configure_cmake() + cmake.install() + with open(os.path.join(self.package_folder, "bin", "qt.conf"), "w") as f: + f.write(qt.content_template("..", "res", self.settings.os)) + self.copy("*LICENSE*", src="qt6/", dst="licenses") + for module in self._get_module_tree: + if module != "qtbase" and not self.options.get_safe(module): + tools.rmdir(os.path.join(self.package_folder, "licenses", module)) + tools.rmdir(os.path.join(self.package_folder, "lib", "pkgconfig")) + for mask in ["Find*.cmake", "*Config.cmake", "*-config.cmake"]: + tools.remove_files_by_mask(self.package_folder, mask) + tools.remove_files_by_mask(os.path.join(self.package_folder, "lib"), "*.la*") + tools.remove_files_by_mask(self.package_folder, "*.pdb*") + tools.remove_files_by_mask(self.package_folder, "ensure_pro_file.cmake") + os.remove(os.path.join(self.package_folder, "bin", "qt-cmake-private-install.cmake")) + + for m in os.listdir(os.path.join(self.package_folder, "lib", "cmake")): + module = os.path.join(self.package_folder, "lib", "cmake", m, "%sMacros.cmake" % m) + helper_modules = glob.glob(os.path.join(self.package_folder, "lib", "cmake", m, "QtPublic*Helpers.cmake")) + if not os.path.isfile(module) and not helper_modules: + tools.rmdir(os.path.join(self.package_folder, "lib", "cmake", m)) + + extension = "" + if self.settings.os == "Windows": + extension = ".exe" + filecontents = "set(QT_CMAKE_EXPORT_NAMESPACE Qt6)\n" + ver = tools.Version(self.version) + filecontents += "set(QT_VERSION_MAJOR %s)\n" % ver.major + filecontents += "set(QT_VERSION_MINOR %s)\n" % ver.minor + filecontents += "set(QT_VERSION_PATCH %s)\n" % ver.patch + targets = ["moc", "rcc", "tracegen", "cmake_automoc_parser", "qlalr", "qmake"] + if self.options.with_dbus: + targets.extend(["qdbuscpp2xml", "qdbusxml2cpp"]) + if self.options.gui: + targets.append("qvkgen") + if self.options.widgets: + targets.append("uic") + if self.options.qttools: + targets.extend(["qhelpgenerator", "qtattributionsscanner", "windeployqt"]) + targets.extend(["lconvert", "lprodump", "lrelease", "lrelease-pro", "lupdate", "lupdate-pro"]) + if self.options.qtshadertools: + targets.append("qsb") + if self.options.qtdeclarative: + targets.extend(["qmltyperegistrar", "qmlcachegen", "qmllint", "qmlimportscanner"]) + targets.extend(["qmlformat", "qml", "qmlprofiler", "qmlpreview", "qmltestrunner"]) + if self.options.get_safe("qtremoteobjects"): + targets.append("repc") + for target in targets: + exe_path = None + for path_ in ["bin/{0}{1}".format(target, extension), + "lib/{0}{1}".format(target, extension)]: + if os.path.isfile(os.path.join(self.package_folder, path_)): + exe_path = path_ + break + if not exe_path: + self.output.warn("Could not find path to {0}{1}".format(target, extension)) + filecontents += textwrap.dedent("""\ + if(NOT TARGET ${{QT_CMAKE_EXPORT_NAMESPACE}}::{0}) + add_executable(${{QT_CMAKE_EXPORT_NAMESPACE}}::{0} IMPORTED) + set_target_properties(${{QT_CMAKE_EXPORT_NAMESPACE}}::{0} PROPERTIES IMPORTED_LOCATION ${{CMAKE_CURRENT_LIST_DIR}}/../../../{1}) + endif() + """.format(target, exe_path)) + tools.save(os.path.join(self.package_folder, self._cmake_executables_file), filecontents) + + def _create_private_module(module, dependencies=[]): + dependencies_string = ';'.join('Qt6::%s' % dependency for dependency in dependencies) + contents = textwrap.dedent("""\ + if(NOT TARGET Qt6::{0}Private) + add_library(Qt6::{0}Private INTERFACE IMPORTED) + + set_target_properties(Qt6::{0}Private PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${{CMAKE_CURRENT_LIST_DIR}}/../../../include/Qt{0}/{1};${{CMAKE_CURRENT_LIST_DIR}}/../../../include/Qt{0}/{1}/Qt{0}" + INTERFACE_LINK_LIBRARIES "{2}" + ) + + add_library(Qt::{0}Private INTERFACE IMPORTED) + set_target_properties(Qt::{0}Private PROPERTIES + INTERFACE_LINK_LIBRARIES "Qt6::{0}Private" + _qt_is_versionless_target "TRUE" + ) + endif()""".format(module, self.version, dependencies_string)) + + tools.save(os.path.join(self.package_folder, self._cmake_qt6_private_file(module)), contents) + + _create_private_module("Core", ["Core"]) + + if self.options.gui: + _create_private_module("Gui", ["CorePrivate", "Gui"]) + + if self.options.widgets: + _create_private_module("Widgets", ["CorePrivate", "GuiPrivate", "Widgets"]) + + if self.options.qtdeclarative: + _create_private_module("Qml", ["CorePrivate", "Qml"]) + + if self.settings.os in ["Windows", "iOS"]: + contents = textwrap.dedent("""\ + set(entrypoint_conditions "$>>") + list(APPEND entrypoint_conditions "$,EXECUTABLE>") + if(WIN32) + list(APPEND entrypoint_conditions "$>") + endif() + list(JOIN entrypoint_conditions "," entrypoint_conditions) + set(entrypoint_conditions "$") + set_property( + TARGET ${QT_CMAKE_EXPORT_NAMESPACE}::Core + APPEND PROPERTY INTERFACE_LINK_LIBRARIES "$<${entrypoint_conditions}:${QT_CMAKE_EXPORT_NAMESPACE}::EntryPointPrivate>" + )""") + tools.save(os.path.join(self.package_folder, self._cmake_entry_point_file), contents) + + def package_id(self): + del self.info.options.cross_compile + del self.info.options.sysroot + if self.options.multiconfiguration and self._is_msvc: + if self.settings.compiler == "Visual Studio": + if "MD" in self.settings.compiler.runtime: + self.info.settings.compiler.runtime = "MD/MDd" + else: + self.info.settings.compiler.runtime = "MT/MTd" + else: + self.info.settings.compiler.runtime_type = "Release/Debug" + + def package_info(self): + self.cpp_info.set_property("cmake_file_name", "Qt6") + + self.cpp_info.names["cmake_find_package"] = "Qt6" + self.cpp_info.names["cmake_find_package_multi"] = "Qt6" + + build_modules = [] + + libsuffix = "" + if self.settings.build_type == "Debug": + if self.settings.os == "Windows": + libsuffix = "d" + if tools.is_apple_os(self.settings.os): + libsuffix = "_debug" + + def _get_corrected_reqs(requires): + reqs = [] + for r in requires: + reqs.append(r if "::" in r else "qt%s" % r) + return reqs + + def _create_module(module, requires=[]): + componentname = "qt%s" % module + assert componentname not in self.cpp_info.components, "Module %s already present in self.cpp_info.components" % module + self.cpp_info.components[componentname].set_property("cmake_target_name", "Qt6::{}".format(module)) + self.cpp_info.components[componentname].names["cmake_find_package"] = module + self.cpp_info.components[componentname].names["cmake_find_package_multi"] = module + if module.endswith("Private"): + libname = module[:-7] + else: + libname = module + self.cpp_info.components[componentname].libs = ["Qt6%s%s" % (libname, libsuffix)] + self.cpp_info.components[componentname].includedirs = ["include", os.path.join("include", "Qt%s" % module)] + self.cpp_info.components[componentname].defines = ["QT_%s_LIB" % module.upper()] + if module != "Core" and "Core" not in requires: + requires.append("Core") + self.cpp_info.components[componentname].requires = _get_corrected_reqs(requires) + + def _create_plugin(pluginname, libname, type, requires): + componentname = "qt%s" % pluginname + assert componentname not in self.cpp_info.components, "Plugin %s already present in self.cpp_info.components" % pluginname + self.cpp_info.components[componentname].set_property("cmake_target_name", "Qt6::{}".format(pluginname)) + self.cpp_info.components[componentname].names["cmake_find_package"] = pluginname + self.cpp_info.components[componentname].names["cmake_find_package_multi"] = pluginname + if not self.options.shared: + self.cpp_info.components[componentname].libs = [libname + libsuffix] + self.cpp_info.components[componentname].libdirs = [os.path.join("res", "archdatadir", "plugins", type)] + self.cpp_info.components[componentname].includedirs = [] + if "Core" not in requires: + requires.append("Core") + self.cpp_info.components[componentname].requires = _get_corrected_reqs(requires) + + core_reqs = ["zlib::zlib"] + if self.options.with_pcre2: + core_reqs.append("pcre2::pcre2") + if self.options.with_doubleconversion: + core_reqs.append("double-conversion::double-conversion") + if self.options.get_safe("with_icu", False): + core_reqs.append("icu::icu") + if self.options.with_zstd: + core_reqs.append("zstd::zstd") + + _create_module("Core", core_reqs) + if self._is_msvc: + if tools.Version(self.version) >= "6.2.0": + self.cpp_info.components["qtCore"].cxxflags.append("-Zc:__cplusplus") + self.cpp_info.components["qtCore"].system_libs.append("synchronization") + if tools.Version(self.version) >= "6.2.1": + self.cpp_info.components["qtCore"].system_libs.append("runtimeobject") + self.cpp_info.components["qtPlatform"].set_property("cmake_target_name", "Qt6::Platform") + self.cpp_info.components["qtPlatform"].names["cmake_find_package"] = "Platform" + self.cpp_info.components["qtPlatform"].names["cmake_find_package_multi"] = "Platform" + self.cpp_info.components["qtPlatform"].includedirs = [os.path.join("res", "archdatadir", "mkspecs", self._xplatform())] + if tools.Version(self.version) < "6.1.0": + self.cpp_info.components["qtCore"].libs.append("Qt6Core_qobject%s" % libsuffix) + if self.options.gui: + gui_reqs = [] + if self.options.with_dbus: + gui_reqs.append("DBus") + if self.options.with_freetype: + gui_reqs.append("freetype::freetype") + if self.options.with_libpng: + gui_reqs.append("libpng::libpng") + if self.options.get_safe("with_fontconfig", False): + gui_reqs.append("fontconfig::fontconfig") + if self.settings.os in ["Linux", "FreeBSD"]: + gui_reqs.extend(["xorg::xorg", "xkbcommon::xkbcommon"]) + if self.settings.os != "Windows" and self.options.get_safe("opengl", "no") != "no": + gui_reqs.append("opengl::opengl") + if self.options.get_safe("with_vulkan", False): + gui_reqs.append("vulkan-loader::vulkan-loader") + if tools.is_apple_os(self.settings.os): + gui_reqs.append("moltenvk::moltenvk") + if self.options.with_harfbuzz: + gui_reqs.append("harfbuzz::harfbuzz") + if self.options.with_libjpeg == "libjpeg-turbo": + gui_reqs.append("libjpeg-turbo::libjpeg-turbo") + if self.options.with_libjpeg == "libjpeg": + gui_reqs.append("libjpeg::libjpeg") + _create_module("Gui", gui_reqs) + + build_modules.append(self._cmake_qt6_private_file("Gui")) + self.cpp_info.components["qtGui"].build_modules["cmake_find_package"].append(self._cmake_qt6_private_file("Gui")) + self.cpp_info.components["qtGui"].build_modules["cmake_find_package_multi"].append(self._cmake_qt6_private_file("Gui")) + + if self.settings.os == "Windows": + _create_plugin("QWindowsIntegrationPlugin", "qwindows", "platforms", ["Core", "Gui"]) + self.cpp_info.components["qtQWindowsIntegrationPlugin"].system_libs = ["advapi32", "dwmapi", "gdi32", "imm32", + "ole32", "oleaut32", "shell32", "shlwapi", "user32", "winmm", "winspool", "wtsapi32"] + elif self.settings.os == "Android": + _create_plugin("QAndroidIntegrationPlugin", "qtforandroid", "platforms", ["Core", "Gui"]) + self.cpp_info.components["qtQAndroidIntegrationPlugin"].system_libs = ["android", "jnigraphics"] + elif self.settings.os == "Macos": + _create_plugin("QCocoaIntegrationPlugin", "qcocoa", "platforms", ["Core", "Gui"]) + self.cpp_info.components["QCocoaIntegrationPlugin"].frameworks = ["AppKit", "Carbon", "CoreServices", "CoreVideo", + "IOKit", "IOSurface", "Metal", "QuartzCore"] + elif self.settings.os in ["iOS", "tvOS"]: + _create_plugin("QIOSIntegrationPlugin", "qios", "platforms", []) + self.cpp_info.components["QIOSIntegrationPlugin"].frameworks = ["AudioToolbox", "Foundation", "Metal", + "QuartzCore", "UIKit"] + elif self.settings.os == "watchOS": + _create_plugin("QMinimalIntegrationPlugin", "qminimal", "platforms", []) + elif self.settings.os == "Emscripten": + _create_plugin("QWasmIntegrationPlugin", "qwasm", "platforms", ["Core", "Gui"]) + elif self.settings.os in ["Linux", "FreeBSD"]: + _create_module("XcbQpaPrivate", ["xkbcommon::libxkbcommon-x11", "xorg::xorg"]) + _create_plugin("QXcbIntegrationPlugin", "qxcb", "platforms", ["Core", "Gui", "XcbQpaPrivate"]) + + if self.options.with_sqlite3: + _create_plugin("QSQLiteDriverPlugin", "qsqlite", "sqldrivers", ["sqlite3::sqlite3"]) + if self.options.with_pq: + _create_plugin("QPSQLDriverPlugin", "qsqlpsql", "sqldrivers", ["libpq::libpq"]) + if self.options.with_odbc: + if self.settings.os != "Windows": + _create_plugin("QODBCDriverPlugin", "qsqlodbc", "sqldrivers", ["odbc::odbc"]) + networkReqs = [] + if self.options.openssl: + networkReqs.append("openssl::openssl") + if self.options.with_brotli: + networkReqs.append("brotli::brotli") + _create_module("Network", networkReqs) + _create_module("Sql") + _create_module("Test") + if self.options.widgets: + _create_module("Widgets", ["Gui"]) + build_modules.append(self._cmake_qt6_private_file("Widgets")) + self.cpp_info.components["qtWidgets"].build_modules["cmake_find_package"].append(self._cmake_qt6_private_file("Widgets")) + self.cpp_info.components["qtWidgets"].build_modules["cmake_find_package_multi"].append(self._cmake_qt6_private_file("Widgets")) + if self.options.gui and self.options.widgets: + _create_module("PrintSupport", ["Gui", "Widgets"]) + if self.options.get_safe("opengl", "no") != "no" and self.options.gui: + _create_module("OpenGL", ["Gui"]) + if self.options.widgets and self.options.get_safe("opengl", "no") != "no": + _create_module("OpenGLWidgets", ["OpenGL", "Widgets"]) + if self.options.with_dbus: + _create_module("DBus", ["dbus::dbus"]) + _create_module("Concurrent") + _create_module("Xml") + + if self.options.qt5compat: + _create_module("Core5Compat") + + # since https://github.com/qt/qtdeclarative/commit/4fb84137f1c0a49d64b8bef66fef8a4384cc2a68 + qt_quick_enabled = self.options.gui and (tools.Version(self.version) < "6.2.0" or self.options.qtshadertools) + + if self.options.qtdeclarative: + _create_module("Qml", ["Network"]) + build_modules.append(self._cmake_qt6_private_file("Qml")) + self.cpp_info.components["qtQml"].build_modules["cmake_find_package"].append(self._cmake_qt6_private_file("Qml")) + self.cpp_info.components["qtQml"].build_modules["cmake_find_package_multi"].append(self._cmake_qt6_private_file("Qml")) + _create_module("QmlModels", ["Qml"]) + self.cpp_info.components["qtQmlImportScanner"].set_property("cmake_target_name", "Qt6::QmlImportScanner") + self.cpp_info.components["qtQmlImportScanner"].names["cmake_find_package"] = "QmlImportScanner" # this is an alias for Qml and there to integrate with existing consumers + self.cpp_info.components["qtQmlImportScanner"].names["cmake_find_package_multi"] = "QmlImportScanner" + self.cpp_info.components["qtQmlImportScanner"].requires = _get_corrected_reqs(["Qml"]) + if qt_quick_enabled: + _create_module("Quick", ["Gui", "Qml", "QmlModels"]) + if self.options.widgets: + _create_module("QuickWidgets", ["Gui", "Qml", "Quick", "Widgets"]) + _create_module("QuickShapes", ["Gui", "Qml", "Quick"]) + _create_module("QmlWorkerScript", ["Qml"]) + _create_module("QuickTest", ["Test"]) + + if self.options.qttools and self.options.gui and self.options.widgets: + self.cpp_info.components["qtLinguistTools"].set_property("cmake_target_name", "Qt6::LinguistTools") + self.cpp_info.components["qtLinguistTools"].names["cmake_find_package"] = "LinguistTools" + self.cpp_info.components["qtLinguistTools"].names["cmake_find_package_multi"] = "LinguistTools" + _create_module("UiPlugin", ["Gui", "Widgets"]) + self.cpp_info.components["qtUiPlugin"].libs = [] # this is a collection of abstract classes, so this is header-only + self.cpp_info.components["qtUiPlugin"].libdirs = [] + _create_module("UiTools", ["UiPlugin", "Gui", "Widgets"]) + _create_module("Designer", ["Gui", "UiPlugin", "Widgets", "Xml"]) + _create_module("Help", ["Gui", "Sql", "Widgets"]) + + if self.options.qtquick3d and qt_quick_enabled: + _create_module("Quick3DUtils", ["Gui"]) + _create_module("Quick3DAssetImport", ["Gui", "Qml", "Quick3DUtils"]) + _create_module("Quick3DRuntimeRender", ["Gui", "Quick", "Quick3DAssetImport", "Quick3DUtils", "ShaderTools"]) + _create_module("Quick3D", ["Gui", "Qml", "Quick", "Quick3DRuntimeRender"]) + + if (self.options.get_safe("qtquickcontrols2") or \ + (self.options.qtdeclarative and tools.Version(self.version) >= "6.2.0")) and qt_quick_enabled: + _create_module("QuickControls2", ["Gui", "Quick"]) + _create_module("QuickTemplates2", ["Gui", "Quick"]) + + if self.options.qtshadertools and self.options.gui: + _create_module("ShaderTools", ["Gui"]) + + if self.options.qtsvg and self.options.gui: + _create_module("Svg", ["Gui"]) + if self.options.widgets: + _create_module("SvgWidgets", ["Gui", "Svg", "Widgets"]) + + if self.options.qtwayland and self.options.gui: + _create_module("WaylandClient", ["Gui", "wayland::wayland-client"]) + _create_module("WaylandCompositor", ["Gui", "wayland::wayland-server"]) + + if self.options.get_safe("qtactiveqt") and self.settings.os == "Windows": + _create_module("AxBase", ["Gui", "Widgets"]) + _create_module("AxServer", ["AxBase"]) + self.cpp_info.components["qtAxServer"].system_libs.append("shell32") + self.cpp_info.components["qtAxServer"].defines.append("QAXSERVER") + _create_module("AxContainer", ["AxBase"]) + if self.options.get_safe("qtcharts"): + _create_module("Charts", ["Gui", "Widgets"]) + if self.options.get_safe("qtdatavis3d") and qt_quick_enabled: + _create_module("DataVisualization", ["Gui", "OpenGL", "Qml", "Quick"]) + if self.options.get_safe("qtlottie"): + _create_module("Bodymovin", ["Gui"]) + if self.options.get_safe("qtscxml"): + _create_module("StateMachine") + _create_module("StateMachineQml", ["StateMachine", "Qml"]) + _create_module("Scxml") + _create_plugin("QScxmlEcmaScriptDataModelPlugin", "qscxmlecmascriptdatamodel", "scxmldatamodel", ["Scxml", "Qml"]) + _create_module("ScxmlQml", ["Scxml", "Qml"]) + if self.options.get_safe("qtvirtualkeyboard") and qt_quick_enabled: + _create_module("VirtualKeyboard", ["Gui", "Qml", "Quick"]) + _create_plugin("QVirtualKeyboardPlugin", "qtvirtualkeyboardplugin", "platforminputcontexts", ["Gui", "Qml", "VirtualKeyboard"]) + _create_plugin("QtVirtualKeyboardHangulPlugin", "qtvirtualkeyboard_hangul", "virtualkeyboard", ["Gui", "Qml", "VirtualKeyboard"]) + _create_plugin("QtVirtualKeyboardMyScriptPlugin", "qtvirtualkeyboard_myscript", "virtualkeyboard", ["Gui", "Qml", "VirtualKeyboard"]) + _create_plugin("QtVirtualKeyboardThaiPlugin", "qtvirtualkeyboard_thai", "virtualkeyboard", ["Gui", "Qml", "VirtualKeyboard"]) + if self.options.get_safe("qt3d"): + _create_module("3DCore", ["Gui", "Network"]) + _create_module("3DRender", ["3DCore", "OpenGL"]) + _create_module("3DAnimation", ["3DCore", "3DRender", "Gui"]) + _create_module("3DInput", ["3DCore", "Gui"]) + _create_module("3DLogic", ["3DCore", "Gui"]) + _create_module("3DExtras", ["Gui", "3DCore", "3DInput", "3DLogic", "3DRender"]) + _create_plugin("DefaultGeometryLoaderPlugin", "defaultgeometryloader", "geometryloaders", ["3DCore", "3DRender", "Gui"]) + _create_plugin("fbxGeometryLoaderPlugin", "fbxgeometryloader", "geometryloaders", ["3DCore", "3DRender", "Gui"]) + if qt_quick_enabled: + _create_module("3DQuick", ["3DCore", "Gui", "Qml", "Quick"]) + _create_module("3DQuickAnimation", ["3DAnimation", "3DCore", "3DQuick", "3DRender", "Gui", "Qml"]) + _create_module("3DQuickExtras", ["3DCore", "3DExtras", "3DInput", "3DQuick", "3DRender", "Gui", "Qml"]) + _create_module("3DQuickInput", ["3DCore", "3DInput", "3DQuick", "Gui", "Qml"]) + _create_module("3DQuickRender", ["3DCore", "3DQuick", "3DRender", "Gui", "Qml"]) + _create_module("3DQuickScene2D", ["3DCore", "3DQuick", "3DRender", "Gui", "Qml"]) + if self.options.get_safe("qtimageformats"): + _create_plugin("ICNSPlugin", "qicns", "imageformats", ["Gui"]) + _create_plugin("QJp2Plugin", "qjp2", "imageformats", ["Gui"]) + _create_plugin("QMacHeifPlugin", "qmacheif", "imageformats", ["Gui"]) + _create_plugin("QMacJp2Plugin", "qmacjp2", "imageformats", ["Gui"]) + _create_plugin("QMngPlugin", "qmng", "imageformats", ["Gui"]) + _create_plugin("QTgaPlugin", "qtga", "imageformats", ["Gui"]) + _create_plugin("QTiffPlugin", "qtiff", "imageformats", ["Gui"]) + _create_plugin("QWbmpPlugin", "qwbmp", "imageformats", ["Gui"]) + _create_plugin("QWebpPlugin", "qwebp", "imageformats", ["Gui"]) + if self.options.get_safe("qtnetworkauth"): + _create_module("NetworkAuth", ["Network"]) + if self.options.get_safe("qtcoap"): + _create_module("Coap", ["Network"]) + if self.options.get_safe("qtmqtt"): + _create_module("Mqtt", ["Network"]) + if self.options.get_safe("qtopcua"): + _create_module("OpcUa", ["Network"]) + _create_plugin("QOpen62541Plugin", "open62541_backend", "opcua", ["Network", "OpcUa"]) + _create_plugin("QUACppPlugin", "uacpp_backend", "opcua", ["Network", "OpcUa"]) + + if self.options.get_safe("qtmultimedia"): + multimedia_reqs = ["Network", "Gui"] + if self.options.get_safe("with_libalsa", False): + multimedia_reqs.append("libalsa::libalsa") + if self.options.with_openal: + multimedia_reqs.append("openal::openal") + if self.options.get_safe("with_pulseaudio", False): + multimedia_reqs.append("pulseaudio::pulse") + _create_module("Multimedia", multimedia_reqs) + _create_module("MultimediaWidgets", ["Multimedia", "Widgets", "Gui"]) + if self.options.qtdeclarative and qt_quick_enabled: + _create_module("MultimediaQuick", ["Multimedia", "Quick"]) + _create_plugin("QM3uPlaylistPlugin", "qtmultimedia_m3u", "playlistformats", []) + if self.options.with_gstreamer: + _create_module("MultimediaGstTools", ["Multimedia", "MultimediaWidgets", "Gui", "gst-plugins-base::gst-plugins-base"]) + _create_plugin("QGstreamerAudioDecoderServicePlugin", "gstaudiodecoder", "mediaservice", []) + _create_plugin("QGstreamerCaptureServicePlugin", "gstmediacapture", "mediaservice", []) + _create_plugin("QGstreamerPlayerServicePlugin", "gstmediaplayer", "mediaservice", []) + if self.settings.os == "Linux": + _create_plugin("CameraBinServicePlugin", "gstcamerabin", "mediaservice", []) + _create_plugin("QAlsaPlugin", "qtaudio_alsa", "audio", []) + if self.settings.os == "Windows": + _create_plugin("AudioCaptureServicePlugin", "qtmedia_audioengine", "mediaservice", []) + _create_plugin("DSServicePlugin", "dsengine", "mediaservice", []) + _create_plugin("QWindowsAudioPlugin", "qtaudio_windows", "audio", []) + if self.settings.os == "Macos": + _create_plugin("AudioCaptureServicePlugin", "qtmedia_audioengine", "mediaservice", []) + _create_plugin("AVFMediaPlayerServicePlugin", "qavfmediaplayer", "mediaservice", []) + _create_plugin("AVFServicePlugin", "qavfcamera", "mediaservice", []) + _create_plugin("CoreAudioPlugin", "qtaudio_coreaudio", "audio", []) + + if (self.options.get_safe("qtlocation") and tools.Version(self.version) < "6.2.2") or \ + (self.options.get_safe("qtpositioning") and tools.Version(self.version) >= "6.2.2"): + _create_module("Positioning") + _create_plugin("QGeoPositionInfoSourceFactoryGeoclue2", "qtposition_geoclue2", "position", []) + _create_plugin("QGeoPositionInfoSourceFactoryPoll", "qtposition_positionpoll", "position", []) + + if self.options.get_safe("qtsensors"): + _create_module("Sensors") + _create_plugin("genericSensorPlugin", "qtsensors_generic", "sensors", []) + _create_plugin("IIOSensorProxySensorPlugin", "qtsensors_iio-sensor-proxy", "sensors", []) + if self.settings.os == "Linux": + _create_plugin("LinuxSensorPlugin", "qtsensors_linuxsys", "sensors", []) + _create_plugin("QtSensorGesturePlugin", "qtsensorgestures_plugin", "sensorgestures", []) + _create_plugin("QShakeSensorGesturePlugin", "qtsensorgestures_shakeplugin", "sensorgestures", []) + + if self.options.get_safe("qtconnectivity"): + _create_module("Bluetooth", ["Network"]) + _create_module("Nfc", []) + + if self.options.get_safe("qtserialport"): + _create_module("SerialPort") + + if self.options.get_safe("qtserialbus"): + _create_module("SerialBus", ["SerialPort"]) + _create_plugin("PassThruCanBusPlugin", "qtpassthrucanbus", "canbus", []) + _create_plugin("PeakCanBusPlugin", "qtpeakcanbus", "canbus", []) + _create_plugin("SocketCanBusPlugin", "qtsocketcanbus", "canbus", []) + _create_plugin("TinyCanBusPlugin", "qttinycanbus", "canbus", []) + _create_plugin("VirtualCanBusPlugin", "qtvirtualcanbus", "canbus", []) + + if self.options.get_safe("qtwebsockets"): + _create_module("WebSockets", ["Network"]) + + if self.options.get_safe("qtwebchannel"): + _create_module("WebChannel", ["Qml"]) + + if self.options.get_safe("qtwebengine") and qt_quick_enabled: + webenginereqs = ["Gui", "Quick", "WebChannel", "Positioning"] + if self.settings.os == "Linux": + webenginereqs.extend(["expat::expat", "opus::libopus", "xorg-proto::xorg-proto", "libxshmfence::libxshmfence", \ + "nss::nss", "libdrm::libdrm"]) + _create_module("WebEngineCore", webenginereqs) + _create_module("WebEngineQuick", ["WebEngineCore"]) + _create_module("WebEngineWidgets", ["WebEngineCore", "Quick", "PrintSupport", "Widgets", "Gui", "Network"]) + + if self.options.get_safe("qtremoteobjects"): + _create_module("RemoteObjects") + + if self.options.get_safe("qtwebview"): + _create_module("WebView", ["Core", "Gui"]) + + if self.settings.os in ["Windows", "iOS"]: + if self.settings.os == "Windows": + self.cpp_info.components["qtEntryPointImplementation"].set_property("cmake_target_name", "Qt6::EntryPointImplementation") + self.cpp_info.components["qtEntryPointImplementation"].names["cmake_find_package"] = "EntryPointImplementation" + self.cpp_info.components["qtEntryPointImplementation"].names["cmake_find_package_multi"] = "EntryPointImplementation" + self.cpp_info.components["qtEntryPointImplementation"].libs = ["Qt6EntryPoint%s" % libsuffix] + self.cpp_info.components["qtEntryPointImplementation"].system_libs = ["shell32"] + + if self.settings.compiler == "gcc": + self.cpp_info.components["qtEntryPointMinGW32"].set_property("cmake_target_name", "Qt6::EntryPointMinGW32") + self.cpp_info.components["qtEntryPointMinGW32"].names["cmake_find_package"] = "EntryPointMinGW32" + self.cpp_info.components["qtEntryPointMinGW32"].names["cmake_find_package_multi"] = "EntryPointMinGW32" + self.cpp_info.components["qtEntryPointMinGW32"].system_libs = ["mingw32"] + self.cpp_info.components["qtEntryPointMinGW32"].requires = ["qtEntryPointImplementation"] + + self.cpp_info.components["qtEntryPointPrivate"].set_property("cmake_target_name", "Qt6::EntryPointPrivate") + self.cpp_info.components["qtEntryPointPrivate"].names["cmake_find_package"] = "EntryPointPrivate" + self.cpp_info.components["qtEntryPointPrivate"].names["cmake_find_package_multi"] = "EntryPointPrivate" + if self.settings.os == "Windows": + if self.settings.compiler == "gcc": + self.cpp_info.components["qtEntryPointPrivate"].defines.append("QT_NEEDS_QMAIN") + self.cpp_info.components["qtEntryPointPrivate"].requires.append("qtEntryPointMinGW32") + else: + self.cpp_info.components["qtEntryPointPrivate"].requires.append("qtEntryPointImplementation") + if self.settings.os == "iOS": + self.cpp_info.components["qtEntryPointPrivate"].exelinkflags.append("-Wl,-e,_qt_main_wrapper") + + if self.settings.os != "Windows": + self.cpp_info.components["qtCore"].cxxflags.append("-fPIC") + + if not self.options.shared: + if self.settings.os == "Windows": + self.cpp_info.components["qtCore"].system_libs.append("version") # qtcore requires "GetFileVersionInfoW" and "VerQueryValueW" which are in "Version.lib" library + self.cpp_info.components["qtCore"].system_libs.append("winmm") # qtcore requires "__imp_timeSetEvent" which is in "Winmm.lib" library + self.cpp_info.components["qtCore"].system_libs.append("netapi32") # qtcore requires "NetApiBufferFree" which is in "Netapi32.lib" library + self.cpp_info.components["qtCore"].system_libs.append("userenv") # qtcore requires "__imp_GetUserProfileDirectoryW " which is in "UserEnv.Lib" library + self.cpp_info.components["qtCore"].system_libs.append("ws2_32") # qtcore requires "WSAStartup " which is in "Ws2_32.Lib" library + self.cpp_info.components["qtNetwork"].system_libs.append("dnsapi") # qtnetwork from qtbase requires "DnsFree" which is in "Dnsapi.lib" library + self.cpp_info.components["qtNetwork"].system_libs.append("iphlpapi") + self.cpp_info.components["qtNetwork"].system_libs.extend(["winhttp", "secur32"]) + + + if self.settings.os == "Macos": + self.cpp_info.components["qtCore"].frameworks.append("IOKit") # qtcore requires "_IORegistryEntryCreateCFProperty", "_IOServiceGetMatchingService" and much more which are in "IOKit" framework + self.cpp_info.components["qtCore"].frameworks.append("Cocoa") # qtcore requires "_OBJC_CLASS_$_NSApplication" and more, which are in "Cocoa" framework + self.cpp_info.components["qtCore"].frameworks.append("Security") # qtcore requires "_SecRequirementCreateWithString" and more, which are in "Security" framework + self.cpp_info.components["qtNetwork"].frameworks.append("SystemConfiguration") + self.cpp_info.components["qtNetwork"].frameworks.append("GSS") + if self.options.gui and self.options.widgets: + self.cpp_info.components["qtPrintSupport"].system_libs.append("cups") + + self.cpp_info.components["qtCore"].builddirs.append(os.path.join("res","archdatadir","bin")) + build_modules.append(self._cmake_executables_file) + self.cpp_info.components["qtCore"].build_modules["cmake_find_package"].append(self._cmake_executables_file) + self.cpp_info.components["qtCore"].build_modules["cmake_find_package_multi"].append(self._cmake_executables_file) + build_modules.append(self._cmake_qt6_private_file("Core")) + self.cpp_info.components["qtCore"].build_modules["cmake_find_package"].append(self._cmake_qt6_private_file("Core")) + self.cpp_info.components["qtCore"].build_modules["cmake_find_package_multi"].append(self._cmake_qt6_private_file("Core")) + if self.settings.os in ["Windows", "iOS"]: + build_modules.append(self._cmake_entry_point_file) + self.cpp_info.components["qtCore"].build_modules["cmake_find_package"].append(self._cmake_entry_point_file) + self.cpp_info.components["qtCore"].build_modules["cmake_find_package_multi"].append(self._cmake_entry_point_file) + + for m in os.listdir(os.path.join("lib", "cmake")): + module = os.path.join("lib", "cmake", m, "%sMacros.cmake" % m) + component_name = m.replace("Qt6", "qt") + if component_name == "qt": + component_name = "qtCore" + if os.path.isfile(module): + build_modules.append(module) + self.cpp_info.components[component_name].build_modules["cmake_find_package"].append(module) + self.cpp_info.components[component_name].build_modules["cmake_find_package_multi"].append(module) + + helper_modules = glob.glob(os.path.join(self.package_folder, "lib", "cmake", m, "QtPublic*Helpers.cmake")) + build_modules.extend(helper_modules) + self.cpp_info.components[component_name].build_modules["cmake_find_package"].extend(helper_modules) + self.cpp_info.components[component_name].build_modules["cmake_find_package_multi"].extend(helper_modules) + self.cpp_info.components[component_name].builddirs.append(os.path.join("lib", "cmake", m)) + + objects_dirs = glob.glob(os.path.join(self.package_folder, "lib", "objects-*/")) + for object_dir in objects_dirs: + for m in os.listdir(object_dir): + component = "qt" + m[:m.find("_")] + if component not in self.cpp_info.components: + continue + submodules_dir = os.path.join(object_dir, m) + for sub_dir in os.listdir(submodules_dir): + submodule_dir = os.path.join(submodules_dir, sub_dir) + obj_files = [os.path.join(submodule_dir, file) for file in os.listdir(submodule_dir)] + self.cpp_info.components[component].exelinkflags.extend(obj_files) + self.cpp_info.components[component].sharedlinkflags.extend(obj_files) + + self.cpp_info.set_property("cmake_build_modules", build_modules) diff --git a/qt/6.x.x/patches/138a720.diff b/qt/6.x.x/patches/138a720.diff new file mode 100644 index 0000000..0d48b66 --- /dev/null +++ b/qt/6.x.x/patches/138a720.diff @@ -0,0 +1,21 @@ +From 138a7203f16cf356e9d4dac697920a22437014b0 Mon Sep 17 00:00:00 2001 +From: Peter Varga +Date: Fri, 13 Nov 2020 11:09:23 +0100 +Subject: [PATCH] Fix build with msvc2019 16.8.0 + +Fixes: QTBUG-88708 +Change-Id: I3554ceec0437801b4861f68edd504d01fc01cf93 +Reviewed-by: Allan Sandfeld Jensen +--- + +diff --git a/chromium/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h b/chromium/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h +index 78c316e..136c796 100644 +--- a/chromium/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h ++++ b/chromium/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h +@@ -145,5 +145,5 @@ + // https://en.wikipedia.org/wiki/CIELAB_color_space#Forward_transformation. + SkV3 ToXYZ(const SkV3& lab) const { + auto invf = [](float x) -> float { +- return x > kSigma ? pow(x, 3) : 3 * kSigma2 * (x - 4.0f / 29.0f); ++ return x > kSigma ? (float)pow(x, 3) : 3 * kSigma2 * (x - 4.0f / 29.0f); + }; diff --git a/qt/6.x.x/patches/32451d5.diff b/qt/6.x.x/patches/32451d5.diff new file mode 100644 index 0000000..f9388cb --- /dev/null +++ b/qt/6.x.x/patches/32451d5.diff @@ -0,0 +1,32 @@ +From 32451d5c9126921180aad4bf78ec6af5eb27ec2a Mon Sep 17 00:00:00 2001 +From: Ulf Hermann +Date: Tue, 13 Jul 2021 11:05:51 +0200 +Subject: [PATCH] Directly include Unicode.h in YarrCanonicalize.h + +The redirection via utypes.h can be problematic if you have another +utypes.h around in a prominent place. It's easily avoided, though. + +Fixes: QTBUG-77528 +Change-Id: I50368f56b0d7eb957955900a32dbb625a38d02af +--- + +diff --git a/src/3rdparty/masm/stubs/wtf/unicode/utypes.h b/src/3rdparty/masm/stubs/wtf/unicode/utypes.h +deleted file mode 100644 +index e1b4ff9..0000000 +--- a/src/3rdparty/masm/stubs/wtf/unicode/utypes.h ++++ /dev/null +@@ -1 +0,0 @@ +-#include +diff --git a/src/3rdparty/masm/yarr/YarrCanonicalize.h b/src/3rdparty/masm/yarr/YarrCanonicalize.h +index cbd279e..17c9831 100644 +--- a/src/3rdparty/masm/yarr/YarrCanonicalize.h ++++ b/src/3rdparty/masm/yarr/YarrCanonicalize.h +@@ -26,7 +26,7 @@ + #pragma once + + #include +-#include ++#include + + namespace JSC { namespace Yarr { + diff --git a/qt/6.x.x/patches/5fe0b82.patch b/qt/6.x.x/patches/5fe0b82.patch new file mode 100644 index 0000000..ae2f8aa --- /dev/null +++ b/qt/6.x.x/patches/5fe0b82.patch @@ -0,0 +1,23 @@ +From bb01af1c36cebd08d407c9a06e5a3c906bd9a660 Mon Sep 17 00:00:00 2001 +From: Mark Jan van Kampen +Date: Wed, 27 Oct 2021 06:49:11 +0200 +Subject: [PATCH] Adds missing includes to utf8_strings.h + +--- + include/litehtml/utf8_strings.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/include/litehtml/utf8_strings.h b/include/litehtml/utf8_strings.h +index c5b2421..35d474f 100644 +--- a/include/litehtml/utf8_strings.h ++++ b/include/litehtml/utf8_strings.h +@@ -1,6 +1,9 @@ + #ifndef LH_UTF8_STRINGS_H + #define LH_UTF8_STRINGS_H + ++#include "os_types.h" ++#include "types.h" ++ + namespace litehtml + { + class utf8_to_wchar diff --git a/qt/6.x.x/patches/c72097e.diff b/qt/6.x.x/patches/c72097e.diff new file mode 100644 index 0000000..0f21c17 --- /dev/null +++ b/qt/6.x.x/patches/c72097e.diff @@ -0,0 +1,42 @@ +From c72097e8790553771daf3231124c3fbe1a438379 Mon Sep 17 00:00:00 2001 +From: Samuli Piippo +Date: Thu, 30 Mar 2017 11:37:24 +0300 +Subject: [PATCH] chromium: workaround for too long .rps file name + +Ninja may fail when the build directory is too long: + +ninja: error: WriteFile(__third_party_WebKit_Source_bindings_modules_\ +interfaces_info_individual_modules__home_qt_work_build_build-nitrogen\ +6x_tmp_work_cortexa9hf-neon-mx6qdl-poky-linux-gnueabi_qtwebengine_5.9\ +.0_gitAUTOINC_29afdb0a34_049134677a-r0_build_src_toolchain_target__ru\ +le.rsp): Unable to create file. File name too long + +Task-number: QTBUG-59769 +Change-Id: I73c5e64ae5174412be2a675e35b0b6047f2bf4c1 +--- + src/3rdparty/gn/src/gn/ninja_action_target_writer.cc | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc b/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc +index a5bc6cd..5cefbfe 100644 +--- a/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc ++++ b/src/3rdparty/gn/tosrcols/gn/ninja_action_target_writer.cc +@@ -122,9 +122,18 @@ std::string NinjaActionTargetWriter::WriteRuleDefinition() { + // strictly necessary for regular one-shot actions, but it's easier to + // just always define unique_name. + std::string rspfile = custom_rule_name; ++ ++ //quick workaround if filename length > 255 - ".rsp", just cut the dirs starting from the end ++ //please note ".$unique_name" is not used at the moment ++ int pos = 0; ++ std::string delimiter("_"); ++ while (rspfile.length() > 250 && (pos = rspfile.find_last_of(delimiter)) != std::string::npos) ++ rspfile = rspfile.substr(0,pos); ++ + if (!target_->sources().empty()) + rspfile += ".$unique_name"; + rspfile += ".rsp"; ++ + out_ << " rspfile = " << rspfile << std::endl; + + // Response file contents. diff --git a/qt/6.x.x/patches/c76d2f6.patch b/qt/6.x.x/patches/c76d2f6.patch new file mode 100644 index 0000000..8c70106 --- /dev/null +++ b/qt/6.x.x/patches/c76d2f6.patch @@ -0,0 +1,70 @@ +From c76d2f6e997d84d81b0b22e0bd3afdaf7acfe3b3 Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Wed, 13 Oct 2021 12:36:02 +0200 +Subject: [PATCH] Fix build with Win10 21H1 SDK and Win11 SDK + +Different parts are not fully defined + +Task-number: QTBUG-96533 +Change-Id: I4fcb795cea33c519ee082aa69a63660e581a2759 +Reviewed-by: Allan Sandfeld Jensen +--- + chromium/media/gpu/windows/d3d11_av1_accelerator.cc | 2 ++ + chromium/sandbox/win/src/process_mitigations.h | 13 +++++++++---- + 2 files changed, 11 insertions(+), 4 deletions(-) + +diff --git a/chromium/media/gpu/windows/d3d11_av1_accelerator.cc b/chromium/media/gpu/windows/d3d11_av1_accelerator.cc +index 8d2d808ed2a..a4d3a79d7c5 100644 +--- a/chromium/media/gpu/windows/d3d11_av1_accelerator.cc ++++ b/chromium/media/gpu/windows/d3d11_av1_accelerator.cc +@@ -15,6 +15,7 @@ + #include "media/gpu/codec_picture.h" + #include "media/gpu/windows/d3d11_picture_buffer.h" + ++#if !defined(NTDDI_WIN10_FE) // Windows 10.0.20348.0 + // These are from in a newer SDK than the one Chrome ships with. They + // should be deleted once Chrome switches to the updated SDK; they have been + // copied from: https://www.microsoft.com/en-us/download/details.aspx?id=101577 +@@ -279,6 +280,7 @@ typedef struct _DXVA_Tile_AV1 { + UCHAR Reserved8Bits; + } DXVA_Tile_AV1, *LPDXVA_Tile_AV1; + #pragma pack(pop) ++#endif // !defined(NTDDI_WIN10_FE) + + namespace media { + +diff --git a/chromium/sandbox/win/src/process_mitigations.h b/chromium/sandbox/win/src/process_mitigations.h +index 3b511fe2bd9..72b314c335e 100644 +--- a/chromium/sandbox/win/src/process_mitigations.h ++++ b/chromium/sandbox/win/src/process_mitigations.h +@@ -12,21 +12,26 @@ + #include "sandbox/win/src/security_level.h" + + // This will be defined in an upcoming Windows SDK release +-#ifndef COMPONENT_KTM ++#ifndef PROC_THREAD_ATTRIBUTE_MACHINE_TYPE + ++#ifndef COMPONENT_KTM + #define COMPONENT_KTM 0x01 + #define COMPONENT_VALID_FLAGS (COMPONENT_KTM) +-#define ProcThreadAttributeComponentFilter 26 + + typedef struct _COMPONENT_FILTER { + ULONG ComponentFlags; + } COMPONENT_FILTER, *PCOMPONENT_FILTER; ++#endif // COMPONENT_KTM + ++#define ProcThreadAttributeComponentFilter 26 ++#endif // PROC_THREAD_ATTRIBUTE_MACHINE_TYPE ++ ++// This seems to remain undefined in newer SDKs ++#ifndef PROC_THREAD_ATTRIBUTE_COMPONENT_FILTER + #define PROC_THREAD_ATTRIBUTE_COMPONENT_FILTER \ + ProcThreadAttributeValue(ProcThreadAttributeComponentFilter, FALSE, TRUE, \ + FALSE) +- +-#endif // COMPONENT_KTM ++#endif + + namespace sandbox { + diff --git a/qt/6.x.x/patches/dece6f5.patch b/qt/6.x.x/patches/dece6f5.patch new file mode 100644 index 0000000..16a6995 --- /dev/null +++ b/qt/6.x.x/patches/dece6f5.patch @@ -0,0 +1,25 @@ +From dece6f5840463ae2ddf927d65eb1b3680e34a547 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=98ystein=20Heskestad?= +Date: Wed, 27 Oct 2021 13:07:46 +0200 +Subject: Add missing macOS header file that was indirectly included before + +Change-Id: I4d4c7d4f957fc36dea5e06eb6d661aeecf6385f1 +Reviewed-by: Timur Pocheptsov +--- + src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h | 1 + + 1 file changed, 1 insertion(+) + +(limited to 'src/plugins/platforms/cocoa') + +diff --git a/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h b/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h +index 5d4b6d6a71..cc7193d8b7 100644 +--- a/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h ++++ b/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h +@@ -43,6 +43,7 @@ + #include + #include + ++#include + #include + + QT_BEGIN_NAMESPACE diff --git a/qt/6.x.x/patches/qt6-pri-helpers-fix.diff b/qt/6.x.x/patches/qt6-pri-helpers-fix.diff new file mode 100644 index 0000000..8038f41 --- /dev/null +++ b/qt/6.x.x/patches/qt6-pri-helpers-fix.diff @@ -0,0 +1,15 @@ +--- QtPriHelpers.cmake.original 2021-08-03 23:38:06.343653948 +0300 ++++ QtPriHelpers.cmake 2021-08-03 23:26:24.483637483 +0300 +@@ -30,7 +30,11 @@ + if(lib_target_type STREQUAL "INTERFACE_LIBRARY") + get_target_property(iface_libs ${lib_target} INTERFACE_LINK_LIBRARIES) + if(iface_libs) +- list(PREPEND lib_targets ${iface_libs}) ++ foreach (iface_lib ${iface_libs}) ++ if (NOT "${iface_lib}" STREQUAL "${lib_target}") ++ list(PREPEND lib_targets ${iface_lib}) ++ endif () ++ endforeach () + endif() + else() + list(APPEND lib_libs "$") diff --git a/qt/6.x.x/qtmodules6.0.1.conf b/qt/6.x.x/qtmodules6.0.1.conf new file mode 100644 index 0000000..b306d17 --- /dev/null +++ b/qt/6.x.x/qtmodules6.0.1.conf @@ -0,0 +1,325 @@ +[submodule "qtbase"] + path = qtbase + url = ../qtbase.git + branch = 6.0 + status = essential +[submodule "qtsvg"] + depends = qtbase + path = qtsvg + url = ../qtsvg.git + branch = 6.0 + status = addon +[submodule "qtdeclarative"] + depends = qtbase + recommends = qtsvg + path = qtdeclarative + url = ../qtdeclarative.git + branch = 6.0 + status = essential +[submodule "qtactiveqt"] + depends = qtbase + path = qtactiveqt + url = ../qtactiveqt.git + branch = dev + status = ignore +[submodule "qtmultimedia"] + depends = qtbase + recommends = qtdeclarative + path = qtmultimedia + url = ../qtmultimedia.git + branch = dev + status = ignore +[submodule "qttools"] + depends = qtbase + recommends = qtdeclarative qtactiveqt + path = qttools + url = ../qttools.git + branch = 6.0 + status = essential +[submodule "qtxmlpatterns"] + depends = qtbase + recommends = qtdeclarative + path = qtxmlpatterns + url = ../qtxmlpatterns.git + branch = dev + status = ignore +[submodule "qttranslations"] + depends = qttools + path = qttranslations + url = ../qttranslations.git + branch = 6.0 + status = essential + priority = 30 +[submodule "qtdoc"] + depends = qtdeclarative qttools + recommends = qtmultimedia qtquickcontrols qtquickcontrols2 + path = qtdoc + url = ../qtdoc.git + branch = 6.0 + status = essential + priority = 40 +[submodule "qtrepotools"] + path = qtrepotools + url = ../qtrepotools.git + branch = master + status = essential + project = - +[submodule "qtqa"] + depends = qtbase + path = qtqa + url = ../qtqa.git + branch = dev + status = essential + priority = 50 +[submodule "qtlocation"] + depends = qtbase + recommends = qtdeclarative qtquickcontrols qtquickcontrols2 qtserialport + path = qtlocation + url = ../qtlocation.git + branch = dev + status = ignore +[submodule "qtsensors"] + depends = qtbase + recommends = qtdeclarative + path = qtsensors + url = ../qtsensors.git + branch = dev + status = ignore +[submodule "qtsystems"] + depends = qtbase + recommends = qtdeclarative + path = qtsystems + url = ../qtsystems.git + branch = dev + status = ignore +[submodule "qtfeedback"] + depends = qtdeclarative + recommends = qtmultimedia + path = qtfeedback + url = ../qtfeedback.git + branch = master + status = ignore +[submodule "qtpim"] + depends = qtdeclarative + path = qtpim + url = ../qtpim.git + branch = dev + status = ignore +[submodule "qtconnectivity"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtconnectivity + url = ../qtconnectivity.git + branch = dev + status = ignore +[submodule "qtwayland"] + depends = qtbase + recommends = qtdeclarative + path = qtwayland + url = ../qtwayland.git + branch = 6.0 + status = addon +[submodule "qt3d"] + depends = qtbase + recommends = qtdeclarative qtshadertools + path = qt3d + url = ../qt3d.git + branch = dev + status = ignore +[submodule "qtimageformats"] + depends = qtbase + path = qtimageformats + url = ../qtimageformats.git + branch = dev + status = ignore +[submodule "qtgraphicaleffects"] + depends = qtdeclarative + path = qtgraphicaleffects + url = ../qtgraphicaleffects.git + branch = dev + status = ignore +[submodule "qtquickcontrols"] + depends = qtdeclarative + recommends = qtgraphicaleffects + path = qtquickcontrols + url = ../qtquickcontrols.git + branch = dev + status = ignore +[submodule "qtserialbus"] + depends = qtbase + recommends = qtserialport + path = qtserialbus + url = ../qtserialbus.git + branch = dev + status = ignore +[submodule "qtserialport"] + depends = qtbase + path = qtserialport + url = ../qtserialport.git + branch = dev + status = ignore +[submodule "qtx11extras"] + depends = qtbase + path = qtx11extras + url = ../qtx11extras.git + branch = dev + status = ignore +[submodule "qtmacextras"] + depends = qtbase + path = qtmacextras + url = ../qtmacextras.git + branch = dev + status = ignore +[submodule "qtwinextras"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtwinextras + url = ../qtwinextras.git + branch = dev + status = ignore +[submodule "qtandroidextras"] + depends = qtbase + path = qtandroidextras + url = ../qtandroidextras.git + branch = dev + status = ignore +[submodule "qtwebsockets"] + depends = qtbase + recommends = qtdeclarative + path = qtwebsockets + url = ../qtwebsockets.git + branch = dev + status = ignore +[submodule "qtwebchannel"] + depends = qtbase + recommends = qtdeclarative qtwebsockets + path = qtwebchannel + url = ../qtwebchannel.git + branch = dev + status = ignore +[submodule "qtwebengine"] + depends = qtdeclarative + recommends = qtquickcontrols qtquickcontrols2 qtlocation qtwebchannel qttools + path = qtwebengine + url = ../qtwebengine.git + branch = dev + status = ignore + priority = 10 +[submodule "qtcanvas3d"] + depends = qtdeclarative + path = qtcanvas3d + url = ../qtcanvas3d.git + branch = dev + status = ignore +[submodule "qtwebview"] + depends = qtdeclarative + recommends = qtwebengine + path = qtwebview + url = ../qtwebview.git + branch = dev + status = ignore +[submodule "qtquickcontrols2"] + depends = qtdeclarative + recommends = qtimageformats qtgraphicaleffects + path = qtquickcontrols2 + url = ../qtquickcontrols2.git + branch = 6.0 + status = essential +[submodule "qtpurchasing"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtpurchasing + url = ../qtpurchasing.git + branch = dev + status = ignore +[submodule "qtcharts"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtcharts + url = ../qtcharts.git + branch = dev + status = ignore +[submodule "qtdatavis3d"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtdatavis3d + url = ../qtdatavis3d.git + branch = dev + status = ignore +[submodule "qtvirtualkeyboard"] + depends = qtbase qtdeclarative qtsvg + recommends = qtmultimedia qtquickcontrols + path = qtvirtualkeyboard + url = ../qtvirtualkeyboard.git + branch = dev + status = ignore +[submodule "qtgamepad"] + depends = qtbase + recommends = qtdeclarative + path = qtgamepad + url = ../qtgamepad.git + branch = dev + status = ignore +[submodule "qtscxml"] + depends = qtbase qtdeclarative + path = qtscxml + url = ../qtscxml.git + branch = dev + status = ignore +[submodule "qtspeech"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtspeech + url = ../qtspeech.git + branch = dev + status = ignore +[submodule "qtnetworkauth"] + depends = qtbase + path = qtnetworkauth + url = ../qtnetworkauth.git + branch = dev + status = ignore +[submodule "qtremoteobjects"] + depends = qtbase + recommends = qtdeclarative + path = qtremoteobjects + url = ../qtremoteobjects.git + branch = dev + status = ignore +[submodule "qtwebglplugin"] + depends = qtbase qtwebsockets + recommends = qtdeclarative + path = qtwebglplugin + url = ../qtwebglplugin.git + branch = dev + status = ignore +[submodule "qtlottie"] + depends = qtbase qtdeclarative + path = qtlottie + url = ../qtlottie.git + branch = dev + status = ignore +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + branch = 6.0 + status = addon +[submodule "qtquick3d"] + depends = qtbase qtdeclarative qtshadertools + path = qtquick3d + url = ../qtquick3d.git + branch = 6.0 + status = addon +[submodule "qtshadertools"] + depends = qtbase + path = qtshadertools + url = ../qtshadertools.git + branch = 6.0 + status = addon +[submodule "qt5compat"] + depends = qtbase + path = qt5compat + url = ../qt5compat.git + branch = 6.0 + status = deprecated diff --git a/qt/6.x.x/qtmodules6.0.2.conf b/qt/6.x.x/qtmodules6.0.2.conf new file mode 100644 index 0000000..b306d17 --- /dev/null +++ b/qt/6.x.x/qtmodules6.0.2.conf @@ -0,0 +1,325 @@ +[submodule "qtbase"] + path = qtbase + url = ../qtbase.git + branch = 6.0 + status = essential +[submodule "qtsvg"] + depends = qtbase + path = qtsvg + url = ../qtsvg.git + branch = 6.0 + status = addon +[submodule "qtdeclarative"] + depends = qtbase + recommends = qtsvg + path = qtdeclarative + url = ../qtdeclarative.git + branch = 6.0 + status = essential +[submodule "qtactiveqt"] + depends = qtbase + path = qtactiveqt + url = ../qtactiveqt.git + branch = dev + status = ignore +[submodule "qtmultimedia"] + depends = qtbase + recommends = qtdeclarative + path = qtmultimedia + url = ../qtmultimedia.git + branch = dev + status = ignore +[submodule "qttools"] + depends = qtbase + recommends = qtdeclarative qtactiveqt + path = qttools + url = ../qttools.git + branch = 6.0 + status = essential +[submodule "qtxmlpatterns"] + depends = qtbase + recommends = qtdeclarative + path = qtxmlpatterns + url = ../qtxmlpatterns.git + branch = dev + status = ignore +[submodule "qttranslations"] + depends = qttools + path = qttranslations + url = ../qttranslations.git + branch = 6.0 + status = essential + priority = 30 +[submodule "qtdoc"] + depends = qtdeclarative qttools + recommends = qtmultimedia qtquickcontrols qtquickcontrols2 + path = qtdoc + url = ../qtdoc.git + branch = 6.0 + status = essential + priority = 40 +[submodule "qtrepotools"] + path = qtrepotools + url = ../qtrepotools.git + branch = master + status = essential + project = - +[submodule "qtqa"] + depends = qtbase + path = qtqa + url = ../qtqa.git + branch = dev + status = essential + priority = 50 +[submodule "qtlocation"] + depends = qtbase + recommends = qtdeclarative qtquickcontrols qtquickcontrols2 qtserialport + path = qtlocation + url = ../qtlocation.git + branch = dev + status = ignore +[submodule "qtsensors"] + depends = qtbase + recommends = qtdeclarative + path = qtsensors + url = ../qtsensors.git + branch = dev + status = ignore +[submodule "qtsystems"] + depends = qtbase + recommends = qtdeclarative + path = qtsystems + url = ../qtsystems.git + branch = dev + status = ignore +[submodule "qtfeedback"] + depends = qtdeclarative + recommends = qtmultimedia + path = qtfeedback + url = ../qtfeedback.git + branch = master + status = ignore +[submodule "qtpim"] + depends = qtdeclarative + path = qtpim + url = ../qtpim.git + branch = dev + status = ignore +[submodule "qtconnectivity"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtconnectivity + url = ../qtconnectivity.git + branch = dev + status = ignore +[submodule "qtwayland"] + depends = qtbase + recommends = qtdeclarative + path = qtwayland + url = ../qtwayland.git + branch = 6.0 + status = addon +[submodule "qt3d"] + depends = qtbase + recommends = qtdeclarative qtshadertools + path = qt3d + url = ../qt3d.git + branch = dev + status = ignore +[submodule "qtimageformats"] + depends = qtbase + path = qtimageformats + url = ../qtimageformats.git + branch = dev + status = ignore +[submodule "qtgraphicaleffects"] + depends = qtdeclarative + path = qtgraphicaleffects + url = ../qtgraphicaleffects.git + branch = dev + status = ignore +[submodule "qtquickcontrols"] + depends = qtdeclarative + recommends = qtgraphicaleffects + path = qtquickcontrols + url = ../qtquickcontrols.git + branch = dev + status = ignore +[submodule "qtserialbus"] + depends = qtbase + recommends = qtserialport + path = qtserialbus + url = ../qtserialbus.git + branch = dev + status = ignore +[submodule "qtserialport"] + depends = qtbase + path = qtserialport + url = ../qtserialport.git + branch = dev + status = ignore +[submodule "qtx11extras"] + depends = qtbase + path = qtx11extras + url = ../qtx11extras.git + branch = dev + status = ignore +[submodule "qtmacextras"] + depends = qtbase + path = qtmacextras + url = ../qtmacextras.git + branch = dev + status = ignore +[submodule "qtwinextras"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtwinextras + url = ../qtwinextras.git + branch = dev + status = ignore +[submodule "qtandroidextras"] + depends = qtbase + path = qtandroidextras + url = ../qtandroidextras.git + branch = dev + status = ignore +[submodule "qtwebsockets"] + depends = qtbase + recommends = qtdeclarative + path = qtwebsockets + url = ../qtwebsockets.git + branch = dev + status = ignore +[submodule "qtwebchannel"] + depends = qtbase + recommends = qtdeclarative qtwebsockets + path = qtwebchannel + url = ../qtwebchannel.git + branch = dev + status = ignore +[submodule "qtwebengine"] + depends = qtdeclarative + recommends = qtquickcontrols qtquickcontrols2 qtlocation qtwebchannel qttools + path = qtwebengine + url = ../qtwebengine.git + branch = dev + status = ignore + priority = 10 +[submodule "qtcanvas3d"] + depends = qtdeclarative + path = qtcanvas3d + url = ../qtcanvas3d.git + branch = dev + status = ignore +[submodule "qtwebview"] + depends = qtdeclarative + recommends = qtwebengine + path = qtwebview + url = ../qtwebview.git + branch = dev + status = ignore +[submodule "qtquickcontrols2"] + depends = qtdeclarative + recommends = qtimageformats qtgraphicaleffects + path = qtquickcontrols2 + url = ../qtquickcontrols2.git + branch = 6.0 + status = essential +[submodule "qtpurchasing"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtpurchasing + url = ../qtpurchasing.git + branch = dev + status = ignore +[submodule "qtcharts"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtcharts + url = ../qtcharts.git + branch = dev + status = ignore +[submodule "qtdatavis3d"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtdatavis3d + url = ../qtdatavis3d.git + branch = dev + status = ignore +[submodule "qtvirtualkeyboard"] + depends = qtbase qtdeclarative qtsvg + recommends = qtmultimedia qtquickcontrols + path = qtvirtualkeyboard + url = ../qtvirtualkeyboard.git + branch = dev + status = ignore +[submodule "qtgamepad"] + depends = qtbase + recommends = qtdeclarative + path = qtgamepad + url = ../qtgamepad.git + branch = dev + status = ignore +[submodule "qtscxml"] + depends = qtbase qtdeclarative + path = qtscxml + url = ../qtscxml.git + branch = dev + status = ignore +[submodule "qtspeech"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtspeech + url = ../qtspeech.git + branch = dev + status = ignore +[submodule "qtnetworkauth"] + depends = qtbase + path = qtnetworkauth + url = ../qtnetworkauth.git + branch = dev + status = ignore +[submodule "qtremoteobjects"] + depends = qtbase + recommends = qtdeclarative + path = qtremoteobjects + url = ../qtremoteobjects.git + branch = dev + status = ignore +[submodule "qtwebglplugin"] + depends = qtbase qtwebsockets + recommends = qtdeclarative + path = qtwebglplugin + url = ../qtwebglplugin.git + branch = dev + status = ignore +[submodule "qtlottie"] + depends = qtbase qtdeclarative + path = qtlottie + url = ../qtlottie.git + branch = dev + status = ignore +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + branch = 6.0 + status = addon +[submodule "qtquick3d"] + depends = qtbase qtdeclarative qtshadertools + path = qtquick3d + url = ../qtquick3d.git + branch = 6.0 + status = addon +[submodule "qtshadertools"] + depends = qtbase + path = qtshadertools + url = ../qtshadertools.git + branch = 6.0 + status = addon +[submodule "qt5compat"] + depends = qtbase + path = qt5compat + url = ../qt5compat.git + branch = 6.0 + status = deprecated diff --git a/qt/6.x.x/qtmodules6.0.3.conf b/qt/6.x.x/qtmodules6.0.3.conf new file mode 100644 index 0000000..653b6f1 --- /dev/null +++ b/qt/6.x.x/qtmodules6.0.3.conf @@ -0,0 +1,343 @@ +[submodule "qtbase"] + path = qtbase + url = ../qtbase.git + branch = 6.0 + status = essential +[submodule "qtsvg"] + depends = qtbase + path = qtsvg + url = ../qtsvg.git + branch = 6.0 + status = addon +[submodule "qtdeclarative"] + depends = qtbase + recommends = qtsvg + path = qtdeclarative + url = ../qtdeclarative.git + branch = 6.0 + status = essential +[submodule "qtactiveqt"] + depends = qtbase + path = qtactiveqt + url = ../qtactiveqt.git + branch = dev + status = ignore +[submodule "qtmultimedia"] + depends = qtbase + recommends = qtdeclarative + path = qtmultimedia + url = ../qtmultimedia.git + branch = dev + status = ignore +[submodule "qttools"] + depends = qtbase + recommends = qtdeclarative qtactiveqt + path = qttools + url = ../qttools.git + branch = 6.0 + status = essential +[submodule "qtxmlpatterns"] + depends = qtbase + recommends = qtdeclarative + path = qtxmlpatterns + url = ../qtxmlpatterns.git + branch = dev + status = ignore +[submodule "qttranslations"] + depends = qttools + path = qttranslations + url = ../qttranslations.git + branch = 6.0 + status = essential + priority = 30 +[submodule "qtdoc"] + depends = qtdeclarative qttools + recommends = qtmultimedia qtquickcontrols qtquickcontrols2 + path = qtdoc + url = ../qtdoc.git + branch = 6.0 + status = essential + priority = 40 +[submodule "qtrepotools"] + path = qtrepotools + url = ../qtrepotools.git + branch = master + status = essential + project = - +[submodule "qtqa"] + depends = qtbase + path = qtqa + url = ../qtqa.git + branch = dev + status = essential + priority = 50 +[submodule "qtlocation"] + depends = qtbase + recommends = qtdeclarative qtquickcontrols qtquickcontrols2 qtserialport + path = qtlocation + url = ../qtlocation.git + branch = dev + status = ignore +[submodule "qtsensors"] + depends = qtbase + recommends = qtdeclarative + path = qtsensors + url = ../qtsensors.git + branch = dev + status = ignore +[submodule "qtsystems"] + depends = qtbase + recommends = qtdeclarative + path = qtsystems + url = ../qtsystems.git + branch = dev + status = ignore +[submodule "qtfeedback"] + depends = qtdeclarative + recommends = qtmultimedia + path = qtfeedback + url = ../qtfeedback.git + branch = master + status = ignore +[submodule "qtpim"] + depends = qtdeclarative + path = qtpim + url = ../qtpim.git + branch = dev + status = ignore +[submodule "qtconnectivity"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtconnectivity + url = ../qtconnectivity.git + branch = dev + status = ignore +[submodule "qtwayland"] + depends = qtbase + recommends = qtdeclarative + path = qtwayland + url = ../qtwayland.git + branch = 6.0 + status = addon +[submodule "qt3d"] + depends = qtbase + recommends = qtdeclarative qtshadertools + path = qt3d + url = ../qt3d.git + branch = 6.0 + status = additionalLibrary +[submodule "qtimageformats"] + depends = qtbase + path = qtimageformats + url = ../qtimageformats.git + branch = 6.0 + status = additionalLibrary +[submodule "qtgraphicaleffects"] + depends = qtdeclarative + path = qtgraphicaleffects + url = ../qtgraphicaleffects.git + branch = dev + status = ignore +[submodule "qtquickcontrols"] + depends = qtdeclarative + recommends = qtgraphicaleffects + path = qtquickcontrols + url = ../qtquickcontrols.git + branch = dev + status = ignore +[submodule "qtserialbus"] + depends = qtbase + recommends = qtserialport + path = qtserialbus + url = ../qtserialbus.git + branch = dev + status = ignore +[submodule "qtserialport"] + depends = qtbase + path = qtserialport + url = ../qtserialport.git + branch = dev + status = ignore +[submodule "qtx11extras"] + depends = qtbase + path = qtx11extras + url = ../qtx11extras.git + branch = dev + status = ignore +[submodule "qtmacextras"] + depends = qtbase + path = qtmacextras + url = ../qtmacextras.git + branch = dev + status = ignore +[submodule "qtwinextras"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtwinextras + url = ../qtwinextras.git + branch = dev + status = ignore +[submodule "qtandroidextras"] + depends = qtbase + path = qtandroidextras + url = ../qtandroidextras.git + branch = dev + status = ignore +[submodule "qtwebsockets"] + depends = qtbase + recommends = qtdeclarative + path = qtwebsockets + url = ../qtwebsockets.git + branch = dev + status = ignore +[submodule "qtwebchannel"] + depends = qtbase + recommends = qtdeclarative qtwebsockets + path = qtwebchannel + url = ../qtwebchannel.git + branch = dev + status = ignore +[submodule "qtwebengine"] + depends = qtdeclarative + recommends = qtquickcontrols qtquickcontrols2 qtlocation qtwebchannel qttools + path = qtwebengine + url = ../qtwebengine.git + branch = dev + status = ignore + priority = 10 +[submodule "qtcanvas3d"] + depends = qtdeclarative + path = qtcanvas3d + url = ../qtcanvas3d.git + branch = dev + status = ignore +[submodule "qtwebview"] + depends = qtdeclarative + recommends = qtwebengine + path = qtwebview + url = ../qtwebview.git + branch = dev + status = ignore +[submodule "qtquickcontrols2"] + depends = qtdeclarative + recommends = qtimageformats qtgraphicaleffects + path = qtquickcontrols2 + url = ../qtquickcontrols2.git + branch = 6.0 + status = essential +[submodule "qtpurchasing"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtpurchasing + url = ../qtpurchasing.git + branch = dev + status = ignore +[submodule "qtcharts"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtcharts + url = ../qtcharts.git + branch = dev + status = ignore +[submodule "qtdatavis3d"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtdatavis3d + url = ../qtdatavis3d.git + branch = dev + status = ignore +[submodule "qtvirtualkeyboard"] + depends = qtbase qtdeclarative qtsvg + recommends = qtmultimedia qtquickcontrols + path = qtvirtualkeyboard + url = ../qtvirtualkeyboard.git + branch = dev + status = ignore +[submodule "qtgamepad"] + depends = qtbase + recommends = qtdeclarative + path = qtgamepad + url = ../qtgamepad.git + branch = dev + status = ignore +[submodule "qtscxml"] + depends = qtbase qtdeclarative + path = qtscxml + url = ../qtscxml.git + branch = dev + status = ignore +[submodule "qtspeech"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtspeech + url = ../qtspeech.git + branch = dev + status = ignore +[submodule "qtnetworkauth"] + depends = qtbase + path = qtnetworkauth + url = ../qtnetworkauth.git + branch = 6.0 + status = additionalLibrary +[submodule "qtremoteobjects"] + depends = qtbase + recommends = qtdeclarative + path = qtremoteobjects + url = ../qtremoteobjects.git + branch = dev + status = ignore +[submodule "qtwebglplugin"] + depends = qtbase qtwebsockets + recommends = qtdeclarative + path = qtwebglplugin + url = ../qtwebglplugin.git + branch = dev + status = ignore +[submodule "qtlottie"] + depends = qtbase qtdeclarative + path = qtlottie + url = ../qtlottie.git + branch = dev + status = ignore +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + branch = 6.0 + status = addon +[submodule "qtquick3d"] + depends = qtbase qtdeclarative qtshadertools + path = qtquick3d + url = ../qtquick3d.git + branch = 6.0 + status = addon +[submodule "qtshadertools"] + depends = qtbase + path = qtshadertools + url = ../qtshadertools.git + branch = 6.0 + status = addon +[submodule "qt5compat"] + depends = qtbase + path = qt5compat + url = ../qt5compat.git + branch = 6.0 + status = deprecated +[submodule "qtcoap"] + depends = qtbase qttools + path = qtcoap + url = ../qtcoap.git + branch = 6.0 + status = additionalLibrary +[submodule "qtmqtt"] + depends = qtbase qtdeclarative qttools + path = qtmqtt + url = ../qtmqtt.git + branch = 6.0 + status = additionalLibrary +[submodule "qtopcua"] + depends = qtbase qtdeclarative qtquickcontrols2 qttools + path = qtopcua + url = ../qtopcua.git + branch = 6.0 + status = additionalLibrary diff --git a/qt/6.x.x/qtmodules6.0.4.conf b/qt/6.x.x/qtmodules6.0.4.conf new file mode 100644 index 0000000..653b6f1 --- /dev/null +++ b/qt/6.x.x/qtmodules6.0.4.conf @@ -0,0 +1,343 @@ +[submodule "qtbase"] + path = qtbase + url = ../qtbase.git + branch = 6.0 + status = essential +[submodule "qtsvg"] + depends = qtbase + path = qtsvg + url = ../qtsvg.git + branch = 6.0 + status = addon +[submodule "qtdeclarative"] + depends = qtbase + recommends = qtsvg + path = qtdeclarative + url = ../qtdeclarative.git + branch = 6.0 + status = essential +[submodule "qtactiveqt"] + depends = qtbase + path = qtactiveqt + url = ../qtactiveqt.git + branch = dev + status = ignore +[submodule "qtmultimedia"] + depends = qtbase + recommends = qtdeclarative + path = qtmultimedia + url = ../qtmultimedia.git + branch = dev + status = ignore +[submodule "qttools"] + depends = qtbase + recommends = qtdeclarative qtactiveqt + path = qttools + url = ../qttools.git + branch = 6.0 + status = essential +[submodule "qtxmlpatterns"] + depends = qtbase + recommends = qtdeclarative + path = qtxmlpatterns + url = ../qtxmlpatterns.git + branch = dev + status = ignore +[submodule "qttranslations"] + depends = qttools + path = qttranslations + url = ../qttranslations.git + branch = 6.0 + status = essential + priority = 30 +[submodule "qtdoc"] + depends = qtdeclarative qttools + recommends = qtmultimedia qtquickcontrols qtquickcontrols2 + path = qtdoc + url = ../qtdoc.git + branch = 6.0 + status = essential + priority = 40 +[submodule "qtrepotools"] + path = qtrepotools + url = ../qtrepotools.git + branch = master + status = essential + project = - +[submodule "qtqa"] + depends = qtbase + path = qtqa + url = ../qtqa.git + branch = dev + status = essential + priority = 50 +[submodule "qtlocation"] + depends = qtbase + recommends = qtdeclarative qtquickcontrols qtquickcontrols2 qtserialport + path = qtlocation + url = ../qtlocation.git + branch = dev + status = ignore +[submodule "qtsensors"] + depends = qtbase + recommends = qtdeclarative + path = qtsensors + url = ../qtsensors.git + branch = dev + status = ignore +[submodule "qtsystems"] + depends = qtbase + recommends = qtdeclarative + path = qtsystems + url = ../qtsystems.git + branch = dev + status = ignore +[submodule "qtfeedback"] + depends = qtdeclarative + recommends = qtmultimedia + path = qtfeedback + url = ../qtfeedback.git + branch = master + status = ignore +[submodule "qtpim"] + depends = qtdeclarative + path = qtpim + url = ../qtpim.git + branch = dev + status = ignore +[submodule "qtconnectivity"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtconnectivity + url = ../qtconnectivity.git + branch = dev + status = ignore +[submodule "qtwayland"] + depends = qtbase + recommends = qtdeclarative + path = qtwayland + url = ../qtwayland.git + branch = 6.0 + status = addon +[submodule "qt3d"] + depends = qtbase + recommends = qtdeclarative qtshadertools + path = qt3d + url = ../qt3d.git + branch = 6.0 + status = additionalLibrary +[submodule "qtimageformats"] + depends = qtbase + path = qtimageformats + url = ../qtimageformats.git + branch = 6.0 + status = additionalLibrary +[submodule "qtgraphicaleffects"] + depends = qtdeclarative + path = qtgraphicaleffects + url = ../qtgraphicaleffects.git + branch = dev + status = ignore +[submodule "qtquickcontrols"] + depends = qtdeclarative + recommends = qtgraphicaleffects + path = qtquickcontrols + url = ../qtquickcontrols.git + branch = dev + status = ignore +[submodule "qtserialbus"] + depends = qtbase + recommends = qtserialport + path = qtserialbus + url = ../qtserialbus.git + branch = dev + status = ignore +[submodule "qtserialport"] + depends = qtbase + path = qtserialport + url = ../qtserialport.git + branch = dev + status = ignore +[submodule "qtx11extras"] + depends = qtbase + path = qtx11extras + url = ../qtx11extras.git + branch = dev + status = ignore +[submodule "qtmacextras"] + depends = qtbase + path = qtmacextras + url = ../qtmacextras.git + branch = dev + status = ignore +[submodule "qtwinextras"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtwinextras + url = ../qtwinextras.git + branch = dev + status = ignore +[submodule "qtandroidextras"] + depends = qtbase + path = qtandroidextras + url = ../qtandroidextras.git + branch = dev + status = ignore +[submodule "qtwebsockets"] + depends = qtbase + recommends = qtdeclarative + path = qtwebsockets + url = ../qtwebsockets.git + branch = dev + status = ignore +[submodule "qtwebchannel"] + depends = qtbase + recommends = qtdeclarative qtwebsockets + path = qtwebchannel + url = ../qtwebchannel.git + branch = dev + status = ignore +[submodule "qtwebengine"] + depends = qtdeclarative + recommends = qtquickcontrols qtquickcontrols2 qtlocation qtwebchannel qttools + path = qtwebengine + url = ../qtwebengine.git + branch = dev + status = ignore + priority = 10 +[submodule "qtcanvas3d"] + depends = qtdeclarative + path = qtcanvas3d + url = ../qtcanvas3d.git + branch = dev + status = ignore +[submodule "qtwebview"] + depends = qtdeclarative + recommends = qtwebengine + path = qtwebview + url = ../qtwebview.git + branch = dev + status = ignore +[submodule "qtquickcontrols2"] + depends = qtdeclarative + recommends = qtimageformats qtgraphicaleffects + path = qtquickcontrols2 + url = ../qtquickcontrols2.git + branch = 6.0 + status = essential +[submodule "qtpurchasing"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtpurchasing + url = ../qtpurchasing.git + branch = dev + status = ignore +[submodule "qtcharts"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtcharts + url = ../qtcharts.git + branch = dev + status = ignore +[submodule "qtdatavis3d"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtdatavis3d + url = ../qtdatavis3d.git + branch = dev + status = ignore +[submodule "qtvirtualkeyboard"] + depends = qtbase qtdeclarative qtsvg + recommends = qtmultimedia qtquickcontrols + path = qtvirtualkeyboard + url = ../qtvirtualkeyboard.git + branch = dev + status = ignore +[submodule "qtgamepad"] + depends = qtbase + recommends = qtdeclarative + path = qtgamepad + url = ../qtgamepad.git + branch = dev + status = ignore +[submodule "qtscxml"] + depends = qtbase qtdeclarative + path = qtscxml + url = ../qtscxml.git + branch = dev + status = ignore +[submodule "qtspeech"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtspeech + url = ../qtspeech.git + branch = dev + status = ignore +[submodule "qtnetworkauth"] + depends = qtbase + path = qtnetworkauth + url = ../qtnetworkauth.git + branch = 6.0 + status = additionalLibrary +[submodule "qtremoteobjects"] + depends = qtbase + recommends = qtdeclarative + path = qtremoteobjects + url = ../qtremoteobjects.git + branch = dev + status = ignore +[submodule "qtwebglplugin"] + depends = qtbase qtwebsockets + recommends = qtdeclarative + path = qtwebglplugin + url = ../qtwebglplugin.git + branch = dev + status = ignore +[submodule "qtlottie"] + depends = qtbase qtdeclarative + path = qtlottie + url = ../qtlottie.git + branch = dev + status = ignore +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + branch = 6.0 + status = addon +[submodule "qtquick3d"] + depends = qtbase qtdeclarative qtshadertools + path = qtquick3d + url = ../qtquick3d.git + branch = 6.0 + status = addon +[submodule "qtshadertools"] + depends = qtbase + path = qtshadertools + url = ../qtshadertools.git + branch = 6.0 + status = addon +[submodule "qt5compat"] + depends = qtbase + path = qt5compat + url = ../qt5compat.git + branch = 6.0 + status = deprecated +[submodule "qtcoap"] + depends = qtbase qttools + path = qtcoap + url = ../qtcoap.git + branch = 6.0 + status = additionalLibrary +[submodule "qtmqtt"] + depends = qtbase qtdeclarative qttools + path = qtmqtt + url = ../qtmqtt.git + branch = 6.0 + status = additionalLibrary +[submodule "qtopcua"] + depends = qtbase qtdeclarative qtquickcontrols2 qttools + path = qtopcua + url = ../qtopcua.git + branch = 6.0 + status = additionalLibrary diff --git a/qt/6.x.x/qtmodules6.1.0.conf b/qt/6.x.x/qtmodules6.1.0.conf new file mode 100644 index 0000000..f7df0be --- /dev/null +++ b/qt/6.x.x/qtmodules6.1.0.conf @@ -0,0 +1,343 @@ +[submodule "qtbase"] + path = qtbase + url = ../qtbase.git + branch = 6.1.0 + status = essential +[submodule "qtsvg"] + depends = qtbase + path = qtsvg + url = ../qtsvg.git + branch = 6.1.0 + status = addon +[submodule "qtdeclarative"] + depends = qtbase + recommends = qtsvg + path = qtdeclarative + url = ../qtdeclarative.git + branch = 6.1.0 + status = essential +[submodule "qtactiveqt"] + depends = qtbase + path = qtactiveqt + url = ../qtactiveqt.git + branch = 6.1.0 + status = addon +[submodule "qtmultimedia"] + depends = qtbase + recommends = qtdeclarative + path = qtmultimedia + url = ../qtmultimedia.git + branch = dev + status = ignore +[submodule "qttools"] + depends = qtbase + recommends = qtdeclarative qtactiveqt + path = qttools + url = ../qttools.git + branch = 6.1.0 + status = essential +[submodule "qtxmlpatterns"] + depends = qtbase + recommends = qtdeclarative + path = qtxmlpatterns + url = ../qtxmlpatterns.git + branch = dev + status = ignore +[submodule "qttranslations"] + depends = qttools + path = qttranslations + url = ../qttranslations.git + branch = 6.1.0 + status = essential + priority = 30 +[submodule "qtdoc"] + depends = qtdeclarative qttools + recommends = qtmultimedia qtquickcontrols qtquickcontrols2 + path = qtdoc + url = ../qtdoc.git + branch = 6.1.0 + status = essential + priority = 40 +[submodule "qtrepotools"] + path = qtrepotools + url = ../qtrepotools.git + branch = master + status = essential + project = - +[submodule "qtqa"] + depends = qtbase + path = qtqa + url = ../qtqa.git + branch = dev + status = essential + priority = 50 +[submodule "qtlocation"] + depends = qtbase + recommends = qtdeclarative qtquickcontrols qtquickcontrols2 qtserialport + path = qtlocation + url = ../qtlocation.git + branch = dev + status = ignore +[submodule "qtsensors"] + depends = qtbase + recommends = qtdeclarative + path = qtsensors + url = ../qtsensors.git + branch = dev + status = ignore +[submodule "qtsystems"] + depends = qtbase + recommends = qtdeclarative + path = qtsystems + url = ../qtsystems.git + branch = dev + status = ignore +[submodule "qtfeedback"] + depends = qtdeclarative + recommends = qtmultimedia + path = qtfeedback + url = ../qtfeedback.git + branch = master + status = ignore +[submodule "qtpim"] + depends = qtdeclarative + path = qtpim + url = ../qtpim.git + branch = dev + status = ignore +[submodule "qtconnectivity"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtconnectivity + url = ../qtconnectivity.git + branch = dev + status = ignore +[submodule "qtwayland"] + depends = qtbase + recommends = qtdeclarative + path = qtwayland + url = ../qtwayland.git + branch = 6.1.0 + status = addon +[submodule "qt3d"] + depends = qtbase + recommends = qtdeclarative qtshadertools + path = qt3d + url = ../qt3d.git + branch = 6.1.0 + status = addon +[submodule "qtimageformats"] + depends = qtbase + path = qtimageformats + url = ../qtimageformats.git + branch = 6.1.0 + status = addon +[submodule "qtgraphicaleffects"] + depends = qtdeclarative + path = qtgraphicaleffects + url = ../qtgraphicaleffects.git + branch = dev + status = ignore +[submodule "qtquickcontrols"] + depends = qtdeclarative + recommends = qtgraphicaleffects + path = qtquickcontrols + url = ../qtquickcontrols.git + branch = dev + status = ignore +[submodule "qtserialbus"] + depends = qtbase + recommends = qtserialport + path = qtserialbus + url = ../qtserialbus.git + branch = dev + status = ignore +[submodule "qtserialport"] + depends = qtbase + path = qtserialport + url = ../qtserialport.git + branch = dev + status = ignore +[submodule "qtx11extras"] + depends = qtbase + path = qtx11extras + url = ../qtx11extras.git + branch = dev + status = ignore +[submodule "qtmacextras"] + depends = qtbase + path = qtmacextras + url = ../qtmacextras.git + branch = dev + status = ignore +[submodule "qtwinextras"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtwinextras + url = ../qtwinextras.git + branch = dev + status = ignore +[submodule "qtandroidextras"] + depends = qtbase + path = qtandroidextras + url = ../qtandroidextras.git + branch = dev + status = ignore +[submodule "qtwebsockets"] + depends = qtbase + recommends = qtdeclarative + path = qtwebsockets + url = ../qtwebsockets.git + branch = dev + status = ignore +[submodule "qtwebchannel"] + depends = qtbase + recommends = qtdeclarative qtwebsockets + path = qtwebchannel + url = ../qtwebchannel.git + branch = dev + status = ignore +[submodule "qtwebengine"] + depends = qtdeclarative + recommends = qtquickcontrols qtquickcontrols2 qtlocation qtwebchannel qttools + path = qtwebengine + url = ../qtwebengine.git + branch = dev + status = ignore + priority = 10 +[submodule "qtcanvas3d"] + depends = qtdeclarative + path = qtcanvas3d + url = ../qtcanvas3d.git + branch = dev + status = ignore +[submodule "qtwebview"] + depends = qtdeclarative + recommends = qtwebengine + path = qtwebview + url = ../qtwebview.git + branch = dev + status = ignore +[submodule "qtquickcontrols2"] + depends = qtdeclarative + recommends = qtimageformats qtgraphicaleffects + path = qtquickcontrols2 + url = ../qtquickcontrols2.git + branch = 6.1.0 + status = essential +[submodule "qtpurchasing"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtpurchasing + url = ../qtpurchasing.git + branch = dev + status = ignore +[submodule "qtcharts"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtcharts + url = ../qtcharts.git + branch = 6.1.0 + status = addon +[submodule "qtdatavis3d"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtdatavis3d + url = ../qtdatavis3d.git + branch = 6.1.0 + status = addon +[submodule "qtvirtualkeyboard"] + depends = qtbase qtdeclarative qtsvg + recommends = qtmultimedia qtquickcontrols + path = qtvirtualkeyboard + url = ../qtvirtualkeyboard.git + branch = 6.1.0 + status = addon +[submodule "qtgamepad"] + depends = qtbase + recommends = qtdeclarative + path = qtgamepad + url = ../qtgamepad.git + branch = dev + status = ignore +[submodule "qtscxml"] + depends = qtbase qtdeclarative + path = qtscxml + url = ../qtscxml.git + branch = 6.1.0 + status = addon +[submodule "qtspeech"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtspeech + url = ../qtspeech.git + branch = dev + status = ignore +[submodule "qtnetworkauth"] + depends = qtbase + path = qtnetworkauth + url = ../qtnetworkauth.git + branch = 6.1.0 + status = addon +[submodule "qtremoteobjects"] + depends = qtbase + recommends = qtdeclarative + path = qtremoteobjects + url = ../qtremoteobjects.git + branch = dev + status = ignore +[submodule "qtwebglplugin"] + depends = qtbase qtwebsockets + recommends = qtdeclarative + path = qtwebglplugin + url = ../qtwebglplugin.git + branch = dev + status = ignore +[submodule "qtlottie"] + depends = qtbase qtdeclarative + path = qtlottie + url = ../qtlottie.git + branch = 6.1.0 + status = addon +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + branch = 6.1.0 + status = addon +[submodule "qtquick3d"] + depends = qtbase qtdeclarative qtshadertools + path = qtquick3d + url = ../qtquick3d.git + branch = 6.1.0 + status = addon +[submodule "qtshadertools"] + depends = qtbase + path = qtshadertools + url = ../qtshadertools.git + branch = 6.1.0 + status = addon +[submodule "qt5compat"] + depends = qtbase qtdeclarative + path = qt5compat + url = ../qt5compat.git + branch = 6.1.0 + status = deprecated +[submodule "qtcoap"] + depends = qtbase qttools + path = qtcoap + url = ../qtcoap.git + branch = 6.1.0 + status = addon +[submodule "qtmqtt"] + depends = qtbase qtdeclarative qttools + path = qtmqtt + url = ../qtmqtt.git + branch = 6.1.0 + status = addon +[submodule "qtopcua"] + depends = qtbase qtdeclarative qtquickcontrols2 qttools + path = qtopcua + url = ../qtopcua.git + branch = 6.1.0 + status = addon diff --git a/qt/6.x.x/qtmodules6.1.1.conf b/qt/6.x.x/qtmodules6.1.1.conf new file mode 100644 index 0000000..4e2f669 --- /dev/null +++ b/qt/6.x.x/qtmodules6.1.1.conf @@ -0,0 +1,343 @@ +[submodule "qtbase"] + path = qtbase + url = ../qtbase.git + branch = 6.1.1 + status = essential +[submodule "qtsvg"] + depends = qtbase + path = qtsvg + url = ../qtsvg.git + branch = 6.1.1 + status = addon +[submodule "qtdeclarative"] + depends = qtbase + recommends = qtsvg + path = qtdeclarative + url = ../qtdeclarative.git + branch = 6.1.1 + status = essential +[submodule "qtactiveqt"] + depends = qtbase + path = qtactiveqt + url = ../qtactiveqt.git + branch = 6.1.1 + status = addon +[submodule "qtmultimedia"] + depends = qtbase + recommends = qtdeclarative + path = qtmultimedia + url = ../qtmultimedia.git + branch = dev + status = ignore +[submodule "qttools"] + depends = qtbase + recommends = qtdeclarative qtactiveqt + path = qttools + url = ../qttools.git + branch = 6.1.1 + status = essential +[submodule "qtxmlpatterns"] + depends = qtbase + recommends = qtdeclarative + path = qtxmlpatterns + url = ../qtxmlpatterns.git + branch = dev + status = ignore +[submodule "qttranslations"] + depends = qttools + path = qttranslations + url = ../qttranslations.git + branch = 6.1.1 + status = essential + priority = 30 +[submodule "qtdoc"] + depends = qtdeclarative qttools + recommends = qtmultimedia qtquickcontrols qtquickcontrols2 + path = qtdoc + url = ../qtdoc.git + branch = 6.1.1 + status = essential + priority = 40 +[submodule "qtrepotools"] + path = qtrepotools + url = ../qtrepotools.git + branch = master + status = essential + project = - +[submodule "qtqa"] + depends = qtbase + path = qtqa + url = ../qtqa.git + branch = dev + status = essential + priority = 50 +[submodule "qtlocation"] + depends = qtbase + recommends = qtdeclarative qtquickcontrols qtquickcontrols2 qtserialport + path = qtlocation + url = ../qtlocation.git + branch = dev + status = ignore +[submodule "qtsensors"] + depends = qtbase + recommends = qtdeclarative + path = qtsensors + url = ../qtsensors.git + branch = dev + status = ignore +[submodule "qtsystems"] + depends = qtbase + recommends = qtdeclarative + path = qtsystems + url = ../qtsystems.git + branch = dev + status = ignore +[submodule "qtfeedback"] + depends = qtdeclarative + recommends = qtmultimedia + path = qtfeedback + url = ../qtfeedback.git + branch = master + status = ignore +[submodule "qtpim"] + depends = qtdeclarative + path = qtpim + url = ../qtpim.git + branch = dev + status = ignore +[submodule "qtconnectivity"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtconnectivity + url = ../qtconnectivity.git + branch = dev + status = ignore +[submodule "qtwayland"] + depends = qtbase + recommends = qtdeclarative + path = qtwayland + url = ../qtwayland.git + branch = 6.1.1 + status = addon +[submodule "qt3d"] + depends = qtbase + recommends = qtdeclarative qtshadertools + path = qt3d + url = ../qt3d.git + branch = 6.1.1 + status = addon +[submodule "qtimageformats"] + depends = qtbase + path = qtimageformats + url = ../qtimageformats.git + branch = 6.1.1 + status = addon +[submodule "qtgraphicaleffects"] + depends = qtdeclarative + path = qtgraphicaleffects + url = ../qtgraphicaleffects.git + branch = dev + status = ignore +[submodule "qtquickcontrols"] + depends = qtdeclarative + recommends = qtgraphicaleffects + path = qtquickcontrols + url = ../qtquickcontrols.git + branch = dev + status = ignore +[submodule "qtserialbus"] + depends = qtbase + recommends = qtserialport + path = qtserialbus + url = ../qtserialbus.git + branch = dev + status = ignore +[submodule "qtserialport"] + depends = qtbase + path = qtserialport + url = ../qtserialport.git + branch = dev + status = ignore +[submodule "qtx11extras"] + depends = qtbase + path = qtx11extras + url = ../qtx11extras.git + branch = dev + status = ignore +[submodule "qtmacextras"] + depends = qtbase + path = qtmacextras + url = ../qtmacextras.git + branch = dev + status = ignore +[submodule "qtwinextras"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtwinextras + url = ../qtwinextras.git + branch = dev + status = ignore +[submodule "qtandroidextras"] + depends = qtbase + path = qtandroidextras + url = ../qtandroidextras.git + branch = dev + status = ignore +[submodule "qtwebsockets"] + depends = qtbase + recommends = qtdeclarative + path = qtwebsockets + url = ../qtwebsockets.git + branch = dev + status = ignore +[submodule "qtwebchannel"] + depends = qtbase + recommends = qtdeclarative qtwebsockets + path = qtwebchannel + url = ../qtwebchannel.git + branch = dev + status = ignore +[submodule "qtwebengine"] + depends = qtdeclarative + recommends = qtquickcontrols qtquickcontrols2 qtlocation qtwebchannel qttools + path = qtwebengine + url = ../qtwebengine.git + branch = dev + status = ignore + priority = 10 +[submodule "qtcanvas3d"] + depends = qtdeclarative + path = qtcanvas3d + url = ../qtcanvas3d.git + branch = dev + status = ignore +[submodule "qtwebview"] + depends = qtdeclarative + recommends = qtwebengine + path = qtwebview + url = ../qtwebview.git + branch = dev + status = ignore +[submodule "qtquickcontrols2"] + depends = qtdeclarative + recommends = qtimageformats qtgraphicaleffects + path = qtquickcontrols2 + url = ../qtquickcontrols2.git + branch = 6.1.1 + status = essential +[submodule "qtpurchasing"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtpurchasing + url = ../qtpurchasing.git + branch = dev + status = ignore +[submodule "qtcharts"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtcharts + url = ../qtcharts.git + branch = 6.1.1 + status = addon +[submodule "qtdatavis3d"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtdatavis3d + url = ../qtdatavis3d.git + branch = 6.1.1 + status = addon +[submodule "qtvirtualkeyboard"] + depends = qtbase qtdeclarative qtsvg + recommends = qtmultimedia qtquickcontrols + path = qtvirtualkeyboard + url = ../qtvirtualkeyboard.git + branch = 6.1.1 + status = addon +[submodule "qtgamepad"] + depends = qtbase + recommends = qtdeclarative + path = qtgamepad + url = ../qtgamepad.git + branch = dev + status = ignore +[submodule "qtscxml"] + depends = qtbase qtdeclarative + path = qtscxml + url = ../qtscxml.git + branch = 6.1.1 + status = addon +[submodule "qtspeech"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtspeech + url = ../qtspeech.git + branch = dev + status = ignore +[submodule "qtnetworkauth"] + depends = qtbase + path = qtnetworkauth + url = ../qtnetworkauth.git + branch = 6.1.1 + status = addon +[submodule "qtremoteobjects"] + depends = qtbase + recommends = qtdeclarative + path = qtremoteobjects + url = ../qtremoteobjects.git + branch = dev + status = ignore +[submodule "qtwebglplugin"] + depends = qtbase qtwebsockets + recommends = qtdeclarative + path = qtwebglplugin + url = ../qtwebglplugin.git + branch = dev + status = ignore +[submodule "qtlottie"] + depends = qtbase qtdeclarative + path = qtlottie + url = ../qtlottie.git + branch = 6.1.1 + status = addon +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + branch = 6.1.1 + status = addon +[submodule "qtquick3d"] + depends = qtbase qtdeclarative qtshadertools + path = qtquick3d + url = ../qtquick3d.git + branch = 6.1.1 + status = addon +[submodule "qtshadertools"] + depends = qtbase + path = qtshadertools + url = ../qtshadertools.git + branch = 6.1.1 + status = addon +[submodule "qt5compat"] + depends = qtbase qtdeclarative + path = qt5compat + url = ../qt5compat.git + branch = 6.1.1 + status = deprecated +[submodule "qtcoap"] + depends = qtbase qttools + path = qtcoap + url = ../qtcoap.git + branch = 6.1.1 + status = addon +[submodule "qtmqtt"] + depends = qtbase qtdeclarative qttools + path = qtmqtt + url = ../qtmqtt.git + branch = 6.1.1 + status = addon +[submodule "qtopcua"] + depends = qtbase qtdeclarative qtquickcontrols2 qttools + path = qtopcua + url = ../qtopcua.git + branch = 6.1.1 + status = addon diff --git a/qt/6.x.x/qtmodules6.1.2.conf b/qt/6.x.x/qtmodules6.1.2.conf new file mode 100644 index 0000000..7ffb56c --- /dev/null +++ b/qt/6.x.x/qtmodules6.1.2.conf @@ -0,0 +1,343 @@ +[submodule "qtbase"] + path = qtbase + url = ../qtbase.git + branch = 6.1.2 + status = essential +[submodule "qtsvg"] + depends = qtbase + path = qtsvg + url = ../qtsvg.git + branch = 6.1.2 + status = addon +[submodule "qtdeclarative"] + depends = qtbase + recommends = qtsvg + path = qtdeclarative + url = ../qtdeclarative.git + branch = 6.1.2 + status = essential +[submodule "qtactiveqt"] + depends = qtbase + path = qtactiveqt + url = ../qtactiveqt.git + branch = 6.1.2 + status = addon +[submodule "qtmultimedia"] + depends = qtbase + recommends = qtdeclarative + path = qtmultimedia + url = ../qtmultimedia.git + branch = dev + status = ignore +[submodule "qttools"] + depends = qtbase + recommends = qtdeclarative qtactiveqt + path = qttools + url = ../qttools.git + branch = 6.1.2 + status = essential +[submodule "qtxmlpatterns"] + depends = qtbase + recommends = qtdeclarative + path = qtxmlpatterns + url = ../qtxmlpatterns.git + branch = dev + status = ignore +[submodule "qttranslations"] + depends = qttools + path = qttranslations + url = ../qttranslations.git + branch = 6.1.2 + status = essential + priority = 30 +[submodule "qtdoc"] + depends = qtdeclarative qttools + recommends = qtmultimedia qtquickcontrols qtquickcontrols2 + path = qtdoc + url = ../qtdoc.git + branch = 6.1.2 + status = essential + priority = 40 +[submodule "qtrepotools"] + path = qtrepotools + url = ../qtrepotools.git + branch = master + status = essential + project = - +[submodule "qtqa"] + depends = qtbase + path = qtqa + url = ../qtqa.git + branch = dev + status = essential + priority = 50 +[submodule "qtlocation"] + depends = qtbase + recommends = qtdeclarative qtquickcontrols qtquickcontrols2 qtserialport + path = qtlocation + url = ../qtlocation.git + branch = dev + status = ignore +[submodule "qtsensors"] + depends = qtbase + recommends = qtdeclarative + path = qtsensors + url = ../qtsensors.git + branch = dev + status = ignore +[submodule "qtsystems"] + depends = qtbase + recommends = qtdeclarative + path = qtsystems + url = ../qtsystems.git + branch = dev + status = ignore +[submodule "qtfeedback"] + depends = qtdeclarative + recommends = qtmultimedia + path = qtfeedback + url = ../qtfeedback.git + branch = master + status = ignore +[submodule "qtpim"] + depends = qtdeclarative + path = qtpim + url = ../qtpim.git + branch = dev + status = ignore +[submodule "qtconnectivity"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtconnectivity + url = ../qtconnectivity.git + branch = dev + status = ignore +[submodule "qtwayland"] + depends = qtbase + recommends = qtdeclarative + path = qtwayland + url = ../qtwayland.git + branch = 6.1.2 + status = addon +[submodule "qt3d"] + depends = qtbase + recommends = qtdeclarative qtshadertools + path = qt3d + url = ../qt3d.git + branch = 6.1.2 + status = addon +[submodule "qtimageformats"] + depends = qtbase + path = qtimageformats + url = ../qtimageformats.git + branch = 6.1.2 + status = addon +[submodule "qtgraphicaleffects"] + depends = qtdeclarative + path = qtgraphicaleffects + url = ../qtgraphicaleffects.git + branch = dev + status = ignore +[submodule "qtquickcontrols"] + depends = qtdeclarative + recommends = qtgraphicaleffects + path = qtquickcontrols + url = ../qtquickcontrols.git + branch = dev + status = ignore +[submodule "qtserialbus"] + depends = qtbase + recommends = qtserialport + path = qtserialbus + url = ../qtserialbus.git + branch = dev + status = ignore +[submodule "qtserialport"] + depends = qtbase + path = qtserialport + url = ../qtserialport.git + branch = dev + status = ignore +[submodule "qtx11extras"] + depends = qtbase + path = qtx11extras + url = ../qtx11extras.git + branch = dev + status = ignore +[submodule "qtmacextras"] + depends = qtbase + path = qtmacextras + url = ../qtmacextras.git + branch = dev + status = ignore +[submodule "qtwinextras"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtwinextras + url = ../qtwinextras.git + branch = dev + status = ignore +[submodule "qtandroidextras"] + depends = qtbase + path = qtandroidextras + url = ../qtandroidextras.git + branch = dev + status = ignore +[submodule "qtwebsockets"] + depends = qtbase + recommends = qtdeclarative + path = qtwebsockets + url = ../qtwebsockets.git + branch = dev + status = ignore +[submodule "qtwebchannel"] + depends = qtbase + recommends = qtdeclarative qtwebsockets + path = qtwebchannel + url = ../qtwebchannel.git + branch = dev + status = ignore +[submodule "qtwebengine"] + depends = qtdeclarative + recommends = qtquickcontrols qtquickcontrols2 qtlocation qtwebchannel qttools + path = qtwebengine + url = ../qtwebengine.git + branch = dev + status = ignore + priority = 10 +[submodule "qtcanvas3d"] + depends = qtdeclarative + path = qtcanvas3d + url = ../qtcanvas3d.git + branch = dev + status = ignore +[submodule "qtwebview"] + depends = qtdeclarative + recommends = qtwebengine + path = qtwebview + url = ../qtwebview.git + branch = dev + status = ignore +[submodule "qtquickcontrols2"] + depends = qtdeclarative + recommends = qtimageformats qtgraphicaleffects + path = qtquickcontrols2 + url = ../qtquickcontrols2.git + branch = 6.1.2 + status = essential +[submodule "qtpurchasing"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtpurchasing + url = ../qtpurchasing.git + branch = dev + status = ignore +[submodule "qtcharts"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtcharts + url = ../qtcharts.git + branch = 6.1.2 + status = addon +[submodule "qtdatavis3d"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtdatavis3d + url = ../qtdatavis3d.git + branch = 6.1.2 + status = addon +[submodule "qtvirtualkeyboard"] + depends = qtbase qtdeclarative qtsvg + recommends = qtmultimedia qtquickcontrols + path = qtvirtualkeyboard + url = ../qtvirtualkeyboard.git + branch = 6.1.2 + status = addon +[submodule "qtgamepad"] + depends = qtbase + recommends = qtdeclarative + path = qtgamepad + url = ../qtgamepad.git + branch = dev + status = ignore +[submodule "qtscxml"] + depends = qtbase qtdeclarative + path = qtscxml + url = ../qtscxml.git + branch = 6.1.2 + status = addon +[submodule "qtspeech"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtspeech + url = ../qtspeech.git + branch = dev + status = ignore +[submodule "qtnetworkauth"] + depends = qtbase + path = qtnetworkauth + url = ../qtnetworkauth.git + branch = 6.1.2 + status = addon +[submodule "qtremoteobjects"] + depends = qtbase + recommends = qtdeclarative + path = qtremoteobjects + url = ../qtremoteobjects.git + branch = dev + status = ignore +[submodule "qtwebglplugin"] + depends = qtbase qtwebsockets + recommends = qtdeclarative + path = qtwebglplugin + url = ../qtwebglplugin.git + branch = dev + status = ignore +[submodule "qtlottie"] + depends = qtbase qtdeclarative + path = qtlottie + url = ../qtlottie.git + branch = 6.1.2 + status = addon +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + branch = 6.1.2 + status = addon +[submodule "qtquick3d"] + depends = qtbase qtdeclarative qtshadertools + path = qtquick3d + url = ../qtquick3d.git + branch = 6.1.2 + status = addon +[submodule "qtshadertools"] + depends = qtbase + path = qtshadertools + url = ../qtshadertools.git + branch = 6.1.2 + status = addon +[submodule "qt5compat"] + depends = qtbase qtdeclarative + path = qt5compat + url = ../qt5compat.git + branch = 6.1.2 + status = deprecated +[submodule "qtcoap"] + depends = qtbase qttools + path = qtcoap + url = ../qtcoap.git + branch = 6.1.2 + status = addon +[submodule "qtmqtt"] + depends = qtbase qtdeclarative qttools + path = qtmqtt + url = ../qtmqtt.git + branch = 6.1.2 + status = addon +[submodule "qtopcua"] + depends = qtbase qtdeclarative qtquickcontrols2 qttools + path = qtopcua + url = ../qtopcua.git + branch = 6.1.2 + status = addon diff --git a/qt/6.x.x/qtmodules6.1.3.conf b/qt/6.x.x/qtmodules6.1.3.conf new file mode 100644 index 0000000..1c6405c --- /dev/null +++ b/qt/6.x.x/qtmodules6.1.3.conf @@ -0,0 +1,343 @@ +[submodule "qtbase"] + path = qtbase + url = ../qtbase.git + branch = 6.1.3 + status = essential +[submodule "qtsvg"] + depends = qtbase + path = qtsvg + url = ../qtsvg.git + branch = 6.1.3 + status = addon +[submodule "qtdeclarative"] + depends = qtbase + recommends = qtsvg + path = qtdeclarative + url = ../qtdeclarative.git + branch = 6.1.3 + status = essential +[submodule "qtactiveqt"] + depends = qtbase + path = qtactiveqt + url = ../qtactiveqt.git + branch = 6.1.3 + status = addon +[submodule "qtmultimedia"] + depends = qtbase + recommends = qtdeclarative + path = qtmultimedia + url = ../qtmultimedia.git + branch = dev + status = ignore +[submodule "qttools"] + depends = qtbase + recommends = qtdeclarative qtactiveqt + path = qttools + url = ../qttools.git + branch = 6.1.3 + status = essential +[submodule "qtxmlpatterns"] + depends = qtbase + recommends = qtdeclarative + path = qtxmlpatterns + url = ../qtxmlpatterns.git + branch = dev + status = ignore +[submodule "qttranslations"] + depends = qttools + path = qttranslations + url = ../qttranslations.git + branch = 6.1.3 + status = essential + priority = 30 +[submodule "qtdoc"] + depends = qtdeclarative qttools + recommends = qtmultimedia qtquickcontrols qtquickcontrols2 + path = qtdoc + url = ../qtdoc.git + branch = 6.1.3 + status = essential + priority = 40 +[submodule "qtrepotools"] + path = qtrepotools + url = ../qtrepotools.git + branch = master + status = essential + project = - +[submodule "qtqa"] + depends = qtbase + path = qtqa + url = ../qtqa.git + branch = dev + status = essential + priority = 50 +[submodule "qtlocation"] + depends = qtbase + recommends = qtdeclarative qtquickcontrols qtquickcontrols2 qtserialport + path = qtlocation + url = ../qtlocation.git + branch = dev + status = ignore +[submodule "qtsensors"] + depends = qtbase + recommends = qtdeclarative + path = qtsensors + url = ../qtsensors.git + branch = dev + status = ignore +[submodule "qtsystems"] + depends = qtbase + recommends = qtdeclarative + path = qtsystems + url = ../qtsystems.git + branch = dev + status = ignore +[submodule "qtfeedback"] + depends = qtdeclarative + recommends = qtmultimedia + path = qtfeedback + url = ../qtfeedback.git + branch = master + status = ignore +[submodule "qtpim"] + depends = qtdeclarative + path = qtpim + url = ../qtpim.git + branch = dev + status = ignore +[submodule "qtconnectivity"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtconnectivity + url = ../qtconnectivity.git + branch = dev + status = ignore +[submodule "qtwayland"] + depends = qtbase + recommends = qtdeclarative + path = qtwayland + url = ../qtwayland.git + branch = 6.1.3 + status = addon +[submodule "qt3d"] + depends = qtbase + recommends = qtdeclarative qtshadertools + path = qt3d + url = ../qt3d.git + branch = 6.1.3 + status = addon +[submodule "qtimageformats"] + depends = qtbase + path = qtimageformats + url = ../qtimageformats.git + branch = 6.1.3 + status = addon +[submodule "qtgraphicaleffects"] + depends = qtdeclarative + path = qtgraphicaleffects + url = ../qtgraphicaleffects.git + branch = dev + status = ignore +[submodule "qtquickcontrols"] + depends = qtdeclarative + recommends = qtgraphicaleffects + path = qtquickcontrols + url = ../qtquickcontrols.git + branch = dev + status = ignore +[submodule "qtserialbus"] + depends = qtbase + recommends = qtserialport + path = qtserialbus + url = ../qtserialbus.git + branch = dev + status = ignore +[submodule "qtserialport"] + depends = qtbase + path = qtserialport + url = ../qtserialport.git + branch = dev + status = ignore +[submodule "qtx11extras"] + depends = qtbase + path = qtx11extras + url = ../qtx11extras.git + branch = dev + status = ignore +[submodule "qtmacextras"] + depends = qtbase + path = qtmacextras + url = ../qtmacextras.git + branch = dev + status = ignore +[submodule "qtwinextras"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtwinextras + url = ../qtwinextras.git + branch = dev + status = ignore +[submodule "qtandroidextras"] + depends = qtbase + path = qtandroidextras + url = ../qtandroidextras.git + branch = dev + status = ignore +[submodule "qtwebsockets"] + depends = qtbase + recommends = qtdeclarative + path = qtwebsockets + url = ../qtwebsockets.git + branch = dev + status = ignore +[submodule "qtwebchannel"] + depends = qtbase + recommends = qtdeclarative qtwebsockets + path = qtwebchannel + url = ../qtwebchannel.git + branch = dev + status = ignore +[submodule "qtwebengine"] + depends = qtdeclarative + recommends = qtquickcontrols qtquickcontrols2 qtlocation qtwebchannel qttools + path = qtwebengine + url = ../qtwebengine.git + branch = dev + status = ignore + priority = 10 +[submodule "qtcanvas3d"] + depends = qtdeclarative + path = qtcanvas3d + url = ../qtcanvas3d.git + branch = dev + status = ignore +[submodule "qtwebview"] + depends = qtdeclarative + recommends = qtwebengine + path = qtwebview + url = ../qtwebview.git + branch = dev + status = ignore +[submodule "qtquickcontrols2"] + depends = qtdeclarative + recommends = qtimageformats qtgraphicaleffects + path = qtquickcontrols2 + url = ../qtquickcontrols2.git + branch = 6.1.3 + status = essential +[submodule "qtpurchasing"] + depends = qtbase + recommends = qtdeclarative qtandroidextras + path = qtpurchasing + url = ../qtpurchasing.git + branch = dev + status = ignore +[submodule "qtcharts"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtcharts + url = ../qtcharts.git + branch = 6.1.3 + status = addon +[submodule "qtdatavis3d"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtdatavis3d + url = ../qtdatavis3d.git + branch = 6.1.3 + status = addon +[submodule "qtvirtualkeyboard"] + depends = qtbase qtdeclarative qtsvg + recommends = qtmultimedia qtquickcontrols + path = qtvirtualkeyboard + url = ../qtvirtualkeyboard.git + branch = 6.1.3 + status = addon +[submodule "qtgamepad"] + depends = qtbase + recommends = qtdeclarative + path = qtgamepad + url = ../qtgamepad.git + branch = dev + status = ignore +[submodule "qtscxml"] + depends = qtbase qtdeclarative + path = qtscxml + url = ../qtscxml.git + branch = 6.1.3 + status = addon +[submodule "qtspeech"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtspeech + url = ../qtspeech.git + branch = dev + status = ignore +[submodule "qtnetworkauth"] + depends = qtbase + path = qtnetworkauth + url = ../qtnetworkauth.git + branch = 6.1.3 + status = addon +[submodule "qtremoteobjects"] + depends = qtbase + recommends = qtdeclarative + path = qtremoteobjects + url = ../qtremoteobjects.git + branch = dev + status = ignore +[submodule "qtwebglplugin"] + depends = qtbase qtwebsockets + recommends = qtdeclarative + path = qtwebglplugin + url = ../qtwebglplugin.git + branch = dev + status = ignore +[submodule "qtlottie"] + depends = qtbase qtdeclarative + path = qtlottie + url = ../qtlottie.git + branch = 6.1.3 + status = addon +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + branch = 6.1.3 + status = addon +[submodule "qtquick3d"] + depends = qtbase qtdeclarative qtshadertools + path = qtquick3d + url = ../qtquick3d.git + branch = 6.1.3 + status = addon +[submodule "qtshadertools"] + depends = qtbase + path = qtshadertools + url = ../qtshadertools.git + branch = 6.1.3 + status = addon +[submodule "qt5compat"] + depends = qtbase qtdeclarative + path = qt5compat + url = ../qt5compat.git + branch = 6.1.3 + status = deprecated +[submodule "qtcoap"] + depends = qtbase qttools + path = qtcoap + url = ../qtcoap.git + branch = 6.1.3 + status = addon +[submodule "qtmqtt"] + depends = qtbase qtdeclarative qttools + path = qtmqtt + url = ../qtmqtt.git + branch = 6.1.3 + status = addon +[submodule "qtopcua"] + depends = qtbase qtdeclarative qtquickcontrols2 qttools + path = qtopcua + url = ../qtopcua.git + branch = 6.1.3 + status = addon diff --git a/qt/6.x.x/qtmodules6.2.0.conf b/qt/6.x.x/qtmodules6.2.0.conf new file mode 100644 index 0000000..c860c9b --- /dev/null +++ b/qt/6.x.x/qtmodules6.2.0.conf @@ -0,0 +1,292 @@ +[submodule "qtbase"] + path = qtbase + url = ../qtbase.git + branch = 6.2.0 + status = essential +[submodule "qtsvg"] + depends = qtbase + path = qtsvg + url = ../qtsvg.git + branch = 6.2.0 + status = addon +[submodule "qtdeclarative"] + depends = qtbase + recommends = qtimageformats qtshadertools qtsvg + path = qtdeclarative + url = ../qtdeclarative.git + branch = 6.2.0 + status = essential +[submodule "qtactiveqt"] + depends = qtbase + path = qtactiveqt + url = ../qtactiveqt.git + branch = 6.2.0 + status = addon +[submodule "qtmultimedia"] + depends = qtbase qtshadertools + recommends = qtdeclarative + path = qtmultimedia + url = ../qtmultimedia.git + branch = 6.2.0 + status = addon +[submodule "qttools"] + depends = qtbase + recommends = qtdeclarative qtactiveqt + path = qttools + url = ../qttools.git + branch = 6.2.0 + status = essential +[submodule "qtxmlpatterns"] + depends = qtbase + recommends = qtdeclarative + path = qtxmlpatterns + url = ../qtxmlpatterns.git + branch = 6.2.0 + status = ignore +[submodule "qttranslations"] + depends = qttools + path = qttranslations + url = ../qttranslations.git + branch = 6.2.0 + status = essential + priority = 30 +[submodule "qtdoc"] + depends = qtdeclarative qttools + recommends = qtmultimedia + path = qtdoc + url = ../qtdoc.git + branch = 6.2.0 + status = essential + priority = 40 +[submodule "qtrepotools"] + path = qtrepotools + url = ../qtrepotools.git + branch = master + status = essential + project = - +[submodule "qtqa"] + depends = qtbase + path = qtqa + url = ../qtqa.git + branch = dev + status = essential + priority = 50 +[submodule "qtlocation"] + depends = qtbase + recommends = qtdeclarative qtserialport + path = qtlocation + url = ../qtlocation.git + branch = 6.2.0 + status = addon +[submodule "qtsensors"] + depends = qtbase + recommends = qtdeclarative + path = qtsensors + url = ../qtsensors.git + branch = 6.2.0 + status = addon +[submodule "qtsystems"] + depends = qtbase + recommends = qtdeclarative + path = qtsystems + url = ../qtsystems.git + branch = dev + status = ignore +[submodule "qtfeedback"] + depends = qtdeclarative + recommends = qtmultimedia + path = qtfeedback + url = ../qtfeedback.git + branch = master + status = ignore +[submodule "qtpim"] + depends = qtdeclarative + path = qtpim + url = ../qtpim.git + branch = dev + status = ignore +[submodule "qtconnectivity"] + depends = qtbase + recommends = qtdeclarative + path = qtconnectivity + url = ../qtconnectivity.git + branch = 6.2.0 + status = addon +[submodule "qtwayland"] + depends = qtbase + recommends = qtdeclarative + path = qtwayland + url = ../qtwayland.git + branch = 6.2.0 + status = addon +[submodule "qt3d"] + depends = qtbase + recommends = qtdeclarative qtshadertools + path = qt3d + url = ../qt3d.git + branch = 6.2.0 + status = addon +[submodule "qtimageformats"] + depends = qtbase + path = qtimageformats + url = ../qtimageformats.git + branch = 6.2.0 + status = addon +[submodule "qtserialbus"] + depends = qtbase + recommends = qtserialport + path = qtserialbus + url = ../qtserialbus.git + branch = 6.2.0 + status = addon +[submodule "qtserialport"] + depends = qtbase + path = qtserialport + url = ../qtserialport.git + branch = 6.2.0 + status = addon +[submodule "qtwebsockets"] + depends = qtbase + recommends = qtdeclarative + path = qtwebsockets + url = ../qtwebsockets.git + branch = 6.2.0 + status = addon +[submodule "qtwebchannel"] + depends = qtbase + recommends = qtdeclarative qtwebsockets + path = qtwebchannel + url = ../qtwebchannel.git + branch = 6.2.0 + status = addon +[submodule "qtwebengine"] + depends = qtdeclarative + recommends = qtlocation qtwebchannel qttools + path = qtwebengine + url = ../qtwebengine.git + branch = 6.2.0 + status = addon + priority = 10 +[submodule "qtcanvas3d"] + depends = qtdeclarative + path = qtcanvas3d + url = ../qtcanvas3d.git + branch = 6.2.0 + status = ignore +[submodule "qtwebview"] + depends = qtdeclarative + recommends = qtwebengine + path = qtwebview + url = ../qtwebview.git + branch = 6.2.0 + status = addon +[submodule "qtcharts"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtcharts + url = ../qtcharts.git + branch = 6.2.0 + status = addon +[submodule "qtdatavis3d"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtdatavis3d + url = ../qtdatavis3d.git + branch = 6.2.0 + status = addon +[submodule "qtvirtualkeyboard"] + depends = qtbase qtdeclarative qtsvg + recommends = qtmultimedia + path = qtvirtualkeyboard + url = ../qtvirtualkeyboard.git + branch = 6.2.0 + status = addon +[submodule "qtgamepad"] + depends = qtbase + recommends = qtdeclarative + path = qtgamepad + url = ../qtgamepad.git + branch = 6.2.0 + status = ignore +[submodule "qtscxml"] + depends = qtbase qtdeclarative + path = qtscxml + url = ../qtscxml.git + branch = 6.2.0 + status = addon +[submodule "qtspeech"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtspeech + url = ../qtspeech.git + branch = 6.2.0 + status = ignore +[submodule "qtnetworkauth"] + depends = qtbase + path = qtnetworkauth + url = ../qtnetworkauth.git + branch = 6.2.0 + status = addon +[submodule "qtremoteobjects"] + depends = qtbase + recommends = qtdeclarative + path = qtremoteobjects + url = ../qtremoteobjects.git + branch = 6.2.0 + status = addon +[submodule "qtwebglplugin"] + depends = qtbase qtwebsockets + recommends = qtdeclarative + path = qtwebglplugin + url = ../qtwebglplugin.git + branch = 6.2.0 + status = ignore +[submodule "qtlottie"] + depends = qtbase qtdeclarative + path = qtlottie + url = ../qtlottie.git + branch = 6.2.0 + status = addon +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + branch = 6.2.0 + status = addon +[submodule "qtquick3d"] + depends = qtbase qtdeclarative qtshadertools + recommends = qtquicktimeline + path = qtquick3d + url = ../qtquick3d.git + branch = 6.2.0 + status = addon +[submodule "qtshadertools"] + depends = qtbase + path = qtshadertools + url = ../qtshadertools.git + branch = 6.2.0 + status = addon +[submodule "qt5compat"] + depends = qtbase qtdeclarative + path = qt5compat + url = ../qt5compat.git + branch = 6.2.0 + status = deprecated +[submodule "qtcoap"] + depends = qtbase + path = qtcoap + url = ../qtcoap.git + branch = 6.2.0 + status = addon +[submodule "qtmqtt"] + depends = qtbase qtdeclarative + path = qtmqtt + url = ../qtmqtt.git + branch = 6.2.0 + status = addon +[submodule "qtopcua"] + depends = qtbase qtdeclarative + path = qtopcua + url = ../qtopcua.git + branch = 6.2.0 + status = addon diff --git a/qt/6.x.x/qtmodules6.2.1.conf b/qt/6.x.x/qtmodules6.2.1.conf new file mode 100644 index 0000000..6fcf98c --- /dev/null +++ b/qt/6.x.x/qtmodules6.2.1.conf @@ -0,0 +1,292 @@ +[submodule "qtbase"] + path = qtbase + url = ../qtbase.git + branch = 6.2.1 + status = essential +[submodule "qtsvg"] + depends = qtbase + path = qtsvg + url = ../qtsvg.git + branch = 6.2.1 + status = addon +[submodule "qtdeclarative"] + depends = qtbase + recommends = qtimageformats qtshadertools qtsvg + path = qtdeclarative + url = ../qtdeclarative.git + branch = 6.2.1 + status = essential +[submodule "qtactiveqt"] + depends = qtbase + path = qtactiveqt + url = ../qtactiveqt.git + branch = 6.2.1 + status = addon +[submodule "qtmultimedia"] + depends = qtbase qtshadertools + recommends = qtdeclarative + path = qtmultimedia + url = ../qtmultimedia.git + branch = 6.2.1 + status = addon +[submodule "qttools"] + depends = qtbase + recommends = qtdeclarative qtactiveqt + path = qttools + url = ../qttools.git + branch = 6.2.1 + status = essential +[submodule "qtxmlpatterns"] + depends = qtbase + recommends = qtdeclarative + path = qtxmlpatterns + url = ../qtxmlpatterns.git + branch = 6.2.1 + status = ignore +[submodule "qttranslations"] + depends = qttools + path = qttranslations + url = ../qttranslations.git + branch = 6.2.1 + status = essential + priority = 30 +[submodule "qtdoc"] + depends = qtdeclarative qttools + recommends = qtmultimedia + path = qtdoc + url = ../qtdoc.git + branch = 6.2.1 + status = essential + priority = 40 +[submodule "qtrepotools"] + path = qtrepotools + url = ../qtrepotools.git + branch = master + status = essential + project = - +[submodule "qtqa"] + depends = qtbase + path = qtqa + url = ../qtqa.git + branch = dev + status = essential + priority = 50 +[submodule "qtlocation"] + depends = qtbase + recommends = qtdeclarative qtserialport + path = qtlocation + url = ../qtlocation.git + branch = 6.2.1 + status = addon +[submodule "qtsensors"] + depends = qtbase + recommends = qtdeclarative + path = qtsensors + url = ../qtsensors.git + branch = 6.2.1 + status = addon +[submodule "qtsystems"] + depends = qtbase + recommends = qtdeclarative + path = qtsystems + url = ../qtsystems.git + branch = dev + status = ignore +[submodule "qtfeedback"] + depends = qtdeclarative + recommends = qtmultimedia + path = qtfeedback + url = ../qtfeedback.git + branch = master + status = ignore +[submodule "qtpim"] + depends = qtdeclarative + path = qtpim + url = ../qtpim.git + branch = dev + status = ignore +[submodule "qtconnectivity"] + depends = qtbase + recommends = qtdeclarative + path = qtconnectivity + url = ../qtconnectivity.git + branch = 6.2.1 + status = addon +[submodule "qtwayland"] + depends = qtbase + recommends = qtdeclarative + path = qtwayland + url = ../qtwayland.git + branch = 6.2.1 + status = addon +[submodule "qt3d"] + depends = qtbase + recommends = qtdeclarative qtshadertools + path = qt3d + url = ../qt3d.git + branch = 6.2.1 + status = addon +[submodule "qtimageformats"] + depends = qtbase + path = qtimageformats + url = ../qtimageformats.git + branch = 6.2.1 + status = addon +[submodule "qtserialbus"] + depends = qtbase + recommends = qtserialport + path = qtserialbus + url = ../qtserialbus.git + branch = 6.2.1 + status = addon +[submodule "qtserialport"] + depends = qtbase + path = qtserialport + url = ../qtserialport.git + branch = 6.2.1 + status = addon +[submodule "qtwebsockets"] + depends = qtbase + recommends = qtdeclarative + path = qtwebsockets + url = ../qtwebsockets.git + branch = 6.2.1 + status = addon +[submodule "qtwebchannel"] + depends = qtbase + recommends = qtdeclarative qtwebsockets + path = qtwebchannel + url = ../qtwebchannel.git + branch = 6.2.1 + status = addon +[submodule "qtwebengine"] + depends = qtdeclarative + recommends = qtlocation qtwebchannel qttools + path = qtwebengine + url = ../qtwebengine.git + branch = 6.2.1 + status = addon + priority = 10 +[submodule "qtcanvas3d"] + depends = qtdeclarative + path = qtcanvas3d + url = ../qtcanvas3d.git + branch = 6.2.1 + status = ignore +[submodule "qtwebview"] + depends = qtdeclarative + recommends = qtwebengine + path = qtwebview + url = ../qtwebview.git + branch = 6.2.1 + status = addon +[submodule "qtcharts"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtcharts + url = ../qtcharts.git + branch = 6.2.1 + status = addon +[submodule "qtdatavis3d"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtdatavis3d + url = ../qtdatavis3d.git + branch = 6.2.1 + status = addon +[submodule "qtvirtualkeyboard"] + depends = qtbase qtdeclarative qtsvg + recommends = qtmultimedia + path = qtvirtualkeyboard + url = ../qtvirtualkeyboard.git + branch = 6.2.1 + status = addon +[submodule "qtgamepad"] + depends = qtbase + recommends = qtdeclarative + path = qtgamepad + url = ../qtgamepad.git + branch = 6.2.1 + status = ignore +[submodule "qtscxml"] + depends = qtbase qtdeclarative + path = qtscxml + url = ../qtscxml.git + branch = 6.2.1 + status = addon +[submodule "qtspeech"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtspeech + url = ../qtspeech.git + branch = 6.2.1 + status = ignore +[submodule "qtnetworkauth"] + depends = qtbase + path = qtnetworkauth + url = ../qtnetworkauth.git + branch = 6.2.1 + status = addon +[submodule "qtremoteobjects"] + depends = qtbase + recommends = qtdeclarative + path = qtremoteobjects + url = ../qtremoteobjects.git + branch = 6.2.1 + status = addon +[submodule "qtwebglplugin"] + depends = qtbase qtwebsockets + recommends = qtdeclarative + path = qtwebglplugin + url = ../qtwebglplugin.git + branch = 6.2.1 + status = ignore +[submodule "qtlottie"] + depends = qtbase qtdeclarative + path = qtlottie + url = ../qtlottie.git + branch = 6.2.1 + status = addon +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + branch = 6.2.1 + status = addon +[submodule "qtquick3d"] + depends = qtbase qtdeclarative qtshadertools + recommends = qtquicktimeline + path = qtquick3d + url = ../qtquick3d.git + branch = 6.2.1 + status = addon +[submodule "qtshadertools"] + depends = qtbase + path = qtshadertools + url = ../qtshadertools.git + branch = 6.2.1 + status = addon +[submodule "qt5compat"] + depends = qtbase qtdeclarative + path = qt5compat + url = ../qt5compat.git + branch = 6.2.1 + status = deprecated +[submodule "qtcoap"] + depends = qtbase + path = qtcoap + url = ../qtcoap.git + branch = 6.2.1 + status = addon +[submodule "qtmqtt"] + depends = qtbase qtdeclarative + path = qtmqtt + url = ../qtmqtt.git + branch = 6.2.1 + status = addon +[submodule "qtopcua"] + depends = qtbase qtdeclarative + path = qtopcua + url = ../qtopcua.git + branch = 6.2.1 + status = addon diff --git a/qt/6.x.x/qtmodules6.2.2.conf b/qt/6.x.x/qtmodules6.2.2.conf new file mode 100644 index 0000000..599bc71 --- /dev/null +++ b/qt/6.x.x/qtmodules6.2.2.conf @@ -0,0 +1,299 @@ +[submodule "qtbase"] + path = qtbase + url = ../qtbase.git + branch = 6.2.2 + status = essential +[submodule "qtsvg"] + depends = qtbase + path = qtsvg + url = ../qtsvg.git + branch = 6.2.2 + status = addon +[submodule "qtdeclarative"] + depends = qtbase + recommends = qtimageformats qtshadertools qtsvg + path = qtdeclarative + url = ../qtdeclarative.git + branch = 6.2.2 + status = essential +[submodule "qtactiveqt"] + depends = qtbase + path = qtactiveqt + url = ../qtactiveqt.git + branch = 6.2.2 + status = addon +[submodule "qtmultimedia"] + depends = qtbase qtshadertools + recommends = qtdeclarative + path = qtmultimedia + url = ../qtmultimedia.git + branch = 6.2.2 + status = addon +[submodule "qttools"] + depends = qtbase + recommends = qtdeclarative qtactiveqt + path = qttools + url = ../qttools.git + branch = 6.2.2 + status = essential +[submodule "qtxmlpatterns"] + depends = qtbase + recommends = qtdeclarative + path = qtxmlpatterns + url = ../qtxmlpatterns.git + branch = 6.2.2 + status = ignore +[submodule "qttranslations"] + depends = qttools + path = qttranslations + url = ../qttranslations.git + branch = 6.2.2 + status = essential + priority = 30 +[submodule "qtdoc"] + depends = qtdeclarative qttools + recommends = qtmultimedia + path = qtdoc + url = ../qtdoc.git + branch = 6.2.2 + status = essential + priority = 40 +[submodule "qtrepotools"] + path = qtrepotools + url = ../qtrepotools.git + branch = master + status = essential + project = - +[submodule "qtqa"] + depends = qtbase + path = qtqa + url = ../qtqa.git + branch = dev + status = essential + priority = 50 +[submodule "qtlocation"] + depends = qtbase qtpositioning + recommends = qtdeclarative + path = qtlocation + url = ../qtlocation.git + branch = 6.2.2 + status = ignore +[submodule "qtpositioning"] + depends = qtbase + recommends = qtdeclarative qtserialport + path = qtpositioning + url = ../qtpositioning.git + branch = 6.2.2 + status = addon +[submodule "qtsensors"] + depends = qtbase + recommends = qtdeclarative + path = qtsensors + url = ../qtsensors.git + branch = 6.2.2 + status = addon +[submodule "qtsystems"] + depends = qtbase + recommends = qtdeclarative + path = qtsystems + url = ../qtsystems.git + branch = dev + status = ignore +[submodule "qtfeedback"] + depends = qtdeclarative + recommends = qtmultimedia + path = qtfeedback + url = ../qtfeedback.git + branch = master + status = ignore +[submodule "qtpim"] + depends = qtdeclarative + path = qtpim + url = ../qtpim.git + branch = dev + status = ignore +[submodule "qtconnectivity"] + depends = qtbase + recommends = qtdeclarative + path = qtconnectivity + url = ../qtconnectivity.git + branch = 6.2.2 + status = addon +[submodule "qtwayland"] + depends = qtbase + recommends = qtdeclarative + path = qtwayland + url = ../qtwayland.git + branch = 6.2.2 + status = addon +[submodule "qt3d"] + depends = qtbase + recommends = qtdeclarative qtshadertools + path = qt3d + url = ../qt3d.git + branch = 6.2.2 + status = addon +[submodule "qtimageformats"] + depends = qtbase + path = qtimageformats + url = ../qtimageformats.git + branch = 6.2.2 + status = addon +[submodule "qtserialbus"] + depends = qtbase + recommends = qtserialport + path = qtserialbus + url = ../qtserialbus.git + branch = 6.2.2 + status = addon +[submodule "qtserialport"] + depends = qtbase + path = qtserialport + url = ../qtserialport.git + branch = 6.2.2 + status = addon +[submodule "qtwebsockets"] + depends = qtbase + recommends = qtdeclarative + path = qtwebsockets + url = ../qtwebsockets.git + branch = 6.2.2 + status = addon +[submodule "qtwebchannel"] + depends = qtbase + recommends = qtdeclarative qtwebsockets + path = qtwebchannel + url = ../qtwebchannel.git + branch = 6.2.2 + status = addon +[submodule "qtwebengine"] + depends = qtdeclarative + recommends = qtwebchannel qttools qtpositioning + path = qtwebengine + url = ../qtwebengine.git + branch = 6.2.2 + status = addon + priority = 10 +[submodule "qtcanvas3d"] + depends = qtdeclarative + path = qtcanvas3d + url = ../qtcanvas3d.git + branch = 6.2.2 + status = ignore +[submodule "qtwebview"] + depends = qtdeclarative + recommends = qtwebengine + path = qtwebview + url = ../qtwebview.git + branch = 6.2.2 + status = addon +[submodule "qtcharts"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtcharts + url = ../qtcharts.git + branch = 6.2.2 + status = addon +[submodule "qtdatavis3d"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtdatavis3d + url = ../qtdatavis3d.git + branch = 6.2.2 + status = addon +[submodule "qtvirtualkeyboard"] + depends = qtbase qtdeclarative qtsvg + recommends = qtmultimedia + path = qtvirtualkeyboard + url = ../qtvirtualkeyboard.git + branch = 6.2.2 + status = addon +[submodule "qtgamepad"] + depends = qtbase + recommends = qtdeclarative + path = qtgamepad + url = ../qtgamepad.git + branch = 6.2.2 + status = ignore +[submodule "qtscxml"] + depends = qtbase qtdeclarative + path = qtscxml + url = ../qtscxml.git + branch = 6.2.2 + status = addon +[submodule "qtspeech"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtspeech + url = ../qtspeech.git + branch = 6.2.2 + status = ignore +[submodule "qtnetworkauth"] + depends = qtbase + path = qtnetworkauth + url = ../qtnetworkauth.git + branch = 6.2.2 + status = addon +[submodule "qtremoteobjects"] + depends = qtbase + recommends = qtdeclarative + path = qtremoteobjects + url = ../qtremoteobjects.git + branch = 6.2.2 + status = addon +[submodule "qtwebglplugin"] + depends = qtbase qtwebsockets + recommends = qtdeclarative + path = qtwebglplugin + url = ../qtwebglplugin.git + branch = 6.2.2 + status = ignore +[submodule "qtlottie"] + depends = qtbase qtdeclarative + path = qtlottie + url = ../qtlottie.git + branch = 6.2.2 + status = addon +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + branch = 6.2.2 + status = addon +[submodule "qtquick3d"] + depends = qtbase qtdeclarative qtshadertools + recommends = qtquicktimeline + path = qtquick3d + url = ../qtquick3d.git + branch = 6.2.2 + status = addon +[submodule "qtshadertools"] + depends = qtbase + path = qtshadertools + url = ../qtshadertools.git + branch = 6.2.2 + status = addon +[submodule "qt5compat"] + depends = qtbase qtdeclarative + path = qt5compat + url = ../qt5compat.git + branch = 6.2.2 + status = deprecated +[submodule "qtcoap"] + depends = qtbase + path = qtcoap + url = ../qtcoap.git + branch = 6.2.2 + status = addon +[submodule "qtmqtt"] + depends = qtbase qtdeclarative + path = qtmqtt + url = ../qtmqtt.git + branch = 6.2.2 + status = addon +[submodule "qtopcua"] + depends = qtbase qtdeclarative + path = qtopcua + url = ../qtopcua.git + branch = 6.2.2 + status = addon diff --git a/qt/6.x.x/qtmodules6.2.3.conf b/qt/6.x.x/qtmodules6.2.3.conf new file mode 100644 index 0000000..ca85ad6 --- /dev/null +++ b/qt/6.x.x/qtmodules6.2.3.conf @@ -0,0 +1,299 @@ +[submodule "qtbase"] + path = qtbase + url = ../qtbase.git + branch = 6.2.3 + status = essential +[submodule "qtsvg"] + depends = qtbase + path = qtsvg + url = ../qtsvg.git + branch = 6.2.3 + status = addon +[submodule "qtdeclarative"] + depends = qtbase + recommends = qtimageformats qtshadertools qtsvg + path = qtdeclarative + url = ../qtdeclarative.git + branch = 6.2.3 + status = essential +[submodule "qtactiveqt"] + depends = qtbase + path = qtactiveqt + url = ../qtactiveqt.git + branch = 6.2.3 + status = addon +[submodule "qtmultimedia"] + depends = qtbase qtshadertools + recommends = qtdeclarative + path = qtmultimedia + url = ../qtmultimedia.git + branch = 6.2.3 + status = addon +[submodule "qttools"] + depends = qtbase + recommends = qtdeclarative qtactiveqt + path = qttools + url = ../qttools.git + branch = 6.2.3 + status = essential +[submodule "qtxmlpatterns"] + depends = qtbase + recommends = qtdeclarative + path = qtxmlpatterns + url = ../qtxmlpatterns.git + branch = 6.2.3 + status = ignore +[submodule "qttranslations"] + depends = qttools + path = qttranslations + url = ../qttranslations.git + branch = 6.2.3 + status = essential + priority = 30 +[submodule "qtdoc"] + depends = qtdeclarative qttools + recommends = qtmultimedia + path = qtdoc + url = ../qtdoc.git + branch = 6.2.3 + status = essential + priority = 40 +[submodule "qtrepotools"] + path = qtrepotools + url = ../qtrepotools.git + branch = master + status = essential + project = - +[submodule "qtqa"] + depends = qtbase + path = qtqa + url = ../qtqa.git + branch = dev + status = essential + priority = 50 +[submodule "qtlocation"] + depends = qtbase qtpositioning + recommends = qtdeclarative + path = qtlocation + url = ../qtlocation.git + branch = 6.2.3 + status = ignore +[submodule "qtpositioning"] + depends = qtbase + recommends = qtdeclarative qtserialport + path = qtpositioning + url = ../qtpositioning.git + branch = 6.2.3 + status = addon +[submodule "qtsensors"] + depends = qtbase + recommends = qtdeclarative + path = qtsensors + url = ../qtsensors.git + branch = 6.2.3 + status = addon +[submodule "qtsystems"] + depends = qtbase + recommends = qtdeclarative + path = qtsystems + url = ../qtsystems.git + branch = dev + status = ignore +[submodule "qtfeedback"] + depends = qtdeclarative + recommends = qtmultimedia + path = qtfeedback + url = ../qtfeedback.git + branch = master + status = ignore +[submodule "qtpim"] + depends = qtdeclarative + path = qtpim + url = ../qtpim.git + branch = dev + status = ignore +[submodule "qtconnectivity"] + depends = qtbase + recommends = qtdeclarative + path = qtconnectivity + url = ../qtconnectivity.git + branch = 6.2.3 + status = addon +[submodule "qtwayland"] + depends = qtbase + recommends = qtdeclarative + path = qtwayland + url = ../qtwayland.git + branch = 6.2.3 + status = addon +[submodule "qt3d"] + depends = qtbase + recommends = qtdeclarative qtshadertools + path = qt3d + url = ../qt3d.git + branch = 6.2.3 + status = addon +[submodule "qtimageformats"] + depends = qtbase + path = qtimageformats + url = ../qtimageformats.git + branch = 6.2.3 + status = addon +[submodule "qtserialbus"] + depends = qtbase + recommends = qtserialport + path = qtserialbus + url = ../qtserialbus.git + branch = 6.2.3 + status = addon +[submodule "qtserialport"] + depends = qtbase + path = qtserialport + url = ../qtserialport.git + branch = 6.2.3 + status = addon +[submodule "qtwebsockets"] + depends = qtbase + recommends = qtdeclarative + path = qtwebsockets + url = ../qtwebsockets.git + branch = 6.2.3 + status = addon +[submodule "qtwebchannel"] + depends = qtbase + recommends = qtdeclarative qtwebsockets + path = qtwebchannel + url = ../qtwebchannel.git + branch = 6.2.3 + status = addon +[submodule "qtwebengine"] + depends = qtdeclarative + recommends = qtwebchannel qttools qtpositioning + path = qtwebengine + url = ../qtwebengine.git + branch = 6.2.3 + status = addon + priority = 10 +[submodule "qtcanvas3d"] + depends = qtdeclarative + path = qtcanvas3d + url = ../qtcanvas3d.git + branch = 6.2.3 + status = ignore +[submodule "qtwebview"] + depends = qtdeclarative + recommends = qtwebengine + path = qtwebview + url = ../qtwebview.git + branch = 6.2.3 + status = addon +[submodule "qtcharts"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtcharts + url = ../qtcharts.git + branch = 6.2.3 + status = addon +[submodule "qtdatavis3d"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtdatavis3d + url = ../qtdatavis3d.git + branch = 6.2.3 + status = addon +[submodule "qtvirtualkeyboard"] + depends = qtbase qtdeclarative qtsvg + recommends = qtmultimedia + path = qtvirtualkeyboard + url = ../qtvirtualkeyboard.git + branch = 6.2.3 + status = addon +[submodule "qtgamepad"] + depends = qtbase + recommends = qtdeclarative + path = qtgamepad + url = ../qtgamepad.git + branch = 6.2.3 + status = ignore +[submodule "qtscxml"] + depends = qtbase qtdeclarative + path = qtscxml + url = ../qtscxml.git + branch = 6.2.3 + status = addon +[submodule "qtspeech"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtspeech + url = ../qtspeech.git + branch = 6.2.3 + status = ignore +[submodule "qtnetworkauth"] + depends = qtbase + path = qtnetworkauth + url = ../qtnetworkauth.git + branch = 6.2.3 + status = addon +[submodule "qtremoteobjects"] + depends = qtbase + recommends = qtdeclarative + path = qtremoteobjects + url = ../qtremoteobjects.git + branch = 6.2.3 + status = addon +[submodule "qtwebglplugin"] + depends = qtbase qtwebsockets + recommends = qtdeclarative + path = qtwebglplugin + url = ../qtwebglplugin.git + branch = 6.2.3 + status = ignore +[submodule "qtlottie"] + depends = qtbase qtdeclarative + path = qtlottie + url = ../qtlottie.git + branch = 6.2.3 + status = addon +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + branch = 6.2.3 + status = addon +[submodule "qtquick3d"] + depends = qtbase qtdeclarative qtshadertools + recommends = qtquicktimeline + path = qtquick3d + url = ../qtquick3d.git + branch = 6.2.3 + status = addon +[submodule "qtshadertools"] + depends = qtbase + path = qtshadertools + url = ../qtshadertools.git + branch = 6.2.3 + status = addon +[submodule "qt5compat"] + depends = qtbase qtdeclarative + path = qt5compat + url = ../qt5compat.git + branch = 6.2.3 + status = deprecated +[submodule "qtcoap"] + depends = qtbase + path = qtcoap + url = ../qtcoap.git + branch = 6.2.3 + status = addon +[submodule "qtmqtt"] + depends = qtbase qtdeclarative + path = qtmqtt + url = ../qtmqtt.git + branch = 6.2.3 + status = addon +[submodule "qtopcua"] + depends = qtbase qtdeclarative + path = qtopcua + url = ../qtopcua.git + branch = 6.2.3 + status = addon \ No newline at end of file diff --git a/qt/6.x.x/test_package/CMakeLists.txt b/qt/6.x.x/test_package/CMakeLists.txt new file mode 100644 index 0000000..3a020d1 --- /dev/null +++ b/qt/6.x.x/test_package/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.3.0) + +project(test_package) + +include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) +conan_set_vs_runtime() +conan_set_libcxx() +conan_output_dirs_setup() + +find_package(Qt6 COMPONENTS Core Network Sql Concurrent Xml REQUIRED CONFIG) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) + +add_executable(${PROJECT_NAME} test_package.cpp greeter.h example.qrc) + +set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 17) + +target_link_libraries(${PROJECT_NAME} Qt6::Core Qt6::Network Qt6::Sql Qt6::Concurrent Qt6::Xml) + +# check if extra qt cmake functions are usable +qt_add_executable(${PROJECT_NAME}2 test_package.cpp greeter.h example.qrc) + +set_property(TARGET ${PROJECT_NAME}2 PROPERTY CXX_STANDARD 17) + +target_link_libraries(${PROJECT_NAME}2 PRIVATE Qt6::Core Qt6::Network Qt6::Sql Qt6::Concurrent Qt6::Xml) diff --git a/qt/6.x.x/test_package/conanfile.py b/qt/6.x.x/test_package/conanfile.py new file mode 100644 index 0000000..8a46bf3 --- /dev/null +++ b/qt/6.x.x/test_package/conanfile.py @@ -0,0 +1,131 @@ +import os +import shutil + +from conans import ConanFile, tools, Meson, RunEnvironment, CMake +from conans.errors import ConanException + + +class TestPackageConan(ConanFile): + settings = "os", "compiler", "build_type", "arch" + generators = "qt", "cmake", "cmake_find_package_multi", "cmake_find_package", "pkg_config", "qmake" + + def build_requirements(self): + self.build_requires("cmake/3.22.0") + if self._meson_supported(): + self.build_requires("meson/0.60.2") + + def _is_mingw(self): + return self.settings.os == "Windows" and self.settings.compiler == "gcc" + + def _meson_supported(self): + return False and self.options["qt"].shared and\ + not tools.cross_building(self) and\ + not tools.os_info.is_macos and\ + not self._is_mingw() + + def _qmake_supported(self): + return self.settings.compiler != "Visual Studio" or self.options["qt"].shared + + def _cmake_multi_supported(self): + return True + + def _build_with_qmake(self): + if not self._qmake_supported(): + return + tools.mkdir("qmake_folder") + with tools.chdir("qmake_folder"): + self.output.info("Building with qmake") + + with tools.vcvars(self.settings) if self.settings.compiler == "Visual Studio" else tools.no_op(): + args = [self.source_folder, "DESTDIR=bin"] + + def _getenvpath(var): + val = os.getenv(var) + if val and tools.os_info.is_windows: + val = val.replace("\\", "/") + os.environ[var] = val + return val + + value = _getenvpath('CC') + if value: + args.append('QMAKE_CC="%s"' % value) + + value = _getenvpath('CXX') + if value: + args.append('QMAKE_CXX="%s"' % value) + + value = _getenvpath('LD') + if value: + args.append('QMAKE_LINK_C="%s"' % value) + args.append('QMAKE_LINK_C_SHLIB="%s"' % value) + args.append('QMAKE_LINK="%s"' % value) + args.append('QMAKE_LINK_SHLIB="%s"' % value) + + self.run("qmake %s" % " ".join(args), run_environment=True) + if tools.os_info.is_windows: + if self.settings.compiler == "Visual Studio": + self.run("nmake", run_environment=True) + else: + self.run("mingw32-make", run_environment=True) + else: + self.run("make", run_environment=True) + + def _build_with_meson(self): + if self._meson_supported(): + self.output.info("Building with Meson") + tools.mkdir("meson_folder") + with tools.environment_append(RunEnvironment(self).vars): + meson = Meson(self) + try: + meson.configure(build_folder="meson_folder", defs={"cpp_std": "c++11"}) + except ConanException: + self.output.info(open("meson_folder/meson-logs/meson-log.txt", 'r').read()) + raise + meson.build() + + def _build_with_cmake_find_package_multi(self): + if not self._cmake_multi_supported(): + return + self.output.info("Building with cmake_find_package_multi") + env_build = RunEnvironment(self) + with tools.environment_append(env_build.vars): + cmake = CMake(self, set_cmake_flags=True) + if self.settings.os == "Macos": + cmake.definitions['CMAKE_OSX_DEPLOYMENT_TARGET'] = '10.14' + + cmake.configure() + cmake.build() + + def build(self): + self._build_with_qmake() + self._build_with_meson() + self._build_with_cmake_find_package_multi() + + def _test_with_qmake(self): + if not self._qmake_supported(): + return + self.output.info("Testing qmake") + bin_path = os.path.join("qmake_folder", "bin") + if tools.os_info.is_macos: + bin_path = os.path.join(bin_path, "test_package.app", "Contents", "MacOS") + shutil.copy("qt.conf", bin_path) + self.run(os.path.join(bin_path, "test_package"), run_environment=True) + + def _test_with_meson(self): + if self._meson_supported(): + self.output.info("Testing Meson") + shutil.copy("qt.conf", "meson_folder") + self.run(os.path.join("meson_folder", "test_package"), run_environment=True) + + def _test_with_cmake_find_package_multi(self): + if not self._cmake_multi_supported(): + return + self.output.info("Testing CMake_find_package_multi") + shutil.copy("qt.conf", "bin") + self.run(os.path.join("bin", "test_package"), run_environment=True) + + def test(self): + if not tools.cross_building(self, skip_x64_x86=True): + self._test_with_qmake() + self._test_with_meson() + self._test_with_cmake_find_package_multi() diff --git a/qt/6.x.x/test_package/example.qrc b/qt/6.x.x/test_package/example.qrc new file mode 100644 index 0000000..7060adf --- /dev/null +++ b/qt/6.x.x/test_package/example.qrc @@ -0,0 +1,5 @@ + + + resource.txt + + diff --git a/qt/6.x.x/test_package/greeter.h b/qt/6.x.x/test_package/greeter.h new file mode 100644 index 0000000..85052e0 --- /dev/null +++ b/qt/6.x.x/test_package/greeter.h @@ -0,0 +1,26 @@ +#include +#include +#include + +class Greeter : public QObject +{ + Q_OBJECT +public: + Greeter(const QString& name, QObject *parent = 0) + : QObject(parent) + , mName(name) {} + +public slots: + void run() + { + qDebug() << QString("Hello %1!").arg(mName); + + emit finished(); + } + +signals: + void finished(); + +private: + const QString& mName; +}; diff --git a/qt/6.x.x/test_package/meson.build b/qt/6.x.x/test_package/meson.build new file mode 100644 index 0000000..684dfec --- /dev/null +++ b/qt/6.x.x/test_package/meson.build @@ -0,0 +1,6 @@ +project('test_package', 'cpp') +qt6 = import('qt6') +qt6_dep = dependency('qt6', modules: ['Core', 'Network', 'Sql', 'Concurrent', 'Xml']) +moc_files = qt6.preprocess(moc_headers : 'greeter.h', qresources : 'example.qrc') +executable('test_package', 'test_package.cpp', moc_files, + dependencies : qt6_dep) diff --git a/qt/6.x.x/test_package/resource.txt b/qt/6.x.x/test_package/resource.txt new file mode 100644 index 0000000..ab281a2 --- /dev/null +++ b/qt/6.x.x/test_package/resource.txt @@ -0,0 +1 @@ +Hello World From Resource diff --git a/qt/6.x.x/test_package/test_package.cpp b/qt/6.x.x/test_package/test_package.cpp new file mode 100644 index 0000000..5374ecf --- /dev/null +++ b/qt/6.x.x/test_package/test_package.cpp @@ -0,0 +1,48 @@ +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "greeter.h" + +int main(int argc, char *argv[]){ + QCoreApplication app(argc, argv); + QCoreApplication::setApplicationName("Application Example"); + QCoreApplication::setApplicationVersion("1.0.0"); + + QString name = argc > 0 ? argv[1] : ""; + if (name.isEmpty()) { + name = "World"; + } + + Greeter* greeter = new Greeter(name, &app); + QObject::connect(greeter, SIGNAL(finished()), &app, SLOT(quit())); + QTimer::singleShot(0, greeter, SLOT(run())); + + QFile f(":/resource.txt"); + if(!f.open(QIODevice::ReadOnly)) + qFatal("Could not open resource file"); + qDebug() << "Resource content:" << f.readAll(); + f.close(); + + QNetworkAccessManager networkTester; + + QSqlDatabase sqlTester; + + QVector v; + v << 1 << 2 << 3 << 4; + QtConcurrent::blockingFilter(v, [](int i) + { + return i % 2; + }); + + QDomText xmlTester; + + return app.exec(); +} diff --git a/qt/6.x.x/test_package/test_package.pro b/qt/6.x.x/test_package/test_package.pro new file mode 100644 index 0000000..92b10f8 --- /dev/null +++ b/qt/6.x.x/test_package/test_package.pro @@ -0,0 +1,15 @@ + include($$OUT_PWD/../conanbuildinfo.pri) + + LIBS += $$CONAN_LIBDIRS + + SOURCES += test_package.cpp + +HEADERS += greeter.h + +RESOURCES = example.qrc + +QT += network sql concurrent xml + +QT -= gui + +CONFIG += console diff --git a/qt/config.yml b/qt/config.yml new file mode 100644 index 0000000..e910739 --- /dev/null +++ b/qt/config.yml @@ -0,0 +1,27 @@ +versions: + "5.15.2": + folder: 5.x.x + # "6.0.1": + # folder: 6.x.x + # "6.0.2": + # folder: 6.x.x + # "6.0.3": + # folder: 6.x.x + "6.0.4": + folder: 6.x.x + #"6.1.0": + # folder: 6.x.x + #"6.1.1": + # folder: 6.x.x + #"6.1.2": + # folder: 6.x.x + "6.1.3": + folder: 6.x.x + "6.2.0": + folder: 6.x.x + "6.2.1": + folder: 6.x.x + "6.2.2": + folder: 6.x.x + "6.2.3": + folder: 6.x.x