跳到内容

构建选项

WebKit 构建选项的深度指南。

为 Apple 平台构建

如果尚未安装 Xcode 及其命令行工具,请安装。

  1. 安装 Xcode 从 https://developer.apple.com/downloads 获取 Xcode。要为 OS X 构建 WebKit,需要 Xcode 5.1.1 或更高版本。要为 iOS 模拟器构建 WebKit,需要 Xcode 7 或更高版本。
  2. 安装 Xcode 命令行工具 在终端中,运行命令:xcode-select --install

运行以下命令以构建带有调试符号和断言的 macOS 调试版本

Tools/Scripts/build-webkit --debug

对于性能测试及其他目的,请改用 --release

嵌入式构建

要为 iOS、tvOS 或 watchOS 等嵌入式平台构建,请向 build-webkit 传递一个平台参数。

例如,要为嵌入式模拟器构建带有调试符号和断言的调试版本

Tools/Scripts/build-webkit --debug --<platform>-simulator

或嵌入式设备

Tools/Scripts/build-webkit --debug --<platform>-device

其中 platformiostvoswatchos

使用 Xcode

您可以通过打开 WebKit.xcworkspace 在 Xcode 中构建和调试 WebKit。选择“Everything up to WebKit + Tools”方案来构建整个项目。

如果您没有在 Xcode 偏好设置中使用自定义构建位置,则必须更新工作区设置以使用 WebKitBuild 目录。在菜单栏中,选择“文件”>“工作区设置”,然后单击“高级”按钮,选择“自定义”、“相对于工作区”,并为“产品”和“中间文件”输入 WebKitBuild

构建 GTK 移植版

用于生产构建

cmake -DPORT=GTK -DCMAKE_BUILD_TYPE=RelWithDebInfo -GNinja
ninja
sudo ninja install

用于开发构建

Tools/gtk/install-dependencies
Tools/Scripts/update-webkitgtk-libs
Tools/Scripts/build-webkit --gtk --debug

构建 WPE 移植版

用于生产构建

cmake -DPORT=WPE -DCMAKE_BUILD_TYPE=RelWithDebInfo -GNinja
ninja
sudo ninja install

用于开发构建

Tools/wpe/install-dependencies
Tools/Scripts/update-webkitwpe-libs
Tools/Scripts/build-webkit --wpe --debug

构建 Windows 移植版

要在 Windows 上构建 WebKit,请参阅 Windows 移植版

运行 WebKit

与 Safari 及其他 macOS 应用程序

运行以下命令以使用本地构建的 WebKit 启动 Safari

Tools/Scripts/run-safari --debug

run-safari 脚本设置 DYLD_FRAMEWORK_PATH 环境变量指向您的构建产物,然后启动 /Applications/Safari.appDYLD_FRAMEWORK_PATH 告诉系统加载器优先使用您的构建产物,而不是安装在 /System/Library/Frameworks 中的框架。

要使用本地构建的 WebKit 运行其他应用程序,请运行以下命令

Tools/Scripts/run-webkit-app <application-path>

iOS 模拟器

运行以下命令以使用本地构建的 WebKit 启动 iOS 模拟器

run-safari --debug --ios-simulator

在这两种情况下,如果您构建的是发布版本,请使用 --release 而不是 --debug

Linux 移植版

如果您有开发版本,可以使用 run-minibrowser 脚本,例如:

run-minibrowser --debug --wpe

传递 --gtk--jsc-only--wpe 之一以指示要使用的移植版。

修复 Xcode 升级后神秘的构建或运行时错误

如果您遇到神秘的构建失败,或者您已切换到新版本的 macOS 或 Xcode,请删除 WebKitBuild 目录。make clean 可能无法删除所有相关文件,并且在不删除 WebKitBuild 目录的情况下进行构建可能会导致神秘的构建或 dyld 错误。

使用 Address Sanitizer 构建以调查内存损坏错误

要构建 Address Sanitizer 或 ASan 版本以分析安全漏洞,请运行 Tools/Scripts/set-webkit-configuration --asan --release。这将启用 ASan 构建。如果想附加调试器,也可以指定 --debug 而不是 --release。一旦您不再需要构建或运行 ASan,可以指定 --no-asan 代替 --asan 来禁用 ASan。请注意,此配置通过在 WebKitBuild 目录中创建一个名为 Asan 的文件来保存,因此如果您尝试通过删除构建目录来执行干净的 ASan 构建,则需要重新运行此命令。

使用 compile_commands.json 构建

macOS

make r EXPORT_COMPILE_COMMANDS=YES
generate-compile-commands WebKitBuild/Release

我建议您在每次拉取最新代码时都运行此命令。如果在开发过程中添加或删除文件,请使用 make r EXPORT_COMPILE_COMMANDS=YES 重新编译,并重新运行 generate-compile-commands WebKitBuild/Release

Linux 和 Windows

cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1