This repository contains Rust bindings for SpiderMonkey for use with Servo.
The bindings are to the raw SpiderMonkey API, higher-level bindings are in the rust-mozjs repository.
Building
Under Linux:
Install Clang (at least version 3.9), for example in a Debian-based Linux:
sudo apt-get install clang-6.0
If you have more than one version of Clang installed, you can set the LIBCLANG_PATH
environment variable, for example:
export LIBCLANG_PATH=/usr/lib/clang/4.0/lib
Under Windows:
-
Follow the directions at https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Windows_Prerequisites
-
Open up a shell configured to use Visual Studio. This could be the one included with Visual Studio (e.g. Visual Studio 2017 / X64 Native Tools Command Prompt for VS 2017) or a shell in which you have run
"c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
- Set the
MOZTOOLS_PATH
environment variable to point to the tools from the Mozilla Build Package:
set MOZTOOLS_PATH=C:\mozilla-build\msys\bin;C:\mozilla-build\mozmake;C:\mozilla-build\yasm
- Download and install Clang for Windows (64 bit) from https://releases.llvm.org/download.html
and set the
LIBCLANG_PATH
environment variable to itslib
directory:
set LIBCLANG_PATH=C:\Program Files\LLVM\lib
You can now build and test the crate using cargo:
cargo build
cargo test
cargo build --features debugmozjs
cargo test --features debugmozjs
Upgrading
In order to upgrade to a new version of SpiderMonkey:
- Download the tarball corresponding to the desired mozilla-central commit from treeherder's SM-tc(pkg) job.
- Update
etc/COMMIT
. - Run
python3 ./etc/update.py path/to/tarball
.