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