| Index: docs/old_mac_build_instructions.md
|
| diff --git a/docs/old_mac_build_instructions.md b/docs/old_mac_build_instructions.md
|
| deleted file mode 100644
|
| index 652b865d445b76c96809e04def17ced7dd728b89..0000000000000000000000000000000000000000
|
| --- a/docs/old_mac_build_instructions.md
|
| +++ /dev/null
|
| @@ -1,209 +0,0 @@
|
| -# Mac Build Instructions
|
| -
|
| -**Generally, this page is obsolete and you should look at
|
| -[the new page instead](mac_build_instructions.md).**
|
| -
|
| -[TOC]
|
| -
|
| -Google employee? See [go/building-chrome-mac](https://goto.google.com/building-chrome-mac) for extra tips.
|
| -
|
| -## Prerequisites
|
| -
|
| -* A Mac running 10.9+.
|
| -* [Xcode](https://developer.apple.com/xcode) 7.3+.
|
| -* [depot\_tools](http://dev.chromium.org/developers/how-tos/depottools).
|
| -* The OSX 10.10 SDK. Run
|
| - ```
|
| - ls `xcode-select -p`/Platforms/MacOSX.platform/Developer/SDKs
|
| - ```
|
| - to check whether you have it. Building with the 10.11 SDK works too, but
|
| - the releases currently use the 10.10 SDK.
|
| -
|
| -## Getting the code
|
| -
|
| -[Check out the source code](https://www.chromium.org/developers/how-tos/get-the-code)
|
| -using Git.
|
| -
|
| -Before checking out, go to the
|
| -[waterfall](http://build.chromium.org/buildbot/waterfall/) and check that the
|
| -source tree is open (to avoid pulling a broken tree).
|
| -
|
| -The path to the build directory should not contain spaces (e.g. not
|
| -`~/Mac OS X/chromium`), as this will cause the build to fail. This includes your
|
| -drive name, the default "Macintosh HD2" for a second drive has a space.
|
| -
|
| -## Building
|
| -
|
| -Chromium on OS X is built using the [Ninja](ninja_build.md) tool and
|
| -the [Clang](clang.md) compiler. See both of those pages for further details on
|
| -how to tune the build.
|
| -
|
| -Run
|
| -
|
| - gn gen out/gn
|
| -
|
| -to generate build files (replace "gn" in "out/gn" with whatever you like), and
|
| -then run
|
| -
|
| - ninja -C out/gn chrome
|
| -
|
| -to build. You can edit out/gn/args.gn to configure the build.
|
| -
|
| -Before you build, you may want to
|
| -[install API keys](https://sites.google.com/a/chromium.org/dev/developers/how-tos/api-keys)
|
| -so that Chrome-integrated Google services work. This step is optional if you
|
| -aren't testing those features.
|
| -
|
| -## Faster builds
|
| -
|
| -Full rebuilds are about the same speed in Debug and Release, but linking is a
|
| -lot faster in Release builds.
|
| -
|
| -Put
|
| -
|
| - is_debug = false
|
| -
|
| -in your args.gn to do a release build.
|
| -
|
| -Put
|
| -
|
| - is_component_build = true
|
| -
|
| -in your args.gn to build many small dylibs instead of a single large executable.
|
| -This makes incremental builds much faster, at the cost of producing a binary
|
| -that opens less quickly. Component builds work in both debug and release.
|
| -
|
| -Put
|
| -
|
| - symbol_level = 1
|
| -
|
| -in your args.gn to disable debug symbols altogether. This makes both full
|
| -rebuilds and linking faster (at the cost of not getting symbolized backtraces
|
| -in gdb).
|
| -
|
| -You might also want to [install ccache](ccache_mac.md) to speed up the build.
|
| -
|
| -## Running
|
| -
|
| -All build output is located in the `out` directory (in the example above,
|
| -`~/chromium/src/out`). You can find the applications at
|
| -`gn/Content Shell.app` and `gn/Chromium.app`.
|
| -
|
| -## Unit Tests
|
| -
|
| -We have several unit test targets that build, and tests that run and pass. A
|
| -small subset of these is:
|
| -
|
| -* `unit_tests` from `chrome/chrome.gyp`
|
| -* `base_unittests` from `base/base.gyp`
|
| -* `net_unittests` from `net/net.gyp`
|
| -* `url_unittests` from `url/url.gyp`
|
| -
|
| -When these tests are built, you will find them in the `out/gn`
|
| -directory. You can run them from the command line:
|
| -
|
| - ~/chromium/src/out/gn/unit_tests
|
| -
|
| -
|
| -## Coding
|
| -
|
| -According to the
|
| -[Chromium style guide](http://dev.chromium.org/developers/coding-style) code is
|
| -[not allowed to have whitespace on the ends of lines](https://google.github.io/styleguide/cppguide.html#Horizontal_Whitespace).
|
| -
|
| -Run `git cl format` after committing to your local branch and before uploading
|
| -to clang-format your code.
|
| -
|
| -## Debugging
|
| -
|
| -Good debugging tips can be found
|
| -[here](http://dev.chromium.org/developers/how-tos/debugging-on-os-x). If you
|
| -would like to debug in a graphical environment, rather than using `lldb` at the
|
| -command line, that is possible without building in Xcode. See
|
| -[Debugging in Xcode](http://www.chromium.org/developers/how-tos/debugging-on-os-x/building-with-ninja-debugging-with-xcode)
|
| -for information on how.
|
| -
|
| -## Contributing
|
| -
|
| -Once you’re comfortable with building Chromium, check out
|
| -[Contributing Code](http://dev.chromium.org/developers/contributing-code) for
|
| -information about writing code for Chromium and contributing it.
|
| -
|
| -## Using Xcode-Ninja Hybrid
|
| -
|
| -While using Xcode is unsupported, gn supports a hybrid approach of using ninja
|
| -for building, but Xcode for editing and driving compilation. Xcode is still
|
| -slow, but it runs fairly well even **with indexing enabled**. Most people
|
| -build in the Terminal and write code with a text editor though.
|
| -
|
| -With hybrid builds, compilation is still handled by ninja, and can be run by the
|
| -command line (e.g. ninja -C out/gn chrome) or by choosing the chrome target
|
| -in the hybrid workspace and choosing build.
|
| -
|
| -To use Xcode-Ninja Hybrid pass --ide=xcode to `gn gen`
|
| -
|
| -```shell
|
| -gn gen out/gn --ide=xcode
|
| -```
|
| -
|
| -Open it:
|
| -
|
| -```shell
|
| -open out/gn/ninja/all.xcworkspace
|
| -```
|
| -
|
| -You may run into a problem where http://YES is opened as a new tab every time
|
| -you launch Chrome. To fix this, open the scheme editor for the Run scheme,
|
| -choose the Options tab, and uncheck "Allow debugging when using document
|
| -Versions Browser". When this option is checked, Xcode adds
|
| -`--NSDocumentRevisionsDebugMode YES` to the launch arguments, and the `YES` gets
|
| -interpreted as a URL to open.
|
| -
|
| -If you have problems building, join us in `#chromium` on `irc.freenode.net` and
|
| -ask there. As mentioned above, be sure that the
|
| -[waterfall](http://build.chromium.org/buildbot/waterfall/) is green and the tree
|
| -is open before checking out. This will increase your chances of success.
|
| -
|
| -## Improving performance of `git status`
|
| -
|
| -`git status` is used frequently to determine the status of your checkout. Due
|
| -to the number of files in Chromium's checkout, `git status` performance can be
|
| -quite variable. Increasing the system's vnode cache appears to help. By
|
| -default, this command:
|
| -
|
| - sysctl -a | egrep kern\..*vnodes
|
| -
|
| -Outputs `kern.maxvnodes: 263168` (263168 is 257 * 1024). To increase this
|
| -setting:
|
| -
|
| - sudo sysctl kern.maxvnodes=$((512*1024))
|
| -
|
| -Higher values may be appropriate if you routinely move between different
|
| -Chromium checkouts. This setting will reset on reboot, the startup setting can
|
| -be set in `/etc/sysctl.conf`:
|
| -
|
| - echo kern.maxvnodes=$((512*1024)) | sudo tee -a /etc/sysctl.conf
|
| -
|
| -Or edit the file directly.
|
| -
|
| -If your `git --version` reports 2.6 or higher, the following may also improve
|
| -performance of `git status`:
|
| -
|
| - git update-index --untracked-cache
|
| -
|
| -## Xcode license agreement
|
| -
|
| -If you're getting the error
|
| -
|
| -```
|
| -Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
|
| -```
|
| -
|
| -the Xcode license hasn't been accepted yet which (contrary to the message) any
|
| -user can do by running:
|
| -
|
| - xcodebuild -license
|
| -
|
| -Only accepting for all users of the machine requires root:
|
| -
|
| - sudo xcodebuild -license
|
|
|