orca/milepost/ext/angle_install_notes.md

85 lines
2.7 KiB
Markdown

## Angle install on macOS
* Get ninja if needed: `brew install ninja`
* Get the `depot_tools`repo: `git clone https://chromium.googlesource.com/* chromium/tools/depot_tools.git`
* Set path: `export PATH=/path/to/depot_tools:$PATH`
* Maybe necessary to fiddle with certificates here, otherwise `fetch angle` fails in the subsequent steps.
```
cd /Applications/Python\ 3.6
sudo ./Install\ Certificates.command
```
* Fetch angle:
```
mkdir angle
cd angle
fetch angle
```
* Generate build config: `gn gen out/Debug`
* To see available arguments: `gn args out/Debug --list`
* To change arguments: `gn args out/Debug`
For example, to generate dwarf dsyms files, set:
```
enable_dsyms=true
use_debug_fission=true
symbol_level=2
```
We also need to set `is_component_build=false` in order to have self-contained librarries.
Then, build with `autoninja -C out/Debug`and wait until you pass out.
## Angle install on windows
* need Python3 (can install through win app store)
* need Windows SDK
* clone `depot_tools`: `git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git`
or download and unzip bundle at [https://storage.googleapis.com/chrome-infra/depot_tools.zip](https://storage.googleapis.com/chrome-infra/depot_tools.zip)
* set `depot_tools` in path env variable through control panel>System and security>system>advanced system settings
* run `gclient` in a cmd shell
* set `DEPOT_TOOLS_WIN_TOOLCHAIN=0`
* `mkdir angle`
* `cd angle`
* `fetch angle`
* wait a million years
* if it fails when running `python3 third_party/depot_tools/download_from_google_storage.py ...`
-> open `DEPS` and change `third_party/depot_tools` to `../depot_tools`
* run `gclient sync` to complete previous step
* `gn gen out/Debug`
* `gn args out/Debug` and edit arguments:
```
is_component_build = false
angle_build_tests = false
angle_enable_metal = false
angle_enable_d3d9 = false
angle_enable_gl = false
angle_enable_vulkan = false
```
* `ninja -C out/Debug`
* link with `libEGL.dll.lib` and `libGLESv2.dll.lib`
* put `libEGL.dll` and `libGLESv2.dll` in same directory as executable
## To get debugging kinda working with renderdoc:
Run `gn args out/Debug` and set
* `angle_enable_trace = true`
* `angle_enable_annotator_run_time_checks = true`
* `autoninja -C out/Debug`
* wait a while
In renderdoc, set env variables
`RENDERDOC_HOOK_EGL 0` (if you want to trace underlying native API)
`RENDERDOC_HOOK_EGL 1` (if you want to trace EGL calls. You also need to put `libEGL` in the renderdoc folder so it's found when capturing stuff. Unfortunately though, that seems to provoke crashes...)
`ANGLE_ENABLE_DEBUG_MARKERS 1` (to turn on debug markers)