mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-28 20:55:39 +00:00
8faed3b8cb
glfw3 is in the `homebrew/versions` keg. ```bash ➜ ~ brew install glfw3 Error: No available formula for glfw3 Searching formulae... Searching taps... homebrew/versions/glfw3 ``` Simplest fix: ```bash ➜ ~ brew install homebrew/versions/glfw3 Cloning into '/usr/local/Library/Taps/homebrew/homebrew-versions'... remote: Counting objects: 2495, done. remote: Total 2495 (delta 0), reused 0 (delta 0) Receiving objects: 100% (2495/2495), 820.05 KiB | 462.00 KiB/s, done. Resolving deltas: 100% (1433/1433), done. Checking connectivity... done. Tapped 161 formulae ==> Installing glfw3 from homebrew/homebrew-versions ==> Downloading https://downloads.sourceforge.net/project/glfw/glfw/3.0.4/glfw-3.0.4.tar.bz2 Already downloaded: /Library/Caches/Homebrew/glfw3-3.0.4.tar.bz2 ==> Patching patching file CMakeLists.txt Hunk #1 succeeded at 370 with fuzz 1 (offset 13 lines). ==> cmake -DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/glfw3/3.0.4 -DCMAKE_BUILD_TYPE=None -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_VERBOSE_MAKEFILE=ON -Wno-dev -DGLFW_USE_CHDIR=TRUE -DGLFW_USE_MENUBAR=TRUE -DBUIL ==> make install 🍺 /usr/local/Cellar/glfw3/3.0.4: 11 files, 220K, built in 9 seconds ``` Users who have `homebrew/versions` already tapped won't notice this, since after tapping `homebrew/versions` keg shouldn't notice, since after tapping, the library is available using just ` brew install glfw3`. ```bash ➜ ~ brew tap homebrew/versions ➜ ~ brew install glfw3 ==> Installing glfw3 from homebrew/homebrew-versions ==> Downloading https://downloads.sourceforge.net/project/glfw/glfw/3.0.4/glfw-3.0.4.tar.bz2 Already downloaded: /Library/Caches/Homebrew/glfw3-3.0.4.tar.bz2 ==> Patching patching file CMakeLists.txt Hunk #1 succeeded at 370 with fuzz 1 (offset 13 lines). ==> cmake -DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/glfw3/3.0.4 -DCMAKE_BUILD_TYPE=None -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_VERBOSE_MAKEFILE=ON -Wno-dev -DGLFW_USE_CHDIR=TRUE -DGLFW_USE_MENUBAR=TRUE -DBUIL ==> make install 🍺 /usr/local/Cellar/glfw3/3.0.4: 11 files, 220K, built in 9 seconds ``` Source-Repo: https://github.com/servo/servo Source-Revision: b9dcaa34c32333ae16da7a5f11835c7d905da4d3
122 lines
3.1 KiB
Markdown
122 lines
3.1 KiB
Markdown
# The Servo Parallel Browser Project
|
|
|
|
Servo is a prototype web browser engine written in the
|
|
[Rust](https://github.com/mozilla/rust) language. It is currently developed on
|
|
64bit OS X, 64bit Linux, and Android.
|
|
|
|
Servo welcomes contribution from everyone. See
|
|
[`CONTRIBUTING.md`](CONTRIBUTING.md) for help getting started.
|
|
|
|
## Prerequisites
|
|
|
|
On OS X (homebrew):
|
|
|
|
``` sh
|
|
brew install automake pkg-config python cmake
|
|
pip install virtualenv
|
|
```
|
|
|
|
On OS X (MacPorts):
|
|
|
|
``` sh
|
|
sudo port install python27 py27-virtualenv cmake
|
|
```
|
|
|
|
On Debian-based Linuxes:
|
|
|
|
``` sh
|
|
sudo apt-get install curl freeglut3-dev \
|
|
libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \
|
|
msttcorefonts gperf g++ cmake python-virtualenv \
|
|
libssl-dev
|
|
```
|
|
|
|
On Fedora:
|
|
|
|
``` sh
|
|
sudo yum install curl freeglut-devel libtool gcc-c++ libXi-devel \
|
|
freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \
|
|
fontconfig-devel cabextract ttmkfdir python python-virtualenv expat-devel \
|
|
rpm-build openssl-devel cmake
|
|
pushd .
|
|
cd /tmp
|
|
wget http://corefonts.sourceforge.net/msttcorefonts-2.5-1.spec
|
|
rpmbuild -bb msttcorefonts-2.5-1.spec
|
|
sudo yum install $HOME/rpmbuild/RPMS/noarch/msttcorefonts-2.5-1.noarch.rpm
|
|
popd
|
|
```
|
|
|
|
On Arch Linux:
|
|
|
|
``` sh
|
|
sudo pacman -S base-devel git python2 python2-virtualenv mesa ttf-font cmake
|
|
```
|
|
|
|
Cross-compilation for Android:
|
|
|
|
Pre-installed Android tools are needed. See wiki for
|
|
[details](https://github.com/mozilla/servo/wiki/Building-for-Android)
|
|
|
|
## The Rust compiler
|
|
|
|
Servo uses a snapshot Rust compiler to build itself. This is normally a
|
|
specific revision of Rust upstream, but sometimes has a backported patch or
|
|
two. If you'd like to know the snapshot revision of Rust which we use, see
|
|
`./rust-snapshot-hash`.
|
|
|
|
## Building
|
|
|
|
Servo is built with Cargo, the Rust package manager. We also use Mozilla's
|
|
Mach tools to orchestrate the build and other tasks.
|
|
|
|
### Normal build
|
|
|
|
``` sh
|
|
git clone https://github.com/servo/servo
|
|
cd servo
|
|
./mach build
|
|
./mach run tests/html/about-mozilla.html
|
|
```
|
|
|
|
### Building for Android target
|
|
|
|
``` sh
|
|
git clone https://github.com/servo/servo
|
|
cd servo
|
|
ANDROID_TOOLCHAIN=/path/to/toolchain ANDROID_NDK=/path/to/ndk PATH=$PATH:/path/to/toolchain/bin ./mach build --android
|
|
cd ports/android
|
|
ANDROID_SDK=/path/to/sdk make install
|
|
```
|
|
|
|
Rather than setting the `ANDROID_*` environment variables every time, you can
|
|
also create a `.servobuild` file and then edit it to contain the correct paths
|
|
to the Android SDK/NDK tools:
|
|
|
|
```
|
|
cp servobuild.example .servobuild
|
|
# edit .servobuild
|
|
```
|
|
|
|
## Running
|
|
|
|
### Commandline Arguments
|
|
|
|
- `-p INTERVAL` turns on the profiler and dumps info to the console every
|
|
`INTERVAL` seconds
|
|
- `-s SIZE` sets the tile size for rendering; defaults to 512
|
|
- `-z` disables all graphical output; useful for running JS / layout tests
|
|
|
|
### Keyboard Shortcuts
|
|
|
|
- `Ctrl-L` opens a dialog to browse to a new URL (Mac only currently)
|
|
- `Ctrl--` zooms out
|
|
- `Ctrl-=` zooms in
|
|
- `Backspace` goes backwards in the history
|
|
- `Shift-Backspace` goes forwards in the history
|
|
- `Esc` exits servo
|
|
|
|
## Developing
|
|
|
|
There are lots of mach commands you can use. You can list them with `./mach
|
|
--help`.
|