Skip to content

Commit

Permalink
refactor(build): generate revision into out_dir
Browse files Browse the repository at this point in the history
  • Loading branch information
kwonoj committed Mar 23, 2018
1 parent f923097 commit b957f6a
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 29 deletions.
1 change: 0 additions & 1 deletion .gitignore
Expand Up @@ -23,7 +23,6 @@ Servo.app
.config.mk.last
/glfw
capture_webrender/
/components/compositing/webrender_revision.rs

# Editors

Expand Down
29 changes: 4 additions & 25 deletions components/compositing/build.rs
Expand Up @@ -7,27 +7,11 @@ extern crate toml;
use std::env;
use std::fs::File;
use std::io::{Read, Write};

const WEBRENDER_REVISION_TEMPLATE: &'static str =
"/* 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 http://mozilla.org/MPL/2.0/. */
/// auto-generated by cargo. do not manually modify.
pub const REVISION: &'static str = ";
use std::path::Path;

fn main() {
let current_path = env::current_dir().expect("Failed to access path to lockfile");
let lockfile_path = current_path.join("..").join("..").join("Cargo.lock");
let revision_file_path = current_path.join("webrender_revision.rs");

let mut existing_revision_exported = String::new();
match File::open(&revision_file_path) {
Ok(mut f) => {
f.read_to_string(&mut existing_revision_exported).unwrap_or_default();
},
Err(_) => ()
}
let lockfile_path = Path::new(&env::var("CARGO_MANIFEST_DIR").unwrap()).join("..").join("..").join("Cargo.lock");
let revision_file_path = Path::new(&env::var_os("OUT_DIR").unwrap()).join("webrender_revision.rs");

let mut lockfile = String::new();
File::open(lockfile_path).expect("Cannot open lockfile")
Expand All @@ -49,13 +33,8 @@ fn main() {
let parsed: Vec<&str> = source.split("#").collect();
let revision = if parsed.len() > 1 { parsed[1] } else { source };

if let Some(_) = existing_revision_exported.find(revision) {
return
}

let revision_contents = format!("{}\"{}\";", WEBRENDER_REVISION_TEMPLATE, revision);
let mut revision_module_file = File::create(&revision_file_path).unwrap();
write!(&mut revision_module_file, "{}", revision_contents).unwrap();
write!(&mut revision_module_file, "{}", format!("\"{}\"", revision)).unwrap();
},
_ => panic!("Cannot find package definitions in lockfile")
}
Expand Down
4 changes: 2 additions & 2 deletions components/compositing/compositor.rs
Expand Up @@ -37,7 +37,6 @@ use touch::{TouchHandler, TouchAction};
use webrender;
use webrender_api::{self, DeviceIntPoint, DevicePoint, DeviceUintRect, DeviceUintSize, HitTestFlags, HitTestResult};
use webrender_api::{LayoutVector2D, ScrollEventPhase, ScrollLocation};
use webrender_revision::REVISION;
use windowing::{self, MouseWindowEvent, WebRenderDebugOption, WindowMethods};

#[derive(Debug, PartialEq)]
Expand Down Expand Up @@ -1553,7 +1552,8 @@ impl<Window: WindowMethods> IOCompositor<Window> {

match File::create(revision_file_path) {
Ok(mut file) => {
if let Err(err) = write!(&mut file, "{}", REVISION) {
let revision = include!(concat!(env!("OUT_DIR"), "/webrender_revision.rs"));
if let Err(err) = write!(&mut file, "{}", revision) {
println!("Unable to write webrender revision: {:?}", err)
}
}
Expand Down
1 change: 0 additions & 1 deletion components/compositing/lib.rs
Expand Up @@ -39,7 +39,6 @@ use style_traits::CSSPixel;
mod compositor;
pub mod compositor_thread;
mod touch;
mod webrender_revision;
pub mod windowing;

pub struct SendableFrameTree {
Expand Down

0 comments on commit b957f6a

Please sign in to comment.