mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Add ./mach build --with-layout-2020
… with corresponding `layout` and `layout_thread` crates, which for now do nothing.
This commit is contained in:
parent
c1e9347dee
commit
2b01c26aa5
19 changed files with 186 additions and 12 deletions
39
Cargo.lock
generated
39
Cargo.lock
generated
|
@ -2312,7 +2312,7 @@ version = "3.1.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "layout"
|
||||
name = "layout_2013"
|
||||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -2360,7 +2360,14 @@ dependencies = [
|
|||
]
|
||||
|
||||
[[package]]
|
||||
name = "layout_thread"
|
||||
name = "layout_2020"
|
||||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"style 0.0.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "layout_thread_2013"
|
||||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -2375,7 +2382,7 @@ dependencies = [
|
|||
"histogram 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"html5ever 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"ipc-channel 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"layout 0.0.1",
|
||||
"layout_2013 0.0.1",
|
||||
"layout_traits 0.0.1",
|
||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -2405,6 +2412,27 @@ dependencies = [
|
|||
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "layout_thread_2020"
|
||||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"gfx 0.0.1",
|
||||
"ipc-channel 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"layout_2020 0.0.1",
|
||||
"layout_traits 0.0.1",
|
||||
"metrics 0.0.1",
|
||||
"msg 0.0.1",
|
||||
"net_traits 0.0.1",
|
||||
"profile_traits 0.0.1",
|
||||
"script_layout_interface 0.0.1",
|
||||
"script_traits 0.0.1",
|
||||
"servo_geometry 0.0.1",
|
||||
"servo_url 0.0.1",
|
||||
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "layout_traits"
|
||||
version = "0.0.1"
|
||||
|
@ -2514,7 +2542,8 @@ dependencies = [
|
|||
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"ipc-channel 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"keyboard-types 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"layout_thread 0.0.1",
|
||||
"layout_thread_2013 0.0.1",
|
||||
"layout_thread_2020 0.0.1",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"mozangle 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"msg 0.0.1",
|
||||
|
@ -2759,7 +2788,7 @@ version = "0.0.1"
|
|||
dependencies = [
|
||||
"gfx_traits 0.0.1",
|
||||
"ipc-channel 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"layout 0.0.1",
|
||||
"layout_2013 0.0.1",
|
||||
"metrics 0.0.1",
|
||||
"msg 0.0.1",
|
||||
"profile_traits 0.0.1",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[package]
|
||||
name = "layout"
|
||||
name = "layout_2013"
|
||||
version = "0.0.1"
|
||||
authors = ["The Servo Project Developers"]
|
||||
license = "MPL-2.0"
|
||||
|
|
15
components/layout_2020/Cargo.toml
Normal file
15
components/layout_2020/Cargo.toml
Normal file
|
@ -0,0 +1,15 @@
|
|||
[package]
|
||||
name = "layout_2020"
|
||||
version = "0.0.1"
|
||||
authors = ["The Servo Project Developers"]
|
||||
license = "MPL-2.0"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
[lib]
|
||||
path = "lib.rs"
|
||||
test = false
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
style = {path = "../style", features = ["servo", "servo-layout-2020"]}
|
3
components/layout_2020/lib.rs
Normal file
3
components/layout_2020/lib.rs
Normal file
|
@ -0,0 +1,3 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
@ -1,5 +1,5 @@
|
|||
[package]
|
||||
name = "layout_thread"
|
||||
name = "layout_thread_2013"
|
||||
version = "0.0.1"
|
||||
authors = ["The Servo Project Developers"]
|
||||
license = "MPL-2.0"
|
||||
|
@ -23,7 +23,7 @@ gfx_traits = {path = "../gfx_traits"}
|
|||
histogram = "0.6.8"
|
||||
html5ever = "0.23"
|
||||
ipc-channel = "0.11"
|
||||
layout = {path = "../layout"}
|
||||
layout = {path = "../layout", package = "layout_2013"}
|
||||
layout_traits = {path = "../layout_traits"}
|
||||
lazy_static = "1"
|
||||
libc = "0.2"
|
||||
|
|
28
components/layout_thread_2020/Cargo.toml
Normal file
28
components/layout_thread_2020/Cargo.toml
Normal file
|
@ -0,0 +1,28 @@
|
|||
[package]
|
||||
name = "layout_thread_2020"
|
||||
version = "0.0.1"
|
||||
authors = ["The Servo Project Developers"]
|
||||
license = "MPL-2.0"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
[lib]
|
||||
name = "layout_thread"
|
||||
path = "lib.rs"
|
||||
|
||||
[dependencies]
|
||||
crossbeam-channel = "0.3"
|
||||
euclid = "0.19"
|
||||
gfx = {path = "../gfx"}
|
||||
ipc-channel = "0.11"
|
||||
layout = {path = "../layout_2020", package = "layout_2020"}
|
||||
layout_traits = {path = "../layout_traits"}
|
||||
metrics = {path = "../metrics"}
|
||||
msg = {path = "../msg"}
|
||||
net_traits = {path = "../net_traits"}
|
||||
profile_traits = {path = "../profile_traits"}
|
||||
script_layout_interface = {path = "../script_layout_interface"}
|
||||
script_traits = {path = "../script_traits"}
|
||||
servo_url = {path = "../url"}
|
||||
servo_geometry = {path = "../geometry"}
|
||||
webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
|
59
components/layout_thread_2020/lib.rs
Normal file
59
components/layout_thread_2020/lib.rs
Normal file
|
@ -0,0 +1,59 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use crossbeam_channel::{Receiver, Sender};
|
||||
use euclid::TypedSize2D;
|
||||
use gfx::font_cache_thread::FontCacheThread;
|
||||
use ipc_channel::ipc::{IpcReceiver, IpcSender};
|
||||
use metrics::PaintTimeMetrics;
|
||||
use msg::constellation_msg::TopLevelBrowsingContextId;
|
||||
use msg::constellation_msg::{BackgroundHangMonitorRegister, PipelineId};
|
||||
use net_traits::image_cache::ImageCache;
|
||||
use profile_traits::{mem, time};
|
||||
use script_traits::LayoutMsg as ConstellationMsg;
|
||||
use script_traits::{ConstellationControlMsg, LayoutControlMsg};
|
||||
use servo_geometry::DeviceIndependentPixel;
|
||||
use servo_url::ServoUrl;
|
||||
use std::sync::atomic::AtomicBool;
|
||||
use std::sync::Arc;
|
||||
|
||||
pub struct LayoutThread;
|
||||
|
||||
impl layout_traits::LayoutThreadFactory for LayoutThread {
|
||||
type Message = script_layout_interface::message::Msg;
|
||||
|
||||
#[allow(unused)]
|
||||
fn create(
|
||||
id: PipelineId,
|
||||
top_level_browsing_context_id: TopLevelBrowsingContextId,
|
||||
url: ServoUrl,
|
||||
is_iframe: bool,
|
||||
chan: (Sender<Self::Message>, Receiver<Self::Message>),
|
||||
pipeline_port: IpcReceiver<LayoutControlMsg>,
|
||||
background_hang_monitor: Box<dyn BackgroundHangMonitorRegister>,
|
||||
constellation_chan: IpcSender<ConstellationMsg>,
|
||||
script_chan: IpcSender<ConstellationControlMsg>,
|
||||
image_cache: Arc<dyn ImageCache>,
|
||||
font_cache_thread: FontCacheThread,
|
||||
time_profiler_chan: time::ProfilerChan,
|
||||
mem_profiler_chan: mem::ProfilerChan,
|
||||
content_process_shutdown_chan: Option<IpcSender<()>>,
|
||||
webrender_api_sender: webrender_api::RenderApiSender,
|
||||
webrender_document: webrender_api::DocumentId,
|
||||
paint_time_metrics: PaintTimeMetrics,
|
||||
busy: Arc<AtomicBool>,
|
||||
load_webfonts_synchronously: bool,
|
||||
initial_window_size: TypedSize2D<u32, DeviceIndependentPixel>,
|
||||
device_pixels_per_px: Option<f32>,
|
||||
dump_display_list: bool,
|
||||
dump_display_list_json: bool,
|
||||
dump_style_tree: bool,
|
||||
dump_rule_tree: bool,
|
||||
relayout_event: bool,
|
||||
nonincremental_layout: bool,
|
||||
trace_layout: bool,
|
||||
dump_flow_tree: bool,
|
||||
) {
|
||||
}
|
||||
}
|
|
@ -20,6 +20,8 @@ energy-profiling = ["profile_traits/energy-profiling"]
|
|||
profilemozjs = ["script/profilemozjs"]
|
||||
googlevr = ["webvr/googlevr"]
|
||||
js_backtrace = ["script/js_backtrace"]
|
||||
layout-2013 = ["layout_thread_2013"]
|
||||
layout-2020 = ["layout_thread_2020"]
|
||||
max_log_level = ["log/release_max_level_info"]
|
||||
native-bluetooth = ["bluetooth/native-bluetooth"]
|
||||
no_wgl = ["canvas/no_wgl"]
|
||||
|
@ -53,7 +55,8 @@ gfx = {path = "../gfx"}
|
|||
gleam = "0.6"
|
||||
ipc-channel = "0.11"
|
||||
keyboard-types = "0.4"
|
||||
layout_thread = {path = "../layout_thread"}
|
||||
layout_thread_2013 = {path = "../layout_thread", optional = true}
|
||||
layout_thread_2020 = {path = "../layout_thread_2020", optional = true}
|
||||
log = "0.4"
|
||||
msg = {path = "../msg"}
|
||||
net = {path = "../net"}
|
||||
|
|
20
components/servo/build.rs
Normal file
20
components/servo/build.rs
Normal file
|
@ -0,0 +1,20 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
fn main() {
|
||||
let layout_2013 = std::env::var_os("CARGO_FEATURE_LAYOUT_2013").is_some();
|
||||
let layout_2020 = std::env::var_os("CARGO_FEATURE_LAYOUT_2020").is_some();
|
||||
|
||||
if !(layout_2013 || layout_2020) {
|
||||
error("Must enable one of the `layout-2013` or `layout-2020` features.")
|
||||
}
|
||||
if layout_2013 && layout_2020 {
|
||||
error("Must not enable both of the `layout-2013` or `layout-2020` features.")
|
||||
}
|
||||
}
|
||||
|
||||
fn error(message: &str) {
|
||||
print!("\n\n Error: {}\n\n", message);
|
||||
std::process::exit(1)
|
||||
}
|
|
@ -21,6 +21,7 @@ use_bindgen = ["bindgen", "regex", "toml"]
|
|||
servo = ["serde", "style_traits/servo", "servo_atoms", "servo_config", "html5ever",
|
||||
"cssparser/serde", "encoding_rs", "malloc_size_of/servo", "arrayvec/use_union",
|
||||
"servo_url", "string_cache", "crossbeam-channel", "to_shmem/servo", "servo_arc/servo"]
|
||||
"servo-layout-2020" = []
|
||||
gecko_debug = []
|
||||
gecko_refcount_logging = []
|
||||
gecko_profiler = []
|
||||
|
|
|
@ -186,6 +186,7 @@ def linux_tidy_unit_docs():
|
|||
./mach test-unit
|
||||
./mach package --dev
|
||||
./mach build --dev --features canvas2d-raqote
|
||||
./mach build --dev --features layout-2020
|
||||
./mach build --dev --libsimpleservo
|
||||
./mach test-tidy --no-progress --self-test
|
||||
|
||||
|
|
|
@ -34,6 +34,8 @@ egl = ["libservo/egl"]
|
|||
energy-profiling = ["libservo/energy-profiling"]
|
||||
debugmozjs = ["libservo/debugmozjs"]
|
||||
js_backtrace = ["libservo/js_backtrace"]
|
||||
layout-2013 = ["libservo/layout-2013"]
|
||||
layout-2020 = ["libservo/layout-2020"]
|
||||
max_log_level = ["log/release_max_level_info"]
|
||||
native-bluetooth = ["libservo/native-bluetooth"]
|
||||
profilemozjs = ["libservo/profilemozjs"]
|
||||
|
|
|
@ -16,6 +16,8 @@ bench = false
|
|||
canvas2d-azure = ["simpleservo/canvas2d-azure"]
|
||||
canvas2d-raqote = ["simpleservo/canvas2d-raqote"]
|
||||
egl = ["simpleservo/egl"]
|
||||
layout-2013 = ["simpleservo/layout-2013"]
|
||||
layout-2020 = ["simpleservo/layout-2020"]
|
||||
|
||||
[dependencies]
|
||||
libservo = { path = "../../components/servo", features = ["no_static_freetype"] }
|
||||
|
|
|
@ -34,6 +34,8 @@ egl = ["libservo/egl"]
|
|||
energy-profiling = ["libservo/energy-profiling"]
|
||||
googlevr = ["libservo/googlevr"]
|
||||
js_backtrace = ["libservo/js_backtrace"]
|
||||
layout-2013 = ["libservo/layout-2013"]
|
||||
layout-2020 = ["libservo/layout-2020"]
|
||||
max_log_level = ["log/release_max_level_info"]
|
||||
native-bluetooth = ["libservo/native-bluetooth"]
|
||||
no_static_freetype = ["libservo/no_static_freetype"]
|
||||
|
|
|
@ -29,6 +29,8 @@ egl = ["simpleservo/egl"]
|
|||
energy-profiling = ["simpleservo/energy-profiling"]
|
||||
googlevr = ["simpleservo/googlevr"]
|
||||
js_backtrace = ["simpleservo/js_backtrace"]
|
||||
layout-2013 = ["simpleservo/layout-2013"]
|
||||
layout-2020 = ["simpleservo/layout-2020"]
|
||||
max_log_level = ["simpleservo/max_log_level"]
|
||||
native-bluetooth = ["simpleservo/native-bluetooth"]
|
||||
no_wgl = ["simpleservo/no_wgl"]
|
||||
|
|
|
@ -34,6 +34,8 @@ egl = ["simpleservo/egl"]
|
|||
energy-profiling = ["simpleservo/energy-profiling"]
|
||||
googlevr = ["simpleservo/googlevr"]
|
||||
js_backtrace = ["simpleservo/js_backtrace"]
|
||||
layout-2013 = ["simpleservo/layout-2013"]
|
||||
layout-2020 = ["simpleservo/layout-2020"]
|
||||
max_log_level = ["simpleservo/max_log_level"]
|
||||
native-bluetooth = ["simpleservo/native-bluetooth"]
|
||||
oculusvr = ["simpleservo/oculusvr"]
|
||||
|
|
|
@ -788,6 +788,7 @@ install them, let us know by filing a bug!")
|
|||
action='store_true',
|
||||
help='Build for HoloLens (x64)'),
|
||||
CommandArgument('--with-raqote', default=None, action='store_true'),
|
||||
CommandArgument('--with-layout-2020', default=None, action='store_true'),
|
||||
CommandArgument('--without-wgl', default=None, action='store_true'),
|
||||
]
|
||||
|
||||
|
@ -813,7 +814,7 @@ install them, let us know by filing a bug!")
|
|||
env=None, verbose=False,
|
||||
target=None, android=False, magicleap=False, libsimpleservo=False,
|
||||
features=None, debug_mozjs=False, with_debug_assertions=False,
|
||||
with_frame_pointer=False, with_raqote=False, without_wgl=False,
|
||||
with_frame_pointer=False, with_raqote=False, with_layout_2020=False, without_wgl=False,
|
||||
uwp=False,
|
||||
):
|
||||
env = env or self.build_env()
|
||||
|
@ -852,6 +853,10 @@ install them, let us know by filing a bug!")
|
|||
features.append("canvas2d-raqote")
|
||||
elif "canvas2d-raqote" not in features:
|
||||
features.append("canvas2d-azure")
|
||||
if with_layout_2020 and "layout-2013" not in features:
|
||||
features.append("layout-2020")
|
||||
elif "layout-2020" not in features:
|
||||
features.append("layout-2013")
|
||||
if with_frame_pointer:
|
||||
env['RUSTFLAGS'] = env.get('RUSTFLAGS', "") + " -C force-frame-pointers=yes"
|
||||
features.append("profilemozjs")
|
||||
|
|
|
@ -248,7 +248,7 @@ class MachCommands(CommandBase):
|
|||
self_contained_tests = [
|
||||
"background_hang_monitor",
|
||||
"gfx",
|
||||
"layout",
|
||||
"layout_2013",
|
||||
"msg",
|
||||
"net",
|
||||
"net_traits",
|
||||
|
|
|
@ -13,7 +13,7 @@ doctest = false
|
|||
[dependencies]
|
||||
gfx_traits = {path = "../../../components/gfx_traits"}
|
||||
ipc-channel = "0.11"
|
||||
layout = {path = "../../../components/layout"}
|
||||
layout = {path = "../../../components/layout", package = "layout_2013"}
|
||||
metrics = {path = "../../../components/metrics"}
|
||||
msg = {path = "../../../components/msg"}
|
||||
profile_traits = {path = "../../../components/profile_traits"}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue