mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Cargoify servo
This commit is contained in:
parent
db2f642c32
commit
c6ab60dbfc
1761 changed files with 8423 additions and 2294 deletions
1
support/glfw-rs
Submodule
1
support/glfw-rs
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit a646f0badaccaebd61d0f8aaec5646da0a7c2a14
|
7
support/rust-task_info/Cargo.toml
Normal file
7
support/rust-task_info/Cargo.toml
Normal file
|
@ -0,0 +1,7 @@
|
|||
[package]
|
||||
|
||||
name = "task_info"
|
||||
version = "0.0.1"
|
||||
authors = ["The Servo Project Developers"]
|
||||
|
||||
build = "make -f makefile.cargo"
|
32
support/rust-task_info/Makefile.in
Normal file
32
support/rust-task_info/Makefile.in
Normal file
|
@ -0,0 +1,32 @@
|
|||
VPATH=%VPATH%
|
||||
|
||||
CC ?= gcc
|
||||
RUSTC ?= rustc
|
||||
AR ?= ar
|
||||
RUSTFLAGS ?=
|
||||
CFLAGS += -Wall
|
||||
|
||||
RUST_SRC = $(shell find $(VPATH)/. -type f -name '*.rs')
|
||||
|
||||
.PHONY: all
|
||||
all: libtask_info-servo.dummy
|
||||
|
||||
libtask_info-servo.dummy: task_info.rc $(RUST_SRC) libtask_info.a
|
||||
$(RUSTC) $(RUSTFLAGS) $< --out-dir . -C extra-filename=-servo
|
||||
touch $@
|
||||
|
||||
task_info-test: task_info.rc $(RUST_SRC) libtask_info.a
|
||||
$(RUSTC) $(RUSTFLAGS) $< -o $@ --test
|
||||
|
||||
libtask_info.a: task_info.o
|
||||
$(AR) rcs libtask_info.a task_info.o
|
||||
|
||||
task_info.o: task_info.c
|
||||
$(CC) $(CFLAGS) $< -o $@ -c
|
||||
|
||||
check: task_info-test
|
||||
./task_info-test
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -f task_info-test *.a *.o *.so *.dylib *.rlib *.dll *.dummy task_info-test
|
20
support/rust-task_info/makefile.cargo
Normal file
20
support/rust-task_info/makefile.cargo
Normal file
|
@ -0,0 +1,20 @@
|
|||
CC ?= gcc
|
||||
AR ?= ar
|
||||
CFLAGS += -Wall
|
||||
|
||||
.PHONY: all
|
||||
ifeq (darwin,$(findstring darwin,$(TARGET)))
|
||||
|
||||
all: $(OUT_DIR)/libtask_info.a
|
||||
|
||||
$(OUT_DIR)/libtask_info.a: $(OUT_DIR)/task_info.o
|
||||
$(AR) rcs $@ $^
|
||||
|
||||
$(OUT_DIR)/task_info.o: src/task_info.c
|
||||
$(CC) $(CFLAGS) $< -o $@ -c
|
||||
|
||||
else
|
||||
|
||||
all:
|
||||
|
||||
endif
|
22
support/rust-task_info/src/lib.rs
Normal file
22
support/rust-task_info/src/lib.rs
Normal file
|
@ -0,0 +1,22 @@
|
|||
// Copyright 2014 The Servo Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![crate_name = "task_info"]
|
||||
#![crate_type = "rlib"]
|
||||
|
||||
#![comment = "The Servo Parallel Browser Project"]
|
||||
#![license = "MPL"]
|
||||
|
||||
#![feature(globs)]
|
||||
|
||||
extern crate libc;
|
||||
|
||||
#[cfg(target_os="macos")]
|
||||
pub mod task_basic_info;
|
||||
|
55
support/rust-task_info/src/task_basic_info.rs
Normal file
55
support/rust-task_info/src/task_basic_info.rs
Normal file
|
@ -0,0 +1,55 @@
|
|||
// Copyright 2014 The Servo Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
//! Interface to the measurements in the task_basic_info struct, gathered by
|
||||
//! invoking `task_info()` with the `TASK_BASIC_INFO` flavor.
|
||||
|
||||
use libc::{c_int,uint64_t};
|
||||
|
||||
/// Obtains task_basic_info::virtual_size.
|
||||
pub fn virtual_size() -> Option<u64> {
|
||||
let mut virtual_size: u64 = 0;
|
||||
let mut rv;
|
||||
unsafe {
|
||||
rv = TaskBasicInfoVirtualSize(&mut virtual_size);
|
||||
}
|
||||
if rv == 0 { Some(virtual_size) } else { None }
|
||||
}
|
||||
|
||||
/// Obtains task_basic_info::resident_size.
|
||||
pub fn resident_size() -> Option<u64> {
|
||||
let mut resident_size: u64 = 0;
|
||||
let mut rv;
|
||||
unsafe {
|
||||
rv = TaskBasicInfoResidentSize(&mut resident_size);
|
||||
}
|
||||
if rv == 0 { Some(resident_size) } else { None }
|
||||
}
|
||||
|
||||
#[link(name = "task_info", kind = "static")]
|
||||
extern {
|
||||
fn TaskBasicInfoVirtualSize(virtual_size: *mut uint64_t) -> c_int;
|
||||
fn TaskBasicInfoResidentSize(resident_size: *mut uint64_t) -> c_int;
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_stuff() {
|
||||
// In theory these can fail to return a value, but in practice they
|
||||
// don't unless something really bizarre has happened with the OS. So
|
||||
// assume they succeed. The returned values are non-deterministic, but
|
||||
// check they're non-zero as a basic sanity test.
|
||||
assert!(virtual_size().unwrap() > 0);
|
||||
assert!(resident_size().unwrap() > 0);
|
||||
}
|
||||
}
|
||||
|
39
support/rust-task_info/src/task_info.c
Normal file
39
support/rust-task_info/src/task_info.c
Normal file
|
@ -0,0 +1,39 @@
|
|||
// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#include <mach/mach_init.h>
|
||||
#include <mach/task.h>
|
||||
|
||||
static int
|
||||
TaskBasicInfo(struct task_basic_info* info)
|
||||
{
|
||||
mach_msg_type_number_t count = TASK_BASIC_INFO_COUNT;
|
||||
kern_return_t kr = task_info(mach_task_self(), TASK_BASIC_INFO,
|
||||
(task_info_t)info, &count);
|
||||
return kr == KERN_SUCCESS ? 0 : -1;
|
||||
}
|
||||
|
||||
int
|
||||
TaskBasicInfoVirtualSize(int64_t *virtualSize)
|
||||
{
|
||||
struct task_basic_info ti;
|
||||
int rv = TaskBasicInfo(&ti);
|
||||
*virtualSize = (rv == 0) ? ti.virtual_size : 0;
|
||||
return rv;
|
||||
}
|
||||
|
||||
int
|
||||
TaskBasicInfoResidentSize(int64_t *residentSize)
|
||||
{
|
||||
struct task_basic_info ti;
|
||||
int rv = TaskBasicInfo(&ti);
|
||||
*residentSize = (rv == 0) ? ti.resident_size : 0;
|
||||
return rv;
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue