aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore6
-rw-r--r--Cargo.toml67
-rw-r--r--components/servo/Cargo.lock (renamed from Cargo.lock)0
-rw-r--r--components/servo/Cargo.toml71
-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.rs8
-rwxr-xr-xetc/ci/upload_docs.sh10
-rw-r--r--ports/android/glut_app/Cargo.toml2
-rw-r--r--ports/cef/Cargo.toml2
-rw-r--r--python/servo/build_commands.py11
-rw-r--r--python/servo/command_base.py3
-rw-r--r--python/servo/post_build_commands.py10
-rw-r--r--python/servo/testing_commands.py12
-rw-r--r--support/not-the-toml-you-re-looking-for.rs9
-rw-r--r--tests/contenttest.rs2
-rw-r--r--tests/reftest.rs5
-rwxr-xr-xtests/wpt/run.sh16
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 - \
"$@"