Compiling the viewer (Mac OS X)

From Second Life Wiki
Revision as of 17:37, 11 February 2015 by Cinder Roxley (talk | contribs) (→‎Updating Xcode 4.6: This section is unnecessary since cocoa project was released, Removing)
Jump to navigation Jump to search

For recent information check the Project Snowstorm page.

Getting Development Tools

  • Xcode 4: Xcode 4.6 is now supported for building, but involves also downloading Xcode 4.3 and following the steps explained below: Compiling_the_viewer_(Mac_OS_X)#Updating_Xcode_4.6. We hope to have eliminated this hack soon.
  • CMake: Install CMake from cmake.org, or using MacPorts with 'port install cmake'. You will need at least CMake 2.8.8.
  • Command line Tools: These are included in Apple's Xcode product. Download and install Xcode from Apple.
  • Mercurial: Needed for cloning/updating the repository and also generating a version number.

Downloading Source Code

Linden Lab Project Snowstorm uses Mercurial and Bit Bucket for the version control repository. The repository is http://hg.secondlife.com/viewer-release

Installing Proprietary Libraries

Some builds of the the Viewer depends on proprietary libraries (alternative open source libraries are also provided for developers who prefer or are not licensed to use the proprietary libraries). Lindens do not distribute these libraries, so you will need to fetch and install these even if you download the libraries packages. (This is due to licensing restrictions. Don't ask, Lindens already did, and can't get permission. So you do have to get them yourself.)

Fmod

Fmod method 1 (using autobuild)

CD to where you want to install the 3p-fmod repository and do:

$ hg clone https://bitbucket.org/lindenlab/3p-fmod
$ cd 3p-fmod
$ autobuild build --all
$ autobuild package

You will see the result looks like:

packing fmod
wrote  /3p-fmod/fmod-3.75-darwin-20120614.tar.bz2
md5    527422281dbe49abac29380996d41230

CD to your repository root and update autobuild configulation file with the filename and hash just displayed. For the example above, run:

 
$ autobuild installables edit fmod platform=darwin hash=527422281dbe49abac29380996d41230 url=file:///3p-fmod/fmod-3.75-darwin-20120614.tar.bz2

Note: FMOD does not host the appropriate version any longer. You will need fmodapi375mac.zip from elsewhere; currently, Kittin Ninetails is hosting it on her SkyDrive.

Fmod method 2 (using system module)

(to be written)


Configuration and Building

With Autobuild

This is the preferred method (the one the Lindens consider "normal").

Configuring and building with autobuild works the same on all platforms. Full instructions may be found at Build_Viewer_With_Autobuild.

Example:

autobuild configure -c RelWithDebInfoOS -- -DPACKAGE:BOOL=FALSE -DFMOD:BOOL=TRUE
autobuild build -c RelWithDebInfoOS --no-configure


On Xcode

If you have followed the configure instructions from Build_Viewer_With_Autobuild, the directory build-darwin-i386 will have been created in the root of your source distribution. Inside that directory you will find the SecondLife.xcodeproj project file which can be used with Xcode. When opened it should be configured correctly to build, so just Build and Run.

Running your newly built viewer

On Console

In your source tree root directory, run:

$build-darwin-i386/newview/configuration-type/Second\ Life.app/Contents/MacOS/Second\ Life

where configuration-type depends on your built configuration ("DebugOS", "ReleaseOS" or "RelWithDebInfoOS").

On Xcode

"secondlife-bin" scheme is what you look for.

Using Finder

  1. Navigate to build-darwin-i386/newview/configuration-type.
  2. Double click the application.
You can create and put the alias wherever you find convenient.

Running the Unit Tests

From Xcode, open the project build-darwin-i386/test/test.xcodeproj and select "test" for scheme and run. SecondLife.xcodeproj project also has "test" scheme.

Handling Problems

If you encounter errors or run into problems following the instructions above, please first check whether someone else already had the same issue. A solution might be known already.

You may find the solution in any of these resources:

Getting Help

Even when no description of your problem has been written down yet, someone might know about it, so get in touch with the community to get help.

Submitting Changes

This is probably far down the road, but if you make changes to the source and want to submit them, see the page about submitting patches.