Skip to content

Commit

Permalink
Add ./mach build --with-layout-2020
Browse files Browse the repository at this point in the history
… with corresponding `layout` and `layout_thread` crates,
which for now do nothing.
  • Loading branch information
SimonSapin committed Jul 4, 2019
1 parent c1e9347 commit 2b01c26
Show file tree
Hide file tree
Showing 19 changed files with 186 additions and 12 deletions.
39 changes: 34 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion components/layout/Cargo.toml
@@ -1,5 +1,5 @@
[package]
name = "layout"
name = "layout_2013"
version = "0.0.1"
authors = ["The Servo Project Developers"]
license = "MPL-2.0"
Expand Down
15 changes: 15 additions & 0 deletions components/layout_2020/Cargo.toml
@@ -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 changes: 3 additions & 0 deletions components/layout_2020/lib.rs
@@ -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/. */
4 changes: 2 additions & 2 deletions components/layout_thread/Cargo.toml
@@ -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"
Expand All @@ -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"
Expand Down
28 changes: 28 additions & 0 deletions components/layout_thread_2020/Cargo.toml
@@ -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 changes: 59 additions & 0 deletions components/layout_thread_2020/lib.rs
@@ -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,
) {
}
}
5 changes: 4 additions & 1 deletion components/servo/Cargo.toml
Expand Up @@ -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"]
Expand Down Expand Up @@ -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"}
Expand Down
20 changes: 20 additions & 0 deletions components/servo/build.rs
@@ -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)
}
1 change: 1 addition & 0 deletions components/style/Cargo.toml
Expand Up @@ -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 = []
Expand Down
1 change: 1 addition & 0 deletions etc/taskcluster/decision_task.py
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions ports/glutin/Cargo.toml
Expand Up @@ -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"]
Expand Down
2 changes: 2 additions & 0 deletions ports/libmlservo/Cargo.toml
Expand Up @@ -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"] }
Expand Down
2 changes: 2 additions & 0 deletions ports/libsimpleservo/api/Cargo.toml
Expand Up @@ -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"]
Expand Down
2 changes: 2 additions & 0 deletions ports/libsimpleservo/capi/Cargo.toml
Expand Up @@ -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"]
Expand Down
2 changes: 2 additions & 0 deletions ports/libsimpleservo/jniapi/Cargo.toml
Expand Up @@ -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"]
Expand Down
7 changes: 6 additions & 1 deletion python/servo/command_base.py
Expand Up @@ -788,6 +788,7 @@ def build_like_command_arguments(decorated_function):
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'),
]

Expand All @@ -813,7 +814,7 @@ def run_cargo_build_like_command(
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()
Expand Down Expand Up @@ -852,6 +853,10 @@ def run_cargo_build_like_command(
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")
Expand Down
2 changes: 1 addition & 1 deletion python/servo/testing_commands.py
Expand Up @@ -248,7 +248,7 @@ def test_unit(self, test_name=None, package=None, bench=False, nocapture=False,
self_contained_tests = [
"background_hang_monitor",
"gfx",
"layout",
"layout_2013",
"msg",
"net",
"net_traits",
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/metrics/Cargo.toml
Expand Up @@ -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"}
Expand Down

0 comments on commit 2b01c26

Please sign in to comment.