Compiling older viewers (1.20 and earlier with MSVS)

From Second Life Wiki
Revision as of 11:04, 29 October 2008 by Rob Linden (talk | contribs) (New page: This page contains instructions for compiling older versions of the Second Life viewer (1.20 and earlier). == Configuring the build environment == See Compiling the viewer (MSVS2005)...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This page contains instructions for compiling older versions of the Second Life viewer (1.20 and earlier).

Configuring the build environment

See Compiling the viewer (MSVS2005) for instructions on configuring the MSVS build environment. The instructions on this page are apply after the build environment is configured.

Using pre-built solution/project files

For versions of the viewer older than 1.20, here is a ZIP file with solution/project files available on the JIRA bug tracker issue VWR-1151.

If you are building 1.16 or later, the easiest way towards compiling SL on MS2005 will be to use the zip file mentioned above. The details is as follows:

  • Download the appropriate ZIP archive from JIRA.
  • Unpack it and copy it onto your linden source tree (allow to overwrite files that have _vc8 in the name).
  • Start Visual Studio 2005 (or VC++ Express).
  • Use "File > Open > Project/Solution" to open the linden\indra\indra_complete\indra_complete_vc8.sln (Note: If you plan to work with multiple versions over time, you will find it useful to rename indra_complete_vc8.sln to something which contains the version number, e.g. indra_1_17_0_11_vc8.sln before opening.)
  • Right click newview in the frame Solution Explorer and click "Set as StartUp Project".
  • Proceed with applying the Workarounds below (skip Manual conversion).

Note: The solution/project files depends on the viewer release version. If you are compiling some specific version of the viewer, and the VWR-1151 doesn't list the zip file for you version, you can try using the most close one. If, while compiling, you later encounter errors or problems regarding the projects, you may have to do the manual conversion instead.

Note: If you don't find a matching solution or if it does not work right away, try the manual conversion (see below) because most likely it will be quicker than trying to figure out what's wrong with someone else's patched files.


Manual conversion of the solution/projects

If you can not find a set of project files (see above), there are instructions available how to manually do it: Converting_project_files_for_MSVS2005 (this step will take about 5-15 minutes, depending on how proficient you are using VS2005).




Workarounds

There are more compatibility problems between VS2003 and VS2005. You need the following code edits.

test project/crash_logger/updater

For whatever reason, the test project doesn't work under VS2005. Workaround is to disable it as follows: Right click on the test and choose Unload Project.

If you do not plan to create a full download build, you can exclude the win_crash_logger and win_updater from newview's project dependencies and unload them also. But be careful with unloading these projects without removing them from the dependencies, because I have seen VS2005 act highly erratic while linking then project when I tried this.

QuickTime removal

If you don't want to get Apple QuickTime SDK, you can disable it as follows:

  • linden\indra\llcommon\llpreprocessor.h - near line 58 (the line below #elif LL_WINDOWS)
--50: #define LL_QUICKTIME_ENABLED	1
++50: #define LL_QUICKTIME_ENABLED	0
  LearCale: this appears to be in linden\indra\llmedia\llmediabase.h as of client 1.20
  • Pick ReleaseNoOpt in the Solution Configurations drop-down box beside the green arrow under the tool bar, and do the followings on the Solution Explorer frame:
  • Click newview to select it alone.
    • Choose Properties.
    • Under Configuration Properties > Linker > Input, click Additional Dependencies on the right to show a button labeled "..." on it at the very right on the line, then click the ... button.
    • Scroll down the list to find qtmlclient.lib. Delete this single line.
    • Click OK to close the "Additional Dependencies" dialog, then click OK again to close the "newview Property Pages" dialog box.
  • Pick ReleaseForDownload in the Solution Configurations drop-down box. Click newview to select it alone and do the same thing again.




Ready, Set, Build!

Building

  • Build either ReleaseNoOpt (for debugging) or ReleaseForDownload (for production code).
  • To do this, pick either in the Solution Configurations drop-down box beside the green arrow under the tool bar.
  • Make sure newview is set as the startup project (otherwise set from newview's right-click menu).
  • Select Build-Menu > Build Solution or press F7.
  • newview_noopt.exe will be built in linden\indra\newview\ReleaseNoOpt or SecondLife.exe will be linden\indra\newview\ReleaseForDownload.
  • Note, that if you are building with MSVS2005 Express, you will be using the linden\indra\indra_complete\indra_complete.sln as detailed at Converting_project_files_for_MSVS2005