The Servo Browser Engine
Find a file
Brian J. Burg 1095c9e4ff Rewrite the layout tree to use tandem flow/box trees. Flows are
responsible for determining layout positioning based on formatting
context (block, inline, absolute, etc), while boxes are relatively
dumb, responsible only for reporting content-specific metrics to the
coordinating flow context, and creating display lists of oneself.

This design is experimental and may be axed in favor of a
traditional, single-tree layout data structure if it doesn't work out.
2012-09-17 10:53:12 -07:00
src Rewrite the layout tree to use tandem flow/box trees. Flows are 2012-09-17 10:53:12 -07:00
.gitignore Rewrite configure script to be more robust; move autogen.sh logic into configure script. 2012-09-04 16:17:36 -07:00
.gitmodules Add the rust-io-surface submodule. Not hooked up to the build yet. 2012-08-30 19:27:04 -07:00
configure Rewrite configure script to be more robust; move autogen.sh logic into configure script. 2012-09-04 16:17:36 -07:00
Info.plist Build an app bundle on OS X 2012-04-23 17:43:45 -07:00
Makefile.in Fix a build system typo and update submodules to correct linkage directives 2012-09-13 18:53:07 -07:00
README.md Update the README to not mention autogen.sh and manual git submodule updating 2012-09-04 16:26:54 -07:00

The Servo Parallel Browser Project

Servo is a web browser engine written in the Rust language. It is currently developed on OS X and Linux.

Note: Servo requires a bleeding-edge version of Rust. Sometimes this means working off of the Rust master branch; sometimes this means the incoming branch. Because Rust is still undergoing major changes the Servo build is very often broken. Somebody in #servo or #rust will usually know what magic is required to make Servo build on any given day. Good luck!

Prerequisites

On OS X (homebrew):

brew install https://raw.github.com/Homebrew/homebrew-versions/master/autoconf213.rb
brew install sdl cairo

On OS X (MacPorts):

sudo port install autoconf213 libsdl cairo +x11 +quartz

On Debian-based Linuxes:

sudo apt-get install libsdl1.2-dev libcairo2-dev libpango1.0-dev autoconf2.13 freeglut3-dev

Building

git clone git://github.com/mozilla/servo.git
cd servo
mkdir -p build && cd build
../configure
make check && make
./servo ../src/test/test.html

Build Workarounds

MacPorts

Currently, the Makefile for the rust-azure submodule has a hardcoded library path that assumes cairo has been installed with homebrew. If you have installed with MacPorts, you will need to change the library path to cairo. The following command should apply a patch with the fix:

cd src/rust-azure && git diff 1e811d44^1 1e811d44 | patch -p1

This problem should go away once Issue #40 is fixed, and an externally-built cairo is no longer needed.