aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan Froyd <froydnj@gmail.com>2017-09-13 14:15:30 -0400
committerNathan Froyd <froydnj@gmail.com>2017-09-13 14:41:21 -0400
commit6d9309849181a795134546ca604de6dd197af10e (patch)
treea227d739001b304b97a6872f653bcaacddf6c702
parente50341d4a91beded42bdcdf37bfb8a7e53070234 (diff)
downloadservo-6d9309849181a795134546ca604de6dd197af10e.tar.gz
servo-6d9309849181a795134546ca604de6dd197af10e.zip
align selectors's features in geckolib and stylo_tests
Gecko would like to turn on the stylo layout tests (tests/unit/stylo) in Gecko CI. The plan for doing this is to add the tests as a dev-dependency of Gecko's main Rust library, from which `cargo test` can be run in the usual fashion. Doing this creates problems for normal development, because the stylo tests need the `selectors` crate to be compiled with `gecko_like_types`, whereas the `geckolib` crate does not. So if we compile `geckolib` in a non-test build configuration, the `selectors` crate is compiled without `gecko_like_types`...but then if we compile `geckolib` in a test build configuration, cargo will evict the previous rlib for the `selectors` crate and replace it with a `selectors` compiled with gecko_like_types. And then compiling `geckolib` in a non-test configuration repeats the process, and so forth. Needless to say, this is highly annoying behavior. It is due to a bug in cargo: https://github.com/rust-lang/cargo/issues/3923 but it's not known when that bug will get fixed. In the meantime, we can just make sure that geckolib's `selectors` is compiled with the same features as the `selectors` crate in the stylo tests.
-rw-r--r--ports/geckolib/Cargo.toml6
1 files changed, 5 insertions, 1 deletions
diff --git a/ports/geckolib/Cargo.toml b/ports/geckolib/Cargo.toml
index 082808a713a..fd8b77ce697 100644
--- a/ports/geckolib/Cargo.toml
+++ b/ports/geckolib/Cargo.toml
@@ -22,7 +22,11 @@ log = {version = "0.3.5", features = ["release_max_level_info"]}
malloc_size_of = {path = "../../components/malloc_size_of"}
nsstring_vendor = {path = "../../components/style/gecko_bindings/nsstring_vendor"}
parking_lot = "0.4"
-selectors = {path = "../../components/selectors"}
+# Turn on gecko_like_types because of so that crates which use this
+# crate and also dev-depend on stylo_tests get reasonable behavior
+# during rebuilds. See https://github.com/rust-lang/cargo/issues/3923
+# for the cargo problem behind this.
+selectors = {path = "../../components/selectors", features = ["gecko_like_types"]}
servo_arc = {path = "../../components/servo_arc"}
style = {path = "../../components/style", features = ["gecko"]}
style_traits = {path = "../../components/style_traits"}