Firstly, there is no debug version of OgreMainStatic.lib, so I had to
tell it to look in the release folder.
Boost gives lots of stupid warnings about not recognising this
compiler version, so I commented out that line of code that generates
the warning when the Visual C++ compiler version is higher than a
certain number. I don't think that is a problem though.
Boost also gives a #$%^#@ error about mixing the static and dll
versions being a bad idea. I have no idea how to fix that, so I just
commented out the error generating line (it is an artificially
generated error).
I fixed a couple of other things too, but I can't remember what exactly.
I managed to get everything to compile now, but it won't link. How on
earth am I supposed to debug linker errors?? (This is why I program in
Delphi.)
Anyway, before I can do anything with RexViewer, I need to be at least
able to build it.
So how do I build the darn thing? And how did people build it in the
first place? They certainly didn't do it with the included code and
project files.
For reference, here are the compiling instructions that are currently in
the svn:
Compiling the realXtend viewer 0.3 (on Windows)
-----------------------------------------------
Currently, up-to-date project/solution files exist for Visual Studio 2005
only.
Either Visual Studio 2005 or Visual Studio 2005 Express can be used to
compile
the viewer. For Express, make sure you have the Platform SDK and DirectX SDK
installed from Microsoft's website and that the development enviroment has
been
configured to use their library & include directories.
Because the realXtend viewer is based on the Second Life client, Linden Labs'
documentation on compiling can be helpful too, see
https://wiki.secondlife.com/wiki/Get_source_and_compile
1. Required other tools
-----------------------
Compiling requires Python. Download & install from
http://www.python.org/download/
2. Preparing enviroment variables
---------------------------------
Set the enviroment variable REXVIEWER_SRCDIR to point to the rexviewer
checkout
directory root. This is for "copyrex.bat" (referenced later on) to work
correctly.
3. Proprietary libraries & includes
-----------------------------------
Some proprietary libraries are left out of the viewer source. These need
to be
downloaded separately and placed to the correct directories:
3.1 OpenGL headers
The following files need to be downloaded and placed into
linden\libraries\include\GL directory of the viewer source:
glext.h
glxext.h
wglext.h
They can be downloaded from http://oss.sgi.com/projects/ogl-sample/sdk.html
Alternatively, if the link is down, you can try
http://www.opengl.org/registry/api/glext.h
http://www.opengl.org/registry/api/wglext.h
http://www.opengl.org/registry/api/glxext.h
3.2 Quicktime
Download the Quicktime Windows SDK from
http://developer.apple.com/quicktime/download/ (you need to register)
Create a subdirectory "quicktime" to linden\libraries\i686-win32\include, and
copy all header files (.h) from the SDK there, including the
CoreFoundation and
GNUCompatibility subdirectories.
Copy the file QTMLClient.lib from the SDK to
linden\libraries\i686-win32\lib_release &
linden\libraries\i686-win32\lib_debug
3.3 Skype4COM.dll
Download Skype4COM.dll from https://developer.skype.com/Docs/Skype4COM/Start
Copy the DLL to a system directory (for example C:\Windows) and register it
using the following command in a command line prompt:
regsvr32 skype4com.dll
4. Compiling
------------
Open the solution file "indra_complete.sln" from linden\indra\indra_complete
directory.
Use the "ReleaseForDownload" configuration to compile the viewer.
Depending on your Cygwin version, the file indra.y in the lscript_compile_fb
subproject may produce errors. In that case, right-click it in Solution
Explorer
and select Properties -> Custom Build Step -> General. Check the command
line;
if the line "C:\cygwin\bin\mv.exe ytab.hpp ytab.h" fails, check what file
Bison
is producing instead of ytab.hpp, and modify the line accordingly.
5. Compiling the Avatar Generator
---------------------------------
After checking out the avatargenerator module from SVN, it should compile
pretty
much out-of-the-box by opening avatar_generator.sln from the checkout root
directory. Use "Release" configuration to run optimally.
6. Running & making installable packages
----------------------------------------
The batch file "copyrex.bat" in the root of the source exists to make a fresh
executable directory of the realXtend client after compiling, with all (but
only) the necessary files. When you execute it, it creates a subdirectory
"out"
and copies files (the enviroment variable REXVIEWER_SRCDIR needs to be
correctly
set).
After running copyrex.bat, you should be able to execute realXtend.exe
from the
"out" directory.
To use Avatar Generator successfully (so that it sees the same 3D models
etc. as
the viewer) it should be placed into a subdirectory "avatar_generator" within
"out" and have its "bin" and "data" directory trees copied there, ending
up with
a directory structure like this:
out
out\avatar_generator
out\avatar_generator\bin
out\avatar_generator\data
By using the Nullsoft installer system (NSIS) you can create an installer
package out of the "out" directory. The necessary installer script
(realxtend.nsi) & splash screen (splash.bmp) are in the root directory of the
realXtend viewer source.
Note that the Avatar Generator itself does not care of its directory name,
but
the installer script expects it to be found in the "avatar_generator"
subdirectory.
- Heikki / RealXtend developer.
A lot of the problems with compiling are related to the rex and other
LL-based viewers are due to the LL build system itself. Have you
compiled the SL viewer ever? If not you may find, the SL viewer build
instructions helpful.
http://wiki.secondlife.com/wiki/Get_source_and_compile
Basically my experience and advice is this: get all the sources for
the dependencies and build them yourself, boost, fmod, etc. Its extra
work, but well worth it when you're not scratching you head wondering
why its not linking or its having random crashes.
Rex guys -- given that build is one of the most critical parts of an
open source project, is there any way to make it easier to build the
rex platform?
Carl -- when you get the platform built, can you suggest changes that
should be made to help make your work easier?
Cheers,
No, we assume that we don't touch the LSL parser stuff, so the
parser-generation part is removed from the VS build, and it simply
uses precompiled parser code that's in the SVN. We used to have
trouble based on which cygwin version was installed on each
developer's machine :)
- Lasse / realXtend developer