皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

针对其他Qt版本构建Qt WebEngine

合版本构建的详细信息和潜在问题。

这也与任何针对Qt 5.12.x构建WebEngine 5.15.x的人有关,Qt 5.12.x是我们提供了一些支持的另一个混合版本组合。

首先,确保您具有所有构建依赖关系,Linux的依赖关系在Git的Building Qt 5中列出。对于macOS和Windows,这主要意味着要确保Python2(是2,Chromium仍未完全迁移到Python3)和Qt 5.15.3的新功能,Qt 5.15.3是node.js二进制文件,Chromium现在使用它来打包某些Web界面,可以从nodejs.org  或在macOS上使用Homebrew下载。也需要Bison和flex,但在Mac和Linux以及Windows的qt5 / gnuwin32中应该是标准的。

最简单的构建方式与Qt WebEngine开发人员进行构建的方式相同,这是从源头进行完整Qt构建的一部分。您可以从qt5.git,结账5.15.2检查出所有的Qt的,做一个混帐子模块更新–recursive,然后进入qtwebengine模块的目录,(一旦支或5.15.3)结账5.15那里,做一套git的子模块更新中qtwebengine目录以获取正确的src / 3rdparty版本。然后,您可以从qt5根目录正常配置和构建所有Qt(请参阅再次从Git构建Qt 5)。

如果您已经安装了Qt5,并且只想构建Qt WebEngine,则再次需要qtwebengine git源代码(直到发布了5.15.3源代码包),如上所述签出5.15分支,然后从已安装的Qt中运行qmake。针对qtwebengine的源目录。您可以在-之后在qmake命令行上添加任何配置选项,例如:

qmake ../qtwebengine--启用webengine专有编解码器-system-webengine-icu

配置完成后,您可以照常使用make,nmake或jom进行构建和安装。但是请注意,构建过程将启动嵌套的忍者构建系统,您可以在配置之前用环境变量NINJAFLAGS覆盖忍者标志,或者在配置后使用NINJAJOBS附加到忍者标志。例如,这在使用icecc时非常有用,或者您的计算机没有足够的内存来运行带有大量内存密集型铬源(每个线程2-3GB)的默认数量的忍者线程。

只要您使用qmake或使用pkg-config的任何构建系统来查找Qt WebEngine,这就是您要做的所有事情,但是需要注意的是,如果您需要将新构建的Qt WebEngine与cmake项目一起使用, qt5构建系统针对这种混合版本的情况生成了稍微错误的cmake文件。例如,生成的Qt5WebEngineCoreConfig.cmake将包含如下代码:

find_package(Qt5 $ {_ module_dep}
    5.15.3 $ {_ Qt5WebEngineCore_FIND_VERSION_EXACT}
    $ {_ Qt5WebEngineCore_DEPENDENCIES_FIND_QUIET}
    $ {_ Qt5WebEngineCore_FIND_DEPENDENCIES_REQUIRED}
    PATHS“ $ {CMAKE_CURRENT_LIST_DIR} / ..” NO_DEFAULT_PATH
)

这将使cmake查找5.15.3版本或更高版本的Qt依赖项,如果针对5.15.2进行构建,则当然不存在。您需要为三个WebEngine模块中的每个模块修改生成的cmake文件,以查找5.15.2或仅查找5.15。但是,如果您不介意误导SO编号,最简单的方法是在qtwebengine源代码中编辑.qmake.conf并将MODULE_VERSION更改为5.15.2或要构建的任何Qt版本。

注意Qt WebEngine 5.15.3是针对点发行版的异常大的更新。底层的Chromium版本已更新为版本87(如果它是Qt 5.16),则此更新有两个目的:a)为了使版本差异尽可能小,从现在开始,仅将Backport安全补丁更新至5.15。和b)为了支持在macOS Rosetta2上运行,不幸的是,后者没有足够的x64仿真来运行未经修改的Chromium。这也意味着我们比发行前更喜欢测试。

转自 https://www.qt.io/blog/building-qt-webengine-against-other-qt-versions