From 41e3931b04b694dec2b5e0952e7837d9db227ea1 Mon Sep 17 00:00:00 2001 From: Li Hao Date: Wed, 18 Aug 2021 16:16:57 +0000 Subject: [PATCH] Fix build failures of new APIs on old macOS SDK New APIs supported from macOS 11.0 cannot build successfully on macOS 10.15, even use @available to control whether a declaration is available on target platform, but does not work in conditionally compiling. Update building.md to require the macOS 11.0 SDK. Bug: dawn:1054 Change-Id: If22ada959c0c1ef41826f78bd337b912772000b1 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61021 Reviewed-by: Corentin Wallez Reviewed-by: Austin Eng Commit-Queue: Austin Eng --- docs/building.md | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/docs/building.md b/docs/building.md index 60b618cbee..230c222da8 100644 --- a/docs/building.md +++ b/docs/building.md @@ -1,16 +1,28 @@ # Building Dawn +## System requirements + +- Linux + - The `pkg-config` command: + ```sh + # Install pkg-config on Ubuntu + sudo apt-get install pkg-config + ``` + +- Mac + - [Xcode](https://developer.apple.com/xcode/) 12.2+. + - The macOS 11.0 SDK. Run `xcode-select` to check whether you have it. + ```sh + ls `xcode-select -p`/Platforms/MacOSX.platform/Developer/SDKs + ``` + +## Install `depot_tools` + Dawn uses the Chromium build system and dependency management so you need to [install depot_tools] and add it to the PATH. [install depot_tools]: http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up -On Linux you need to have the `pkg-config` command: -```sh -# Install pkg-config on Ubuntu -sudo apt-get install pkg-config -``` - -Then get the source as follows: +## Get the code ```sh # Clone the repo as "dawn" @@ -23,6 +35,8 @@ cp scripts/standalone.gclient .gclient gclient sync ``` +## Build Dawn + Then generate build files using `gn args out/Debug` or `gn args out/Release`. A text editor will appear asking build options, the most common option is `is_debug=true/false`; otherwise `gn args out/Release --list` shows all the possible options.