diff options
-rw-r--r-- | .gitignore | 6 | ||||
-rw-r--r-- | Cargo.toml | 67 | ||||
-rw-r--r-- | components/servo/Cargo.lock (renamed from Cargo.lock) | 0 | ||||
-rw-r--r-- | components/servo/Cargo.toml | 71 | ||||
-rw-r--r-- | components/servo/lib.rs (renamed from src/lib.rs) | 0 | ||||
-rw-r--r-- | components/servo/main.rs (renamed from src/main.rs) | 0 | ||||
-rw-r--r-- | components/util/resource_files.rs | 8 | ||||
-rwxr-xr-x | etc/ci/upload_docs.sh | 10 | ||||
-rw-r--r-- | ports/android/glut_app/Cargo.toml | 2 | ||||
-rw-r--r-- | ports/cef/Cargo.toml | 2 | ||||
-rw-r--r-- | python/servo/build_commands.py | 11 | ||||
-rw-r--r-- | python/servo/command_base.py | 3 | ||||
-rw-r--r-- | python/servo/post_build_commands.py | 10 | ||||
-rw-r--r-- | python/servo/testing_commands.py | 12 | ||||
-rw-r--r-- | support/not-the-toml-you-re-looking-for.rs | 9 | ||||
-rw-r--r-- | tests/contenttest.rs | 2 | ||||
-rw-r--r-- | tests/reftest.rs | 5 | ||||
-rwxr-xr-x | tests/wpt/run.sh | 16 |
18 files changed, 136 insertions, 98 deletions
diff --git a/.gitignore b/.gitignore index 023ae02368b..f0fa1e8f96a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ /.cargo/config +/Cargo.lock /target -/rust -/cargo +/components/servo/target /ports/cef/target /ports/android/bin /ports/android/libs @@ -16,7 +16,7 @@ /components/script/dom/bindings/codegen/UnionTypes.h /components/script/dom/bindings/codegen/UnionConversions.h /.servobuild -/_virtualenv +/tests/wpt/_virtualenv *~ *# *.o diff --git a/Cargo.toml b/Cargo.toml index 9dca413e4a0..bc186d02ccf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,69 +1,10 @@ [package] -name = "servo" +name = "not-the-toml-you-re-looking-for" version = "0.0.1" authors = ["The Servo Project Developers"] -[lib] -name = "servo" -crate-type = ["rlib"] - -[[bin]] -name = "servo" -test = false -doc = false -bench = false - -[[test]] -name = "reftest" -path = "tests/reftest.rs" -harness = false - -[[test]] -name = "contenttest" -path = "tests/contenttest.rs" -harness = false - -[features] -default = ["glfw_app"] -glutin = ["glutin_app"] - -[dependencies.compositing] -path = "components/compositing" - -[dependencies.net] -path = "components/net" - -[dependencies.msg] -path = "components/msg" - -[dependencies.util] -path = "components/util" +build = "support/not-the-toml-you-re-looking-for.rs" -[dependencies.script] -path = "components/script" - -[dependencies.layout] -path = "components/layout" - -[dependencies.gfx] -path = "components/gfx" - -[dependencies.glfw_app] -path = "ports/glfw" -optional = true - -[dependencies.glutin_app] -path = "ports/glutin" -optional = true - -[dependencies.url] -git = "https://github.com/servo/rust-url" - -[dependencies.green] -git = "https://github.com/servo/green-rs" -branch = "servo" - -[dependencies.rustuv] -git = "https://github.com/servo/green-rs" -branch = "servo" +[lib] +name = "not-the-toml-you-re-looking-for" diff --git a/Cargo.lock b/components/servo/Cargo.lock index 698779f792e..698779f792e 100644 --- a/Cargo.lock +++ b/components/servo/Cargo.lock diff --git a/components/servo/Cargo.toml b/components/servo/Cargo.toml new file mode 100644 index 00000000000..8735b56686f --- /dev/null +++ b/components/servo/Cargo.toml @@ -0,0 +1,71 @@ +[package] + +name = "servo" +version = "0.0.1" +authors = ["The Servo Project Developers"] + +[lib] +name = "servo" +path = "lib.rs" +crate-type = ["rlib"] + +[[bin]] +name = "servo" +path = "main.rs" +test = false +doc = false +bench = false + +[[test]] +name = "reftest" +path = "../../tests/reftest.rs" +harness = false + +[[test]] +name = "contenttest" +path = "../../tests/contenttest.rs" +harness = false + +[features] +default = ["glfw_app"] +glutin = ["glutin_app"] + +[dependencies.compositing] +path = "../compositing" + +[dependencies.net] +path = "../net" + +[dependencies.msg] +path = "../msg" + +[dependencies.util] +path = "../util" + +[dependencies.script] +path = "../script" + +[dependencies.layout] +path = "../layout" + +[dependencies.gfx] +path = "../gfx" + +[dependencies.glfw_app] +path = "../../ports/glfw" +optional = true + +[dependencies.glutin_app] +path = "../../ports/glutin" +optional = true + +[dependencies.url] +git = "https://github.com/servo/rust-url" + +[dependencies.green] +git = "https://github.com/servo/green-rs" +branch = "servo" + +[dependencies.rustuv] +git = "https://github.com/servo/green-rs" +branch = "servo" diff --git a/src/lib.rs b/components/servo/lib.rs index 51297269a9b..51297269a9b 100644 --- a/src/lib.rs +++ b/components/servo/lib.rs diff --git a/src/main.rs b/components/servo/main.rs index 16ef1980668..16ef1980668 100644 --- a/src/main.rs +++ b/components/servo/main.rs diff --git a/components/util/resource_files.rs b/components/util/resource_files.rs index 73e1148cc9a..b40c93f2651 100644 --- a/components/util/resource_files.rs +++ b/components/util/resource_files.rs @@ -17,11 +17,15 @@ 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>/target`. + // 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() { + if !path.is_dir() { // self_exe_path() is probably in .../target/release path.pop(); path.pop(); path.push("resources"); diff --git a/etc/ci/upload_docs.sh b/etc/ci/upload_docs.sh index c46ae829063..5caf358fce7 100755 --- a/etc/ci/upload_docs.sh +++ b/etc/ci/upload_docs.sh @@ -6,14 +6,16 @@ set -e -mkdir -p target/doc +cd "$(dirname $0)/../.." + +mkdir -p components/servo/target/doc ./mach bootstrap-rust # Ordered so that: # * etc/doc.servo.org/index.html overwrites $(mach rust-root)/doc/index.html # * ./mach doc overwrites $(mach rust-root)/doc/search-index.js -cp -R $(./mach rust-root)/doc/* target/doc/ -cp etc/doc.servo.org/* target/doc/ +cp -R $(./mach rust-root)/doc/* components/servo/target/doc/ +cp etc/doc.servo.org/* components/servo/target/doc/ ./mach doc -ghp-import -n target/doc +ghp-import -n components/servo/target/doc git push -qf https://${TOKEN}@github.com/servo/doc.servo.org.git gh-pages diff --git a/ports/android/glut_app/Cargo.toml b/ports/android/glut_app/Cargo.toml index 1fdad3d343e..f2e1bf4f65a 100644 --- a/ports/android/glut_app/Cargo.toml +++ b/ports/android/glut_app/Cargo.toml @@ -24,7 +24,7 @@ git = "https://github.com/servo/rust-layers" path = "../../../components/msg" [dependencies.servo] -path = "../../.." +path = "../../../components/servo" default-features = false [dependencies.util] diff --git a/ports/cef/Cargo.toml b/ports/cef/Cargo.toml index 6ea7c406270..bfbbda58bca 100644 --- a/ports/cef/Cargo.toml +++ b/ports/cef/Cargo.toml @@ -9,7 +9,7 @@ path = "lib.rs" crate-type = ["dylib"] [dependencies.servo] -path = "../.." +path = "../../components/servo" [dependencies.glfw_app] path = "../glfw" diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py index 666c8945e1d..1352877d048 100644 --- a/python/servo/build_commands.py +++ b/python/servo/build_commands.py @@ -73,7 +73,7 @@ class MachCommands(CommandBase): else: status = subprocess.call( ["cargo", "build"] + opts, - env=self.build_env()) + env=self.build_env(), cwd=self.servo_crate()) elapsed = time() - build_start print("Build completed in %0.2fs" % elapsed) @@ -105,7 +105,8 @@ class MachCommands(CommandBase): build_start = time() with cd(path.join("ports", "cef")): - ret = subprocess.call(["cargo", "build"], env=self.build_env()) + ret = subprocess.call(["cargo", "build"], + env=self.build_env(), cwd=self.servo_crate()) elapsed = time() - build_start print("CEF build completed in %0.2fs" % elapsed) @@ -124,7 +125,8 @@ class MachCommands(CommandBase): if jobs is not None: opts += ["-j", jobs] return subprocess.call( - ["cargo", "test", "--no-run"], env=self.build_env()) + ["cargo", "test", "--no-run"], + env=self.build_env(), cwd=self.servo_crate()) @Command('clean', description='Clean the build directory.', @@ -144,4 +146,5 @@ class MachCommands(CommandBase): if verbose: opts += ["-v"] - return subprocess.call(["cargo", "clean"] + opts, env=self.build_env()) + return subprocess.call(["cargo", "clean"] + opts, + env=self.build_env(), cwd=self.servo_crate()) diff --git a/python/servo/command_base.py b/python/servo/command_base.py index 8dc872e8656..a34104b734e 100644 --- a/python/servo/command_base.py +++ b/python/servo/command_base.py @@ -142,6 +142,9 @@ class CommandBase(object): return env + def servo_crate(self): + return path.join(self.context.topdir, "components", "servo") + def ensure_bootstrapped(self): if self.context.bootstrapped: return diff --git a/python/servo/post_build_commands.py b/python/servo/post_build_commands.py index c2c4bb5c06b..972dea7429b 100644 --- a/python/servo/post_build_commands.py +++ b/python/servo/post_build_commands.py @@ -37,7 +37,7 @@ class MachCommands(CommandBase): env = self.build_env() env["RUST_BACKTRACE"] = "1" - args = [path.join("target", "servo")] + args = [path.join("components", "servo", "target", "servo")] # Borrowed and modified from: # http://hg.mozilla.org/mozilla-central/file/c9cfa9b91dea/python/mozbuild/mozbuild/mach_commands.py#l883 @@ -71,7 +71,7 @@ class MachCommands(CommandBase): def doc(self, params): self.ensure_bootstrapped() return subprocess.call(["cargo", "doc"] + params, - env=self.build_env()) + env=self.build_env(), cwd=self.servo_crate()) @Command('serve-docs', description='Locally serve Servo and Rust documentation', @@ -81,13 +81,13 @@ class MachCommands(CommandBase): help="Port to serve documentation at (default is 8888)") def serve_docs(self, port): self.doc([]) - servedir = path.join("target", "serve-docs") - docdir = path.join("target", "doc") + servedir = path.join("components", "servo", "target", "serve-docs") + docdir = path.join("components", "servo", "target", "doc") rmtree(servedir, True) copytree(docdir, servedir, ignore=ignore_patterns('.*')) - rustdocs = path.join("rust", self.rust_snapshot_path(), "doc") + rustdocs = path.join(self.config["tools"]["rust-root"], "doc") copytree(rustdocs, path.join(servedir, "rust"), ignore=ignore_patterns('.*')) chdir(servedir) diff --git a/python/servo/testing_commands.py b/python/servo/testing_commands.py index 8735a234e12..ff4844731d8 100644 --- a/python/servo/testing_commands.py +++ b/python/servo/testing_commands.py @@ -31,10 +31,12 @@ class MachCommands(CommandBase): self.context.built_tests = True def find_test(self, prefix): - target_contents = os.listdir(path.join(self.context.topdir, "target")) + target_contents = os.listdir(path.join( + self.context.topdir, "components", "servo", "target")) for filename in target_contents: if filename.startswith(prefix + "-"): - filepath = path.join(self.context.topdir, "target", filename) + filepath = path.join( + self.context.topdir, "components", "servo", "target", filename) if path.isfile(filepath) and os.access(filepath, os.X_OK): return filepath @@ -104,10 +106,12 @@ class MachCommands(CommandBase): def cargo_test(component): return 0 != subprocess.call( - ["cargo", "test", "-p", component] + test_name, env=self.build_env()) + ["cargo", "test", "-p", component] + test_name, + env=self.build_env(), cwd=self.servo_crate()) for component in os.listdir("components"): - ret = ret or cargo_test(component) + if component != "servo": + ret = ret or cargo_test(component) return ret diff --git a/support/not-the-toml-you-re-looking-for.rs b/support/not-the-toml-you-re-looking-for.rs new file mode 100644 index 00000000000..48f75215ced --- /dev/null +++ b/support/not-the-toml-you-re-looking-for.rs @@ -0,0 +1,9 @@ +fn main() { + ::std::os::set_exit_status(1); + let _ = ::std::io::stderr().write(br" + + This is not the `Cargo.toml` file you're looking for. + Invoke Cargo through mach instead, e.g. `./mach build`. + +"); +} diff --git a/tests/contenttest.rs b/tests/contenttest.rs index d166934a82f..438f8b5fccf 100644 --- a/tests/contenttest.rs +++ b/tests/contenttest.rs @@ -99,7 +99,7 @@ fn run_test(file: String) { let stderr = InheritFd(2); let args = ["-z", "-f", infile.as_slice()]; - let mut prc = match Command::new("target/servo") + let mut prc = match Command::new(os::self_exe_path().unwrap().join("servo")) .args(args) .stdin(Ignored) .stdout(stdout) diff --git a/tests/reftest.rs b/tests/reftest.rs index af186eeffa2..85a4d9c7b56 100644 --- a/tests/reftest.rs +++ b/tests/reftest.rs @@ -112,7 +112,8 @@ fn run(test_opts: TestOpts, all_tests: Vec<TestDescAndFn>, // Verify that we're passing in valid servo arguments. Otherwise, servo // will exit before we've run any tests, and it will appear to us as if // all the tests are failing. - let mut command = match Command::new("target/servo").args(servo_args.as_slice()).spawn() { + let mut command = match Command::new(os::self_exe_path().unwrap().join("servo")) + .args(servo_args.as_slice()).spawn() { Ok(p) => p, Err(e) => panic!("failed to execute process: {}", e), }; @@ -248,7 +249,7 @@ fn make_test(reftest: Reftest) -> TestDescAndFn { fn capture(reftest: &Reftest, side: uint) -> (u32, u32, Vec<u8>) { let png_filename = format!("/tmp/servo-reftest-{:06u}-{:u}.png", reftest.id, side); - let mut command = Command::new("target/servo"); + let mut command = Command::new(os::self_exe_path().unwrap().join("servo")); command .args(reftest.servo_args.as_slice()) // Allows pixel perfect rendering of Ahem font for reftests. diff --git a/tests/wpt/run.sh b/tests/wpt/run.sh index ed06092c5c0..d238a16f985 100755 --- a/tests/wpt/run.sh +++ b/tests/wpt/run.sh @@ -4,22 +4,22 @@ set -e -servo_root=$(pwd) +wpt_root=$(dirname $0) PYTHON=$(which python2 2> /dev/null || echo python) VIRTUALENV=$(which virtualenv2 2> /dev/null || echo virtualenv) -test -d _virtualenv || $VIRTUALENV _virtualenv -p $PYTHON -test -d $servo_root/tests/wpt/metadata || mkdir -p $servo_root/tests/wpt/metadata -test -d $servo_root/tests/wpt/prefs || mkdir -p $servo_root/tests/wpt/prefs -source _virtualenv/bin/activate +test -d $wpt_root/_virtualenv || $VIRTUALENV $wpt_root/_virtualenv -p $PYTHON +test -d $wpt_root/metadata || mkdir -p $wpt_root/metadata +test -d $wpt_root/prefs || mkdir -p $wpt_root/prefs +source $wpt_root/_virtualenv/bin/activate if [[ $* == *--update-manifest* ]]; then (python -c "import html5lib" &>/dev/null) || pip install html5lib fi (python -c "import wptrunner" &>/dev/null) || pip install 'wptrunner==1.7' -python $servo_root/tests/wpt/run.py \ - --config $servo_root/tests/wpt/config.ini \ - --binary target/servo \ +python $wpt_root/run.py \ + --config $wpt_root/config.ini \ + --binary $wpt_root/../../components/servo/target/servo \ --log-mach - \ "$@" |