diff options
author | Glenn Watson <gw@intuitionlibrary.com> | 2015-01-05 13:25:13 +1000 |
---|---|---|
committer | Glenn Watson <gw@intuitionlibrary.com> | 2015-01-09 07:04:44 +1000 |
commit | cf047d6cef0e2c13d746c4210e7fa41301bc82f7 (patch) | |
tree | f09b99554ccddbd52cf9e6fc9b2866529e01f785 /components | |
parent | 7800d98728bfa1375ad8b6a2dac7f2f35603b6d1 (diff) | |
download | servo-cf047d6cef0e2c13d746c4210e7fa41301bc82f7.tar.gz servo-cf047d6cef0e2c13d746c4210e7fa41301bc82f7.zip |
Add ability to explicitly set static resources path, used by cef-linux.
Diffstat (limited to 'components')
-rw-r--r-- | components/util/opts.rs | 6 | ||||
-rw-r--r-- | components/util/resource_files.rs | 32 |
2 files changed, 25 insertions, 13 deletions
diff --git a/components/util/opts.rs b/components/util/opts.rs index 59642a43b81..8ee877bd9fd 100644 --- a/components/util/opts.rs +++ b/components/util/opts.rs @@ -113,6 +113,9 @@ pub struct Opts { pub validate_display_list_geometry: bool, pub render_api: RenderApi, + + /// A specific path to find required resources (such as user-agent.css). + pub resources_path: Option<String>, } fn print_usage(app: &str, opts: &[getopts::OptGroup]) { @@ -180,6 +183,7 @@ pub fn default_opts() -> Opts { validate_display_list_geometry: false, profile_tasks: false, render_api: RenderApi::OpenGL, + resources_path: None, } } @@ -208,6 +212,7 @@ pub fn from_cmdline_args(args: &[String]) -> bool { getopts::optopt("Z", "debug", "A comma-separated string of debug options. Pass help to show available options.", ""), getopts::optflag("h", "help", "Print this message"), getopts::optopt("r", "render-api", "Set the rendering API to use", "gl|mesa"), + getopts::optopt("", "resources-path", "Path to find static resources", "/home/servo/resources"), ); let opt_match = match getopts::getopts(args, opts.as_slice()) { @@ -332,6 +337,7 @@ pub fn from_cmdline_args(args: &[String]) -> bool { dump_flow_tree: debug_options.contains(&"dump-flow-tree"), validate_display_list_geometry: debug_options.contains(&"validate-display-list-geometry"), render_api: render_api, + resources_path: opt_match.opt_str("resources-path"), }; set_opts(opts); diff --git a/components/util/resource_files.rs b/components/util/resource_files.rs index b40c93f2651..9dd0e199ad3 100644 --- a/components/util/resource_files.rs +++ b/components/util/resource_files.rs @@ -4,6 +4,7 @@ use std::io::{File, IoResult}; use std::path::Path; +use opts; #[cfg(not(target_os = "android"))] use std::io::fs::PathExtensions; @@ -17,20 +18,25 @@ pub fn resources_dir_path() -> Path { #[cfg(not(target_os = "android"))] pub fn resources_dir_path() -> Path { - // FIXME: Find a way to not rely on the executable being - // under `<servo source>/components/servo/target` - // or `<servo source>/components/servo/target/release`. - let mut path = os::self_exe_path().expect("can't get exe path"); - path.pop(); - path.pop(); - path.pop(); - path.push("resources"); - if !path.is_dir() { // self_exe_path() is probably in .../target/release - path.pop(); - path.pop(); - path.push("resources"); + match opts::get().resources_path { + Some(ref path) => Path::new(path), + None => { + // FIXME: Find a way to not rely on the executable being + // under `<servo source>/components/servo/target` + // or `<servo source>/components/servo/target/release`. + let mut path = os::self_exe_path().expect("can't get exe path"); + path.pop(); + path.pop(); + path.pop(); + path.push("resources"); + if !path.is_dir() { // self_exe_path() is probably in .../target/release + path.pop(); + path.pop(); + path.push("resources"); + } + path + } } - path } |