Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Mac Build Instructions | 1 # Mac Build Instructions |
| 2 | 2 |
| 3 [TOC] | 3 [TOC] |
| 4 | 4 |
| 5 ## Prerequisites | 5 ## Prerequisites |
| 6 | 6 |
| 7 * A Mac running 10.9+. | 7 * A Mac running 10.9+. |
| 8 * [Xcode](https://developer.apple.com/xcode), 5+. | 8 * [Xcode](https://developer.apple.com/xcode), 5+. |
| 9 * Install | 9 * Install |
| 10 [gclient](http://dev.chromium.org/developers/how-tos/install-depot-tools), | 10 [gclient](http://dev.chromium.org/developers/how-tos/install-depot-tools), |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 136 ## Using Xcode-Ninja Hybrid | 136 ## Using Xcode-Ninja Hybrid |
| 137 | 137 |
| 138 While using Xcode is unsupported, GYP supports a hybrid approach of using ninja | 138 While using Xcode is unsupported, GYP supports a hybrid approach of using ninja |
| 139 for building, but Xcode for editing and driving compilation. Xcode can still be | 139 for building, but Xcode for editing and driving compilation. Xcode can still be |
| 140 slow, but it runs fairly well even **with indexing enabled**. | 140 slow, but it runs fairly well even **with indexing enabled**. |
| 141 | 141 |
| 142 With hybrid builds, compilation is still handled by ninja, and can be run by the | 142 With hybrid builds, compilation is still handled by ninja, and can be run by the |
| 143 command line (e.g. ninja -C out/Debug chrome) or by choosing the chrome target | 143 command line (e.g. ninja -C out/Debug chrome) or by choosing the chrome target |
| 144 in the hybrid workspace and choosing build. | 144 in the hybrid workspace and choosing build. |
| 145 | 145 |
| 146 To use Xcode-Ninja Hybrid, set `GYP_GENERATORS=ninja,xcode-ninja`. | 146 To use Xcode-Ninja Hybrid, set GYP\_GENERATORS like the following: |
| 147 ``` | |
|
sdefresne
2016/03/02 14:12:18
nit: for proper syntax highlighting, use
```shel
tfarina
2016/03/02 17:17:22
Done.
| |
| 148 $ export GYP_GENERATORS="ninja,xcode-ninja" | |
|
sdefresne
2016/03/02 14:12:18
nit: the other pages do not prefix shell commands
tfarina
2016/03/02 17:17:22
Done.
| |
| 149 ``` | |
| 147 | 150 |
| 148 Due to the way Xcode parses ninja output paths, it's also necessary to change | 151 Due to the way Xcode parses ninja output paths, it's also necessary to change |
| 149 the main gyp location to anything two directories deep. Otherwise Xcode build | 152 the main gyp location to anything two directories deep. Otherwise Xcode build |
| 150 output will not be clickable. Adding | 153 output will not be clickable. Exporting your GYP\_GENERATOR\_FLAGS like the |
| 151 `xcode_ninja_main_gyp=src/build/ninja/all.ninja.gyp` to your | 154 following will fix it: |
| 152 `GYP_GENERATOR_FLAGS` will fix this. | 155 ``` |
|
sdefresne
2016/03/02 14:12:18
ditto about ```shell and $
tfarina
2016/03/02 17:17:22
Done.
| |
| 156 $ export GYP_GENERATOR_FLAGS="xcode_ninja_main_gyp=src/build/ninja/all.ninja.gyp " | |
| 157 ``` | |
|
sdefresne
2016/03/02 14:12:18
I would add the following:
To make this change pe
tfarina
2016/03/02 17:17:22
Done.
| |
| 153 | 158 |
| 154 After generating the project files with gclient runhooks, open | 159 After, generate the project files with: |
| 155 `src/build/ninja/all.ninja.xcworkspace`. | 160 ``` |
|
sdefresne
2016/03/02 14:12:18
ditto about ```shell and $
tfarina
2016/03/02 17:17:22
Done.
| |
| 161 $ gclient runhooks | |
| 162 ``` | |
| 163 | |
| 164 And finally, open it: | |
| 165 ``` | |
| 166 $ open build/ninja/all.ninja.xcworkspace | |
|
sdefresne
2016/03/02 14:12:18
ditto about ```shell and $
tfarina
2016/03/02 17:17:22
Done.
| |
| 167 ``` | |
| 156 | 168 |
| 157 You may run into a problem where http://YES is opened as a new tab every time | 169 You may run into a problem where http://YES is opened as a new tab every time |
| 158 you launch Chrome. To fix this, open the scheme editor for the Run scheme, | 170 you launch Chrome. To fix this, open the scheme editor for the Run scheme, |
| 159 choose the Options tab, and uncheck "Allow debugging when using document | 171 choose the Options tab, and uncheck "Allow debugging when using document |
| 160 Versions Browser". When this option is checked, Xcode adds | 172 Versions Browser". When this option is checked, Xcode adds |
| 161 `--NSDocumentRevisionsDebugMode YES` to the launch arguments, and the `YES` gets | 173 `--NSDocumentRevisionsDebugMode YES` to the launch arguments, and the `YES` gets |
| 162 interpreted as a URL to open. | 174 interpreted as a URL to open. |
| 163 | 175 |
| 164 If you want to limit the number of targets visible, which is known to improve | 176 If you want to limit the number of targets visible, which is known to improve |
| 165 Xcode performance, add `xcode_ninja_executable_target_pattern=%target%` where | 177 Xcode performance, add `xcode_ninja_executable_target_pattern=%target%` where |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 226 be set in `/etc/sysctl.conf`: | 238 be set in `/etc/sysctl.conf`: |
| 227 | 239 |
| 228 echo kern.maxvnodes=$((512*1024)) | sudo tee -a /etc/sysctl.conf | 240 echo kern.maxvnodes=$((512*1024)) | sudo tee -a /etc/sysctl.conf |
| 229 | 241 |
| 230 Or edit the file directly. | 242 Or edit the file directly. |
| 231 | 243 |
| 232 If your `git --version` reports 2.6 or higher, the following may also improve | 244 If your `git --version` reports 2.6 or higher, the following may also improve |
| 233 performance of `git status`: | 245 performance of `git status`: |
| 234 | 246 |
| 235 git update-index --untracked-cache | 247 git update-index --untracked-cache |
| OLD | NEW |