mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
adding check for windows then using Scripts instead of bin
This commit is contained in:
parent
095658e098
commit
13d98f153a
6 changed files with 61 additions and 41 deletions
|
@ -63,7 +63,22 @@ git = "https://github.com/servo/ipc-channel"
|
|||
[dependencies.offscreen_gl_context]
|
||||
git = "https://github.com/ecoal95/rust-offscreen-rendering-context"
|
||||
|
||||
[dependencies.gaol]
|
||||
[target.arm-linux-androideabi.dependencies.gaol]
|
||||
git = "https://github.com/pcwalton/gaol"
|
||||
|
||||
[target.x86_64-apple-darwin.dependencies.gaol]
|
||||
git = "https://github.com/pcwalton/gaol"
|
||||
|
||||
[target.x86_64-unknown-linux-gnu.dependencies.gaol]
|
||||
git = "https://github.com/pcwalton/gaol"
|
||||
|
||||
[target.i686-unknown-linux-gnu.dependencies.gaol]
|
||||
git = "https://github.com/pcwalton/gaol"
|
||||
|
||||
[target.arm-unknown-linux-gnueabihf.dependencies.gaol]
|
||||
git = "https://github.com/pcwalton/gaol"
|
||||
|
||||
[target.aarch64-unknown-linux-gnueabihf.dependencies.gaol]
|
||||
git = "https://github.com/pcwalton/gaol"
|
||||
|
||||
[dependencies]
|
||||
|
|
|
@ -406,6 +406,18 @@ impl<LTF: LayoutThreadFactory, STF: ScriptThreadFactory> Constellation<LTF, STF>
|
|||
//
|
||||
// Yes, that's all there is to it!
|
||||
if opts::multiprocess() {
|
||||
self.spawn_multiprocess(unprivileged_pipeline_content);
|
||||
} else {
|
||||
unprivileged_pipeline_content.start_all::<LTF, STF>(false);
|
||||
}
|
||||
}
|
||||
|
||||
assert!(!self.pipelines.contains_key(&pipeline_id));
|
||||
self.pipelines.insert(pipeline_id, pipeline);
|
||||
}
|
||||
|
||||
#[cfg(not(target_os = "windows"))]
|
||||
fn spawn_multiprocess(&mut self, unprivileged_pipeline_content: UnprivilegedPipelineContent) {
|
||||
let (server, token) =
|
||||
IpcOneShotServer::<IpcSender<UnprivilegedPipelineContent>>::new().unwrap();
|
||||
|
||||
|
@ -423,17 +435,15 @@ impl<LTF: LayoutThreadFactory, STF: ScriptThreadFactory> Constellation<LTF, STF>
|
|||
child_process.arg(token);
|
||||
ChildProcess::Unsandboxed(child_process.spawn().unwrap())
|
||||
};
|
||||
self.child_processes.push(child_process);
|
||||
|
||||
self.child_processes.push(child_process);
|
||||
let (_receiver, sender) = server.accept().unwrap();
|
||||
sender.send(unprivileged_pipeline_content).unwrap();
|
||||
} else {
|
||||
unprivileged_pipeline_content.start_all::<LTF, STF>(false);
|
||||
}
|
||||
}
|
||||
|
||||
assert!(!self.pipelines.contains_key(&pipeline_id));
|
||||
self.pipelines.insert(pipeline_id, pipeline);
|
||||
#[cfg(target_os = "windows")]
|
||||
fn spawn_multiprocess(&mut self, _: UnprivilegedPipelineContent) {
|
||||
panic!("Multiprocess is not supported on Windows.");
|
||||
}
|
||||
|
||||
// Push a new (loading) pipeline to the list of pending frame changes
|
||||
|
|
|
@ -92,7 +92,9 @@ def _activate_virtualenv(topdir):
|
|||
if python is None:
|
||||
sys.exit("Python is not installed. Please install it prior to running mach.")
|
||||
|
||||
activate_path = os.path.join(virtualenv_path, "bin", "activate_this.py")
|
||||
# Virtualenv calls its scripts folder "bin" on linux/OSX but "Scripts" on Windows, detect which one then use that
|
||||
script_dir = "Scripts" if os.name == "nt" else "bin"
|
||||
activate_path = os.path.join(virtualenv_path, script_dir, "activate_this.py")
|
||||
if not (os.path.exists(virtualenv_path) and os.path.exists(activate_path)):
|
||||
virtualenv = _get_exec(*VIRTUALENV_NAMES)
|
||||
if virtualenv is None:
|
||||
|
|
|
@ -28,7 +28,7 @@ from mach.decorators import (
|
|||
Command,
|
||||
)
|
||||
|
||||
from servo.command_base import CommandBase, cd, host_triple, use_nightly_rust, check_call, BIN_SUFFIX
|
||||
from servo.command_base import CommandBase, cd, host_triple, check_call, BIN_SUFFIX
|
||||
|
||||
|
||||
def download(desc, src, writer):
|
||||
|
|
|
@ -16,9 +16,7 @@ import toml
|
|||
|
||||
from mach.registrar import Registrar
|
||||
|
||||
BIN_SUFFIX = ""
|
||||
if sys.platform == "win32":
|
||||
BIN_SUFFIX = ".exe"
|
||||
BIN_SUFFIX = ".exe" if sys.platform == "win32" else ""
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
|
@ -59,10 +57,8 @@ def host_triple():
|
|||
|
||||
|
||||
def use_nightly_rust():
|
||||
envvar = os.environ.get("SERVO_USE_NIGHTLY_RUST")
|
||||
if envvar:
|
||||
envvar = os.environ.get("SERVO_USE_NIGHTLY_RUST", "0")
|
||||
return envvar != "0"
|
||||
return False
|
||||
|
||||
|
||||
def call(*args, **kwargs):
|
||||
|
@ -70,11 +66,9 @@ def call(*args, **kwargs):
|
|||
verbose = kwargs.pop('verbose', False)
|
||||
if verbose:
|
||||
print(' '.join(args[0]))
|
||||
if sys.platform == "win32":
|
||||
# we have to use shell=True in order to get PATH handling
|
||||
# when looking for the binary on Windows
|
||||
return subprocess.call(*args, shell=True, **kwargs)
|
||||
return subprocess.call(*args, **kwargs)
|
||||
return subprocess.call(*args, shell=sys.platform == 'win32', **kwargs)
|
||||
|
||||
|
||||
def check_call(*args, **kwargs):
|
||||
|
@ -82,11 +76,9 @@ def check_call(*args, **kwargs):
|
|||
verbose = kwargs.pop('verbose', False)
|
||||
if verbose:
|
||||
print(' '.join(args[0]))
|
||||
if sys.platform == "win32":
|
||||
# we have to use shell=True in order to get PATH handling
|
||||
# when looking for the binary on Windows
|
||||
return subprocess.check_call(*args, shell=True, **kwargs)
|
||||
return subprocess.check_call(*args, **kwargs)
|
||||
return subprocess.check_call(*args, shell=sys.platform == 'win32', **kwargs)
|
||||
|
||||
|
||||
class CommandBase(object):
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
from __future__ import print_function, unicode_literals
|
||||
from os import path, getcwd, listdir
|
||||
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
from mach.decorators import (
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue