This memo explains how to build pango SL viewer snapshot 20081031 version on Windows using Visual C++ 2005 Express. This instruction assumes you have some experience on building version 1.21 series of SL viewer on Windows. 0. Prepare for the standard SL viewer development environment as usual. 1. Download and expand the SL viewer 1.21.6 source, library, and artwork bundles. http://secondlife.com/developers/opensource/downloads/2008/10/slviewer-src-viewer_1-21-r99587.zip http://secondlife.com/developers/opensource/downloads/2008/10/slviewer-win32-libs-viewer_1-21-r99587.zip http://secondlife.com/developers/opensource/downloads/2008/10/slviewer-artwork-viewer_1-21-r99587.zip You also need to download fmod library, and copy necessary files to the source tree as always. 2. cd to the directory linden\indra\ and run develop.py to configure the source tree as: python develop.py -GVC80 --unattended 3. Apply the patch snapshot-20081031.diff attached to JIRA ssue VWR-10131, included in the zip archive: http://jira.secondlife.com/secure/attachment/20063/snapshot-20081031.zip (The README file included in the above zip is for Linux.) 4. Download developer packages for pango, glib, and fontconfig from GTK web site, and copy files from them into the viewer source tree as follows: 4.1 Pango (1) Download and expand the following zip archive: http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.22/pango-dev_1.22.0-1_win32.zip (2) Copy a directory include/pango-1.0/ to linden\libraries\include\ along with the contents of the directory. (3) Copy two files pango-1.0.lib and pangoft2-1.0.lib under lib directory in the zip archive to both of the following two directories: linden\libraries\i686-win32\debug\ and linden\libraries\i686-win32\release\ 4.2 Glib (1) Download and expand the following zip archive: http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.14/gtk+-dev_2.14.4-1_win32.zip (2) Copy a directory include/glib-2.0/ to linden\libraries\include\ along with the contents of the directory. (3) Copy a file lib/glib-2.0/include/glibconfig.h to the directory linden\libraries\i686-win32\include\ (4) Copy all *.lib files in the directory lib to both of the following two directories: linden\libraries\i686-win32\debug\ and linden\libraries\i686-win32\release\ 4.3 FontConfig (1) Download and expand the following zip archive: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/fontconfig-dev-2.4.2-tml-20071015.zip (2) Copy a directory include/fontconfig to linden\libraries\include\ along with its contents. (3) Copy a file lib/fontconfig.lib to both of the following two directories: linden\libraries\i686-win32\debug\ and linden\libraries\i686-win32\release\ 5. Configure the source tree again, with the same command as before: python develop.py -GVC80 --unattended 6. Compile the source with Visual Studio (or VC++ Express) IDE. (1) Open the solution file created by cmake with Visual Studio or VC++ Express IDE. It should be found at linden\indra\build-VC80\SecondLife.sln (2) On the Solution view, right click on the "Secondlife-bin" project and choose "Set as Startup Project" (3) On the Configuration drop down box, choose "RelWithDebInfo". (4) Build the solution as usual. You will get an executable at linden\indra\build-VC80\newview\relwithdebinfo\secondlife-bin.exe 7. Run the compiled viewer (1) Download and install the GTK binary package. There are several such packages available. Use "GTK+ 2.10 Windows installer" available on "Old versions" page in GIMP for Windwos web site at http://downloads.sourceforge.net/gimp-win/gtk%2B-2.10.13-setup.exe (Because it is compatible with the developer packages explained above and it is the version I'm using.) The installer suggests to install files in C:\Program Files\Common Files\GTK\2.0. Let the installer do so. The installer also tries to update system PATH environment varaiable to include the bin subdirectory in the above directory. Let it do so. The installer asks you some options. You don't need "Windows Engine" and "Translations" for the purpose of this pango SL viewer. (Installing them should be no harm, though.) (2) Download and install the Second Life viewer 1.21.6 binary distribution available on the Second Life official web site. (3) Copy the secondlife-bin.exe above to the directory where the secondlife.exe resides. If you installed the Second Life viewer in the default directory, it is C:\Program Files\SecondLife\ (4) Start the secondlife-bin.exe --- A note for experienced open source programmers on Windows: All the GTK/Pango related *.lib and *.dll files installed in the above process are ones compiled using MinGW gcc against msvcrt.dll. The secondlife-bin.exe we build with VC2005 uses MSVCR80.DLL. It is generally dangerous to mix different versions of MSVCR DLLs in a single process. However, it is possible to use them at a same time as long as they are used _separately_. I believe my patch does the required separation properly. Please let me know if you find any problem caused by this mixing of MSVC runtime DLLs.