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:

git://github.com/gwaldron/osgearth.git

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

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)

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.
  • QT_ - Cross-platform UI framework. Point the QT_QMAKE_EXECUTABLE CMake variable to the qmake.exe you want to use and CMake will populate all the other QT variables.
  • LevelDB - Google’s embedded key/value store. Include this if you want to build osgEarth’s optional “leveldb” cache driver.
  • Duktape - Embedded JavaScript engine. Include this is you want to embed JavaScript code in your earth files to control feature styling.

Deprecated dependencies: osgEarth can still use these, but they will probably go away in the future:

  • V8 - Google’s JavaScript engine. Include this if you’re a Windows user and you want to embed JavaScript code in your earth files. We recommend you use Duktape instead.
  • JavaScriptCore_ - Apple’s JavaScript engine. Include this if you’re an OSX or IOS user and you want to embed JavaScript code in your earth files. We receommend you use Duktape instead.

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!!