| 1 |
Welcome to the OpenSceneGraph (OSG). |
|---|
| 2 |
|
|---|
| 3 |
For up-to-date information on the project, in-depth details on how to |
|---|
| 4 |
compile and run libraries and examples, see the documentation on the |
|---|
| 5 |
OpenSceneGraph website: |
|---|
| 6 |
|
|---|
| 7 |
http://www.openscenegraph.org |
|---|
| 8 |
|
|---|
| 9 |
For the impatient, read the simplified build notes below. For support |
|---|
| 10 |
subscribe to our public mailing list: |
|---|
| 11 |
|
|---|
| 12 |
http://www.openscenegraph.org/projects/osg/wiki/MailingLists |
|---|
| 13 |
|
|---|
| 14 |
|
|---|
| 15 |
|
|---|
| 16 |
Robert Osfield. |
|---|
| 17 |
Project Lead. |
|---|
| 18 |
12th December 2008. |
|---|
| 19 |
|
|---|
| 20 |
-- |
|---|
| 21 |
|
|---|
| 22 |
How to build the OpenSceneGraph |
|---|
| 23 |
=============================== |
|---|
| 24 |
|
|---|
| 25 |
The OpenSceneGraph uses the CMake build system to generate a |
|---|
| 26 |
platform-specific build environment. CMake reads the CMakeLists.txt |
|---|
| 27 |
files that you'll find throughout the OpenSceneGraph directories, |
|---|
| 28 |
checks for installed dependenciesand then generates the appropriate |
|---|
| 29 |
build system. |
|---|
| 30 |
|
|---|
| 31 |
If you don't already have CMake installed on your system you can grab |
|---|
| 32 |
it from http://www.cmake.org, use version 2.4.6 or later. Details on the |
|---|
| 33 |
OpenSceneGraph's CMake build can be found at: |
|---|
| 34 |
|
|---|
| 35 |
http://www.openscenegraph.org/projects/osg/wiki/Build/CMake |
|---|
| 36 |
|
|---|
| 37 |
Under unices (i.e. Linux, IRIX, Solaris, Free-BSD, HP-Ux, AIX, OSX) |
|---|
| 38 |
use the cmake or ccmake command-line utils, or use the included tiny |
|---|
| 39 |
configure script that'll run cmake for you. The configure script |
|---|
| 40 |
simply runs 'cmake . -DCMAKE_BUILD_TYPE=Release' to ensure that you |
|---|
| 41 |
get the best performance from your final libraries/applications. |
|---|
| 42 |
|
|---|
| 43 |
cd OpenSceneGraph |
|---|
| 44 |
./configure |
|---|
| 45 |
make |
|---|
| 46 |
sudo make install |
|---|
| 47 |
|
|---|
| 48 |
Alternatively, you can create an out-of-source build directory and run |
|---|
| 49 |
cmake or ccmake from there. The advantage to this approach is that the |
|---|
| 50 |
temporary files created by CMake won't clutter the OpenSceneGraph |
|---|
| 51 |
source directory, and also makes it possible to have multiple |
|---|
| 52 |
independent build targets by creating multiple build directories. In a |
|---|
| 53 |
directory alongside the OpenSceneGraph use: |
|---|
| 54 |
|
|---|
| 55 |
mkdir build |
|---|
| 56 |
cd build |
|---|
| 57 |
cmake ../OpenSceneGraph -DCMAKE_BUILD_TYPE=Release |
|---|
| 58 |
make |
|---|
| 59 |
sudo make install |
|---|
| 60 |
|
|---|
| 61 |
Under Windows use the GUI tool CMakeSetup to build your VisualStudio |
|---|
| 62 |
files. The following page on our wiki dedicated to the CMake build |
|---|
| 63 |
system should help guide you through the process: |
|---|
| 64 |
|
|---|
| 65 |
http://www.openscenegraph.org/projects/osg/wiki/Support/PlatformSpecifics/VisualStudio |
|---|
| 66 |
|
|---|
| 67 |
Under OSX you can either use the CMake build system above, or use the |
|---|
| 68 |
Xcode projects that you will find in the OpenSceneGraph/Xcode |
|---|
| 69 |
directory. See release notes on OSX CMake build below. |
|---|
| 70 |
|
|---|
| 71 |
For further details on compilation, installation and platform-specific |
|---|
| 72 |
information read "Getting Started" guide: |
|---|
| 73 |
|
|---|
| 74 |
http://www.openscenegraph.org/projects/osg/wiki/Support/GettingStarted |
|---|
| 75 |
|
|---|
| 76 |
|
|---|
| 77 |
-- Release notes on OSX build, by Eric Sokolowsky, August 5, 2008 |
|---|
| 78 |
|
|---|
| 79 |
There are several ways to compile OpenSceneGraph under OSX. The |
|---|
| 80 |
recommended way is to use CMake 2.6 to generate Xcode projects, then use |
|---|
| 81 |
Xcode to build the library. The default project will be able to build |
|---|
| 82 |
Debug or Release libraries, examples, and sample applications. Here are |
|---|
| 83 |
some key settings to consider when using CMake: |
|---|
| 84 |
|
|---|
| 85 |
BUILD_OSG_EXAMPLES - By default this is turned off. Turn this setting on |
|---|
| 86 |
to compile many great example programs. |
|---|
| 87 |
|
|---|
| 88 |
CMAKE_OSX_ARCHITECTURES - Xcode can create applications, executables, |
|---|
| 89 |
libraries, and frameworks that can be run on more than one architecture. |
|---|
| 90 |
Use this setting to indicate the architectures on which to build OSG. |
|---|
| 91 |
Possibilities include ppc, ppc64, i386, and x86_64. Building OSG using |
|---|
| 92 |
either of the 64-bit options (ppc64 and x86_64) has its own caveats |
|---|
| 93 |
below. |
|---|
| 94 |
|
|---|
| 95 |
OSG_BUILD_APPLICATION_BUNDLES - Normally only executable binaries are |
|---|
| 96 |
created for the examples and sample applications. Turn this option on if |
|---|
| 97 |
you want to create real OSX .app bundles. There are caveats to creating |
|---|
| 98 |
.app bundles, see below. |
|---|
| 99 |
|
|---|
| 100 |
OSG_WINDOWING_SYSTEM - You have the choice to use Carbon or X11 when |
|---|
| 101 |
building applications on OSX. Under Leopard and later, X11 applications, |
|---|
| 102 |
when started, will automatically launch X11 when needed. However, |
|---|
| 103 |
full-screen X11 applications will still show the menu bar at the top of |
|---|
| 104 |
the screen. Since many parts of the Carbon user interface are not |
|---|
| 105 |
64-bit, X11 is the only supported option for OSX applications compiled |
|---|
| 106 |
for ppc64 or x86_64. |
|---|
| 107 |
|
|---|
| 108 |
There is an Xcode directory in the base of the OSG software |
|---|
| 109 |
distribution, but its future is limited, and will be discontinued once |
|---|
| 110 |
the CMake project generator completely implements its functionality. |
|---|
| 111 |
|
|---|
| 112 |
|
|---|
| 113 |
APPLICATION BUNDLES (.app bundles) |
|---|
| 114 |
|
|---|
| 115 |
The example programs when built as application bundles only contain the |
|---|
| 116 |
executable file. They do not contain the dependent libraries as would a |
|---|
| 117 |
normal bundle, so they are not generally portable to other machines. |
|---|
| 118 |
They also do not know where to find plugins. An environmental variable |
|---|
| 119 |
OSG_LIBRARY_PATH may be set to point to the location where the plugin |
|---|
| 120 |
.so files are located. OSG_FILE_PATH may be set to point to the location |
|---|
| 121 |
where data files are located. Setting OSG_FILE_PATH to the |
|---|
| 122 |
OpenSceneGraph-Data directory is very useful when testing OSG by running |
|---|
| 123 |
the example programs. |
|---|
| 124 |
|
|---|
| 125 |
Many of the example programs use command-line arguments. When |
|---|
| 126 |
double-clicking on an application (or using the equivalent "open" |
|---|
| 127 |
command on the command line) only those examples and applications that |
|---|
| 128 |
do not require command-line arguments will successfully run. The |
|---|
| 129 |
executable file within the .app bundle can be run from the command-line |
|---|
| 130 |
if command-line arguments are needed. |
|---|
| 131 |
|
|---|
| 132 |
|
|---|
| 133 |
64-BIT APPLICATION SUPPORT |
|---|
| 134 |
|
|---|
| 135 |
OpenSceneGraph will not compile successfully when OSG_WINDOWING_SYSTEM is |
|---|
| 136 |
Carbon and either x86_64 or ppc64 is selected under CMAKE_OSX_ARCHITECTURES, |
|---|
| 137 |
as Carbon is a 32bit only API. A version of the osgviewer library written in |
|---|
| 138 |
Cocoa is needed. However, OSG may be compiled under 64-bits if the X11 |
|---|
| 139 |
windowing system is selected. However, Two parts of the OSG default |
|---|
| 140 |
distribution will not work with 64-bit X11: the osgviewerWX example |
|---|
| 141 |
program and the osgdb_qt (Quicktime) plugin. These must be removed from |
|---|
| 142 |
the Xcode project after Cmake generates it in order to compile with |
|---|
| 143 |
64-bit architectures. The lack of the latter means that images such as |
|---|
| 144 |
jpeg, tiff, png, and gif will not work, nor will animations dependent on |
|---|
| 145 |
Quicktime. A new ImageIO-based plugin is being developed to handle the |
|---|
| 146 |
still images, and a QTKit plugin will need to be developed to handle |
|---|
| 147 |
animations. |
|---|