LLQtWebKit Mac OSX Build Instructions
Revision as of 07:20, 18 October 2010 by Aleric Inglewood (talk | contribs) (Add remark about -opensource -confirm-license configure options.)
Introduction
These are instructions for building the Qt/WebKit library (LLQtWebKit) on Mac OS X as well as the test applications (testGL and uBrowser). They have been tested using XCode 3.2.1 on Mac OS X 10.6.2.
Set up
Create a directory you'll use for the build. This can be anywhere you like, but for the purposes of the example I'll use ~/llqtwebkit.
Acquire LLQtWebKit source code
- In a Web browser, navigate to http://hg.secondlife.com/llqtwebkit/
- Select "get source->zip" from menu
- A zip file of the source code will be downloaded
- Extract the files in the zip into
~/llqtwebkit
(this should create the directory~/llqtwebkit/llqtwebkit
Build the open source version of Qt using XCode
Acquire the Qt 4.6 source with our patches
- Our clone of Qt is available here: http://gitorious.org/+lindenqt/qt/lindenqt
- Download the source by clicking on the "lindenqt" branch under "Branches" and then using the "download as tar.gz" link on the right hand side of the page
- Alternately, if you prefer you can clone the repository with git using the "clone" link on the page -- details of this are left as an exercise to the reader
- Extract the tarball into
~/llqtwebkit
- This may take some as the archive contains a lot of files
- You should now have a directory
~/llqtwebkit/qt-lindenqt
- Open a terminal window and cd to
~/llqtwebkit/qt-lindenqt
directory - run the following commands (we'll use the QTDIR variable in later steps)
export QTDIR=`pwd` export PATH=$QTDIR/bin:$PATH
Configure Qt
- In the terminal window, make sure you're still in the directory
~/llqtwebkit/qt-lindenqt
- Run the following command:
./configure -platform macx-g++40 -no-framework -fast -no-qt3support -prefix $PWD -static -release -no-xmlpatterns -no-phonon -universal -sdk /Developer/SDKs/MacOSX10.4u.sdk/ -nomake examples -nomake demos -nomake docs -nomake translations
- When you are asked if you want to use the Commercial or Open Source version type
o
to select Open Source and press <enter> - When the license agreement appears, if you agree type
yes
<enter> - This operation takes around 10-15 minutes on a typical development system
Note you can also add -opensource -confirm-license to automatically select and accept the LGPL.
Build Qt
- In the terminal window, make sure you're still in the directory
~/llqtwebkit/qt-lindenqt
- Run this command:
make
- If you're on a multicore machine, you can speed up the build substantially by using the '-j' argument to make, which will cause it to build files in parallel. For example, on a 4-core system, I use:
make -j4
- This takes a little over an hour on a 4-core Mac Pro.
- After building Qt the built libraries will be in
~/llqtwebkit/qt-lindenqt/lib
- For me, the full build fails with "duplicate symbol _sqlite3_status", but at that point it has already built most of what we need.
- The one additional piece we need is the JavaScriptCore library in Webkit. To build that do the following:
cd $QTDIR/src/3rdparty/webkit/JavaScriptCore make
Build LLQtWebKit
- In the terminal window, change to the directory
~/llqtwebkit/llqtwebkit
- Create a symlink to QTDIR in this directory (this allows the Xcode project to find it easily):
ln -s $QTDIR QTDIR
- Open the
llqtwebkit.xcodeproj
project with Xcode - Build the "Release" configuration of the "llqtwebkit" target
- The output of the build is
~/llqtwebkit/llqtwebkit/build/Release/libllqtwebkit.dylib
- to build the Second Life viewer, this library needs to be copied to
{VIEWERSRC}/libraries/universal-darwin/lib_release/
and llqtwebkit.h needs to go in{VIEWERSRC}/libraries/include/
- to build the Second Life viewer, this library needs to be copied to
Optional: build testgl
testgl is a simple example that uses the OpenGL GLUT toolkit to open a window, and renders web pages to an OpenGL texture using llqtwebkit.
- First, build the llqtwebkit library as described above
- In Terminal, go into the
tests/testgl/
directory - Create a symlink to your built version of the llqtwebkit library:
ln -s ../../build/Release/libllqtwebkit.dylib
- run the following commands:
qmake make
- this should create a 'testgl' binary, which you can run from the terminal window like so:
./testgl
Optional: build ubrowser
ubrowser is a more complex example that uses the GLUI toolkit to render web pages to OpenGL textures and apply them to various 3d models.
- First, build the llqtwebkit library as described above
- Open the Xcode project at
tests/ubrowser/ubrowser.xcodeproj
- Build and run using the Xcode UI