OGRE Wiki
Support and community documentation for Ogre3D
Ogre Forums
ogre3d.org
Log in
Username:
Password:
CapsLock is on.
Remember me (for 1 year)
Log in
Home
Tutorials
Tutorials Home
Basic Tutorials
Intermediate Tutorials
Mad Marx Tutorials
In Depth Tutorials
Older Tutorials
External Tutorials
Cookbook
Cookbook Home
CodeBank
Snippets
Experiences
Ogre Articles
Libraries
Libraries Home
Alternative Languages
Assembling A Toolset
Development Tools
OGRE Libraries
List of Libraries
Tools
Tools Home
DCC Tools
DCC Tutorials
DCC Articles
DCC Resources
Assembling a production pipeline
Development
Development Home
Roadmap
Building Ogre
Installing the Ogre SDK
Setting Up An Application
Ogre Wiki Tutorial Framework
Frequently Asked Questions
Google Summer Of Code
Help Requested
Ogre Core Articles
Community
Community Home
Projects Using Ogre
Recommended Reading
Contractors
Wiki
Immediate Wiki Tasklist
Wiki Ideas
Wiki Guidelines
Article Writing Guidelines
Wiki Styles
Wiki Page Tracker
Ogre Wiki Help
Ogre Wiki Help Overview
Help - Basic Syntax
Help - Images
Help - Pages and Structures
Help - Wiki Plugins
Toolbox
Freetags
Categories
List Pages
Structures
Trackers
Statistics
Rankings
List Galleries
Ogre Lexicon
Comments
History: Building Ogre on Mac OS X (2013)
View page
Source of version: 6
(current)
{DIV(class="achtung")}__IMPORTANT:__ These instructions are meant to be used with old releases of Ogre. For Ogre 1.10+, rather use [https://ogrecave.github.io/ogre/api/latest/building-ogre.html|BuildingOgre.md].{DIV} !Intro This is an attempt to provide an up to date guide on how to build Ogre from scratch on a recent Mac platform. We will be using Xcode 4.6, and Mac OS X 10.7.5. Tested on a Mac mini 2011, if that matters. The motivation for this guide was the result of general frustration of the difficulty of building Ogre the Mac platform. My background is from using Visual Studio 2008, so I wanted a step-by-step guide on how to build Ogre. For simplicity, directories will be created in the home directory, although that may not be generally desirable. Because of my requirements (32 bit only third party library), we will build a static version for i386 only, although it should be easy to identify and tweak those options for your own use. !!Building Boost for Ogre Although not strictly necessary, Boost is nice for cross platform stuff, and I feel it makes me more productive. However, you sacrifice compile times and binary sizes. Hopefully the negatives will eventually disappear in the future as compilers get better. {CODE(wrap="1")} # Download Boost on the official website, at the time this was written, it is 1.53.0 cd tar -xjvpf ~/Downloads/boost_1_53_0.tar.bz2 mv boost_1_53_0 boost # I chose to do this so I don't have to update directories every time in other projects # install the b2 / bjam to ~/boost.build, this is like make and cmake, but for boost cd boost/tools/build/v2 ./booststrap.sh mkdir ~/boost.build (NOTE that ~ doesn't work below to specify home) ./b2 install --prefix=/home/USERNAME/boost.build # make sure you are using the latest compilers, and they refer to the ones inside /Applications/Xcode.app # this is important if you have Xcode 3 and Xcode 4 simulataneously installed $ /usr/bin/g++ --version i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) $ /usr/bin/clang --version Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn) Target: x86_64-apple-darwin11.4.2 Thread model: posix # building Boost cd ~/boost ~/boost.build/bin/b2 --layout=versioned --build-type=minimal toolset=darwin link=static architecture=x86 address-model=32 stage {CODE} After following these steps, you have lots of *.a files in ~/boost/stage/lib . Since layout=version is specified, they have the suffix {MONO()}-xgcc42-mt-1_53{MONO} !! CMake Pretty simple. Go to their website, download CMake, and install. Also install the command-line tools at the end. In the terminal, do "cmake --version" to check that the version is at least 2.8.10.2 !! Install NVIDIA Cg Also pretty simple. Just use the install inside the DMG. [https://developer.nvidia.com/cg-toolkit-download|NVIDIA Cg Download] !! Building OGRE Dependencies Since we are building our own version of Boost, we might as well build the Ogre dependencies also. {CODE(wrap="1")} # get ogredeps source cd hg clone https://bitbucket.org/cabalistic/ogredeps # make temp directory for build cd ogredeps mkdir build cd build cmake -D CMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -D CMAKE_OSX_ARCHITECTURES=i386 .. # this seems to always compile in Release mode by default (i.e. -O3 is used) make # this creates a directory ~/ogredeps/build/ogredeps , and this is where we will tell Ogre to look for dependencies make install {CODE} !! Building OGRE {CODE(wrap="1")} # get OGRE source cd hg clone https://bitbucket.org/sinbad/ogre/ ogre cd ogre # switch to latest stable branch at the time of this writing hg update v1-8 # if you have boost installed via MacPorts, de-activate it for now as the CMake boost finder is buggy and will # try to link to the boost libs in /opt/local/lib even though you explicitly specified a library location # build mkdir build cd build # below command is so long it probably takes 2 lines cmake -D BOOST_ROOT=~/boost -D BOOST_INCLUDEDIR=~/boost -D BOOST_LIBRARYDIR=~/boost/stage/lib -D Boost_DEBUG=1 -D OGRE_DEPENDENCIES_DIR=~/ogredeps/build/ogredeps -D OGRE_STATIC=1 -D CMAKE_OSX_ARCHITECTURES=i386 -D OGRE_BUILD_SAMPLES=0 -G Xcode .. # Explanation of above: # BOOST_ROOT, BOOST_INCLUDEDIR, BOOST_LIBRARYDIR indicate where our custom install of Boost is at. # Boost_DEBUG=1 is to make sure it is using the correct Boost location. # OGRE_DEPENDENCIES_DIR is where the output of the previous step is at # OGRE_BUILD_SAMPLES=0 to disable building of the SampleBrowser for quicker compilation # Note, from browsing the forums, Xcode generator is essential as Makefiles don't work correctly (?) # open OGRE.xcodeproj in Xcode # Product > Scheme > Edit Scheme # change "ALL_BUILD" to Release Build Configuration # change "install" to Release Build Configuration # make sure "Product > Scheme > ALL_BUILD" is selected # Product > Build # select "Product > Scheme > install # Product > Build # NOTE that the build fails complaining that 'FindiOSSDK.cmake' can't be found, but I think we can ignore that. {CODE} After performing these steps, you should have a ~/ogre/build/sdk/ directory, which contains the files that you will need to use Ogre in your application. !! Getting the XCode 4 template Up and Running Download the latest Xcode template by going to [http://sourceforge.net/projects/ogre/files/ogre-dependencies-mac/1.8/] and downloading Ogre_Xcode4_Templates_20120621.pkg.zip Close Xcode and install this pkg file. Now when you create a new project, under the OS X section there should be an Ogre category with "Mac OS X Application" that has the Ogre head logo. Choose that and create a new project. The first thing you should notice when you enter project is the missing frameworks. Remove those. open /System/Library/Frameworks/ and drag AGL.framework, GL.framework, and QuartzCore.framework into the Frameworks folder in Xcode. open /Library/Frameworks/ and drag Cg.framework into Framworks like above. !!! Now tweak the following Build Settings: __Architectures__ 32-bit Intel __Valid Architectures__ i386 __Other Linker Flags__ -lOIS -lOgreMainStatic -lfreetype -lFreeImage -lboost_thread-xgcc42-mt-1_53 -lboost_system-xgcc42-mt-1_53 -lzziplib -lzlib -lPlugin_CgProgramManagerStatic -lRenderSystem_GLStatic ''Important that /Library/Frameworks is added below, otherwise compiler won't be able to find Cg/cg.h'' __Framework Search Paths__ $(inherited) "$(SYSTEM_APPS_DIR)/Xcode.app/Contents/Developer/Library/Frameworks" /Library/Frameworks __Header Search Paths__ ~/ogre/build/sdk/include/OGRE ~/ogre/build/sdk/include/OGRE/OSX ~/ogre/build/sdk/include/OGRE/Plugins/CgProgramManager ~/ogre/build/sdk/include/OGRE/RenderSystems/GL ~/ogre/build/sdk/include/OIS ~/boost __Library Search Paths__ ~/boost/stage/lib ~/ogre/build/sdk/lib ''Below 2 settings are important, otherwise you get mysterious bad codegen, pointer diff errors'' __Inline Methods Hidden__ No __Symbols Hidden by Default__ No !!! Minor edits to files Add this to the beginning of the Precompiled Header {CODE(wrap="1", colors="c++")}#include <GL/glew.h>{CODE} If you don't do this, you get errors saying how glew.h needs to be included before gl.h and glext.h Comment out "delete m_pRoot" in OgreFramework::~OgreFramework() Right now it crashes inside OgreRoot::shutdown(), and I have no idea why. If I have time I will probably investigate later by making Debug builds of Ogre. !!! Success (Hopefully) Press 'Run' and hopefully everything goes well except for the 'PBXCp Error' that you can ignore and you should have the Config Screen. Press 'OK' and you should see the famous Ogre head (:biggrin:) Press Escape to close the application.
Search by Tags
Search Wiki by Freetags
Latest Changes
FMOD SoundManager
HDRlib
Building Ogre V2 with CMake
Ogre 2.1 FAQ
Minimal Ogre Collision
Artifex Terra
OpenMB
Advanced Mogre Framework
MogreSocks
Critter AI
...more
Search
Find
Advanced
Search Help
Online Users
23 online users