69 lines
2.7 KiB
Markdown
69 lines
2.7 KiB
Markdown
# Building & Developing Mapbox GL Native from Source
|
|
|
|
**Just trying to use Mapbox GL Native? You don't need to read this stuff! We
|
|
provide [easy-to-install, prebuilt versions of the Mapbox SDKs for iOS and Android
|
|
that you can download instantly and get started with fast](https://www.mapbox.com/mobile/).**
|
|
|
|
Still with us? These are the instructions you'll need to build Mapbox GL Native
|
|
from source on a variety of platforms and set up a development environment.
|
|
|
|
Your journey will start with getting the source code, then installing the
|
|
dependencies, and then setting up a development environment, which varies
|
|
depending on your operating system and what platform you want to develop for.
|
|
|
|
## 1: Getting the source
|
|
|
|
Clone the git repository:
|
|
|
|
git clone https://github.com/mapbox/mapbox-gl-native.git
|
|
cd mapbox-gl-native
|
|
|
|
## 2: Installing dependencies
|
|
|
|
These dependencies are required for all operating systems and all platform
|
|
targets.
|
|
|
|
- Modern C++ compiler that supports `-std=c++14`\*
|
|
- clang++ 3.5 or later _or_
|
|
- g++-4.9 or later
|
|
- [CMake](https://cmake.org/) 3.1 or later (for build only)
|
|
- [cURL](https://curl.haxx.se) (for build only)
|
|
- [Node.js](https://nodejs.org/) 4.2.1 or later (for build only)
|
|
- [`pkg-config`](https://wiki.freedesktop.org/www/Software/pkg-config/) (for build only)
|
|
|
|
**Note**: We partially support C++14 because GCC 4.9 does not fully implement the
|
|
final draft of the C++14 standard. More information in [DEVELOPING.md](DEVELOPING.md).
|
|
|
|
Depending on your operating system and target, you'll need additional
|
|
dependencies:
|
|
|
|
### Additional dependencies for Linux
|
|
|
|
- [`libcurl`](http://curl.haxx.se/libcurl/) (depends on OpenSSL)
|
|
|
|
### Additional dependencies for macOS
|
|
|
|
- Apple Command Line Tools (available at [Apple Developer](https://developer.apple.com/download/more/))
|
|
- [Homebrew](http://brew.sh)
|
|
- [Cask](http://caskroom.io/) (if building for Android)
|
|
- [xcpretty](https://github.com/supermarin/xcpretty) (`gem install xcpretty`)
|
|
|
|
### Optional dependencies
|
|
|
|
- [ccache](https://ccache.samba.org) (for build only; improves recompilation performance)
|
|
|
|
## 3: Setting up a development environment & building
|
|
|
|
See the relevant SDK documentation for next steps:
|
|
|
|
* [Mapbox Android SDK](platform/android/)
|
|
* [Mapbox iOS SDK](platform/ios/)
|
|
* [Mapbox macOS SDK](platform/macos/)
|
|
* [Mapbox Qt SDK](platform/qt/)
|
|
* [Mapbox GL Native on Linux](platform/linux/)
|
|
* [node-mapbox-gl-native](platform/node/)
|
|
|
|
## 4: Keeping up to date
|
|
|
|
This repository uses Git submodules, which should be automatically checked out when you first run a `make` command for one of the above platforms. These submodules are not updated automatically and we recommended that you run `git submodule update` after pulling down new commits to this repository.
|