Getting Started on macOS
- Installing Developer Tools
- Installing External Dependencies
- Verifying the Installation
- Updating Dependencies
This document extends the Getting Started guide to cover installation of external dependencies on a macOS system. You will still need to follow all the other Getting Started instructions to get a working Kythe build.
Installing Developer Tools
Xcode: To build on macOS, you will need Xcode installed. You can do this from the terminal by running:
or by launching the App Store application and browsing to Develop → Xcode. Verify your installation by running the command:
You should get something like this (though the numbers will vary):
If you get an error like this:
then the following command should fix it:
Homebrew: You will also need to install Homebrew (follow the link for instructions). There are other ways to install packages, but the rest of these instructions assume you have it.
Installing External Dependencies
To install most of the external dependencies, run
Note that some of the external packages listed are not mentioned here, because macOS already has suitable versions pre-installed.
Docker: Download and install Docker for Mac from the docker store. Note that you will have to create a “Docker ID” and log in to get access to the download, but you won’t to log in to the store to use Docker once it has been installed.
Verifying the Installation
Once you have finished setting up your macOS installation (including the parts that aren’t macOS specific), you can verify that everything works by running:
If everything is set up correctly, all the tests should build and pass. You will probably see warnings from the C++ compiler, but there should not be any errors or failing tests.
To verify that Docker works, run
Updating Dependencies
For all the packages managed by Homebrew, you can update by running:
If you need to update Bazel in particular, run:
The Docker application automatically checks for updates (you can disable this in the Preferences and select Check for Updates manually if you prefer).