User:Michelle2 Zenovka/cmake

From Second Life Wiki
Jump to: navigation, search

How to build the viewer with cmake

This page represents some notes of mine for building the viewer via cmake. The process under linux is trivial but under windows it is slightly more involved (but not really that bad at all). If you've only ever been used to starting with a Visual Studio project file then the cmake steps may seem a little strange at first but its a great system for ensuring that radically different build environments start from the same "control" files.

Prerequisites for windows

  • cmake (well duh!)
  • Python
  • bison and flex (from cygwin)
  • DirectX SDK (Microsoft DirectX SDK (November 2007))
  • Quicktime SDK
  • openssl SDK

Get cmake from Download and install the setup executable

Get python from

When installing cmake and python, its important to allow the commands to be addded to the system path. Both installers give an option for this towards the end of the installation. (On my system i needed to select for current user only as for all users (silently) failed to work).

Get cygwin from

When you get to the package choice make sure you select bison and flex, they are under development tools.

Get DirectX SDK November 2007 from Microsoft Warning 400MB+ 2007]

Get Quicktime SDK from Apple

Openssl SDK

Not sure why this is not packaged with the viewer. Probably license issues as OpenSSL can be troublesome WRT licenses and compatibility with other licenses. Some windows packages are available which may be a better solution. Work to do

Get the source

At the time of writing the source is only available via SVN. This may be a problem for windows users and the best plan is to look for a windows SVN client OR install the svn tools in cygwin. cmake has just hit the release branch so it should be in a released zip ball soon.

Check out the source :-

svn co

Probably the best plan if you do not have an svn client but have installed cygwin, is to go back to the cygwin setup and select the svn tools from the development group. Once these are installed you can checkout svn just like we do on unix.

1. Open a cygwin prompt 2. change to a sensible directory, something like "cd c:" "mkdir secondlife" "cd secondlife" 3. checkout the svn with the svn co command above.

You no longer need to download the libs tarball/zip file as the will download the required libraries for you, note you still need the librarys and programs in the initial section of this page installed.

In the future this section will change to a straight forward download from the usual viewer source location.

Generate the project files

This is where the real fun and grace of cmake starts to take shape. Open a terminal window and go to the folder with the viewer source code. Enter the folder linden/indra/ now run the script. Probably on windows if python installed correctly you can just type "".

(It seems quite possible to stay with in your cygwin prompt and just "cd release/indra" "")

it may be necessary to add a -G option which selects which version of visual studio to target, possible options are :-

  • VC71
  • VC2003 (default)
  • VC80 (VS2005)
  • VC90 (VS2008)

for example -G VC90

will generate project files for Visual C++ 2008

NOTE: This script now downloads the libraries that were previously in the libs zip file. This saves developers who are tracking release from constantly downloading them every update and only downloads updated libraries. This means on the first run will take ages download the libs and secondly if you manually want to override libs with older or newer versions it will take some dancing around (feel free to document this).

Build the viewer

Now the previous cmake process will have generated some Visual Studio files for you under linden/indra/build-vc71 (in fact the exact path name depends on which visual studio you have files generated for). Just open the solution file .sln in that folder and build the solution in the standard way.


Express editions of Visual C++

Express editions do not have some of the extra features that VSTool.exe requires, VSTool is a little application that sets a few default project options, like which project is the startup and which build configuration to use.