Bug 1319199 - Update webrender_bindings to opt-out of freetype. r=gfx?

Since webrender now re-exports the servo-freetype-sys option as a feature,
we can opt out of having that in webrender_bindings and use the webrender as
unmodified.

This patch also updates the README as the in-tree webrender is now exactly
the same as upstream webrender, which simplifies future updates to webrender.

MozReview-Commit-ID: 6JBtgjWIcn2
This commit is contained in:
Kartikaya Gupta 2016-11-22 09:52:56 -05:00
parent e59d0bfeec
commit 59eaa36242
2 changed files with 22 additions and 28 deletions

View File

@ -35,31 +35,21 @@ What if you have to make changes to webrender itself?
1) Update your graphics branch checkout to the latest code on the
graphics branch
2) Separately, check out the webrender repo to the last version we
used in-tree (right now it's
git:b2a15e8b948a7c5db7f5fe7fbfa6fe4c8dda4a0b)
3) Do a diff between the webrender repo and the stuff we have in-tree
to see what the differences are and make a note. The only differences (if any)
should be in the Cargo.toml file.
4) Update the webrender repo to the version you want
5) Copy over the webrender files into gfx/webrender (and
gfx/webrender_traits) but make sure you keep the changes from step 3.
6) Commit your changes to the graphics branch locally
7) Run |mach vendor rust| to update the rust dependencies in third_party/rust
8) Commit the vendored changes locally
9) Build and test. You may need to make changes in bindings.rs or on
the C++ side depending on what changed in webrender. This can
potentially be quite tricky if you don't fully understand the API
changes on the webrender side. In this step, try to not use your new
features yet, just get the build working with the minimal changes.
10) Update the git revision in this README.webrender file, step (2) above
11) Commit the changes locally from step 9, and push everything to the
graphics branch.
12) Now you have an update webrender with the new features you wanted,
so you can write gecko code against them.
2) Check out and update the webrender repo to the version you want
3) Copy over the webrender and webrender_traits folders into gfx/.
4) If you need to modify webrender_bindings/Cargo.toml to include or remove
features, do so now.
4) Commit your changes to the graphics branch locally
5) Run |mach vendor rust| to update the rust dependencies in third_party/rust
6) Commit the vendored changes locally
7) Build and test. You may need to make changes in bindings.rs or on
the C++ side depending on what changed in webrender. This can
potentially be quite tricky if you don't fully understand the API
changes on the webrender side. In this step, try to not use your new
features yet, just get the build working with the minimal changes.
8) Commit the changes locally from step 7, and push everything to the
graphics branch.
9) Now you have an update webrender with the new features you wanted,
so you can write gecko code against them.
Yes, this is very painful. Once we upstream all the webrender changes
we have in our local tree, this will become simpler because it will remove
step 2-3, and simplify step 5 to a copy. Step 9 is likely going to
remain tricky if there are incompatible API changes on the WR side,
hopefully those will be kept to a minimum.
Yes, this is somewhat painful. It used to be worse. :)

View File

@ -5,12 +5,16 @@ authors = ["The Mozilla Project Developers"]
license = "MPL-2.0"
[dependencies]
webrender = {path = "../webrender"}
webrender_traits = {path = "../webrender_traits"}
euclid = "0.10"
app_units = "0.3"
gleam = "0.2"
[dependencies.webrender]
path = "../webrender"
default-features = false
features = ["codegen"]
[target.'cfg(target_os = "macos")'.dependencies]
core-foundation = "0.2.2"