构建选项¶
WebKit 构建选项的深度指南。
为 Apple 平台构建¶
如果尚未安装 Xcode 及其命令行工具,请安装。
- 安装 Xcode 从 https://developer.apple.com/downloads 获取 Xcode。要为 OS X 构建 WebKit,需要 Xcode 5.1.1 或更高版本。要为 iOS 模拟器构建 WebKit,需要 Xcode 7 或更高版本。
- 安装 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
其中 platform
是 ios
、tvos
或 watchos
。
使用 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.app
。DYLD_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