Building osgEarth

osgEarth is a cross-platform library. It uses the CMake build system. You will need version 2.8 or newer. (This is the same build system that OpenSceneGraph uses.)

NOTE: To build osgEarth for iOS see Building osgEarth (and OSG) for iOS

Get the Source Code

Option 1: use GIT

osgEarth is hosted on GitHub. You will need a git client to access it. We recommend TortoiseGit for Windows users.

To clone the repository, point your client at:


Option 2: download a tagged version

To download a tarball or ZIP archive of the source code, visit the osgEarth Tags and select the one you want. The latest official release will be at the top.

Get the Dependencies

The following are required dependencies:

  • OpenSceneGraph 3.0.1 or later, with the CURL plugin enabled.
  • GDAL 1.6 or later - Geospatial Data Abstraction Layer
  • CURL - HTTP transfer library (comes with OpenSceneGraph 3rd party library distros)

These are the optional depedencies. osgEarth will compile without them, but some functionality will be missing:

  • GEOS 3.2.0 or later - C++ library for topological operations. osgEarth uses GEOS to perform various geometry operations like buffering and intersections. If you plan to use vector feature data in osgEarth, you probably want this.
  • Minizip - ZIP file extractor; include this if you want to read KMZ files.
  • V8 - Google’s JavaScript engine. Include this if you want to embed JavaScript code in your earth files.

Optional: get pre-built dependencies

  • AlphaPixel has pre-built OSG and 3rd-party dependencies for various architectures.
  • Mike Weiblen has some pre-built OSG binaries and dependencies too.
  • FWTools has pre-built GDAL binaries with all the fixins.
  • Pre-built GDAL binaries for various architectures.

Build it

Make sure you built OSG and all the dependencies first.

osgEarth uses CMake, version 2.8 or later. Since OSG uses CMake as well, once you get OSG built the process should be familiar.

Here are a few tips.

  • Always do an “out-of-source” build with CMake. That is, use a build directory that is separate from the source code. This makes it easier to maintain separate versions and to keep GIT updates clean.
  • For optional dependencies (like GEOS or V8), just leave the CMake field blank if you are not using it.
  • For the OSG dependencies, just input the OSG_DIR variable, and when you generate CMake will automatically find all the other OSG directories.
  • As always, check the forum if you have problems!

Good luck!!