Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cargo check #1128

Merged
merged 6 commits into from
Oct 31, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ environment:
DENO_THIRD_PARTY_PATH: $(APPVEYOR_BUILD_FOLDER)\third_party
MTIME_CACHE_DB: $(APPVEYOR_BUILD_FOLDER)\mtime_cache.xml
CARGO_HOME: $(USERPROFILE)\.cargo
CARGO_TARGET_DIR: $(APPVEYOR_BUILD_FOLDER)\out\target
RUSTUP_HOME: $(USERPROFILE)\.rustup
RUST_BACKTRACE: 1
RELEASE_ARTIFACT: deno_win_x64.zip
Expand Down Expand Up @@ -335,6 +336,8 @@ before_build:
build_script:
- python tools\build.py
- ps: Set-FilesNeeded -Auto -Reason "Build finished"
- cargo check --release
- ps: Set-FilesNeeded -Auto -Reason "Cargo check finished"

test_script:
- python tools\lint.py
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# build
/out/
/target/
*.pyc
gclient_config.py_entries
Cargo.lock
Expand Down
4 changes: 3 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ env:
- HOMEBREW_PATH=$HOME/homebrew/
- DENO_BUILD_ARGS="use_custom_libcxx=false use_sysroot=false"
- DENO_BUILD_PATH=$HOME/out/Default
- CARGO_TARGET_DIR=$DENO_BUILD_PATH
- DENO_BUILD_MODE=release
- PATH=$TRAVIS_BUILD_DIR/third_party/llvm-build/Release+Asserts/bin:$CARGO_HOME/bin:$PATH
- CCACHE_CPP2=yes
Expand Down Expand Up @@ -88,8 +89,9 @@ before_script:
script:
- ./tools/lint.py
- ./tools/test_format.py
- bash -c "sleep 2100; pkill ninja" &
- bash -c "sleep 2100; pkill ninja; pkill cargo" &
- ./tools/build.py -j2
- RUSTC_WRAPPER=sccache cargo check -j2 --release
- ./tools/test.py $DENO_BUILD_PATH
after_script:
- ccache --show-stats
Expand Down
15 changes: 11 additions & 4 deletions BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -124,9 +124,7 @@ rust_executable("deno") {
source_root = "src/main.rs"
extern = main_extern
deps = [
":libdeno",
":msg_rs",
":snapshot",
":deno_deps",
]
}

Expand Down Expand Up @@ -209,7 +207,6 @@ v8_executable("test_cc") {
# Because snapshots are slow, it's important that snapshot_creator's
# dependencies are minimal.
static_library("libdeno") {
complete_static_lib = true
sources = [
"libdeno/api.cc",
"libdeno/binding.cc",
Expand All @@ -224,6 +221,16 @@ static_library("libdeno") {
configs += [ ":deno_config" ]
}

static_library("deno_deps") {
complete_static_lib = true
public_deps = [
":libdeno",
":msg_rs",
":snapshot",
]
configs += [ ":deno_config" ]
}

executable("snapshot_creator") {
sources = [
"libdeno/snapshot_creator.cc",
Expand Down
8 changes: 7 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,21 @@ atty = "0.2.11"
dirs = "1.0.4"
flatbuffers = { path = "third_party/flatbuffers/rust/flatbuffers/" }
futures = "0.1.25"
getopts = "0.2.18"
hyper = "0.12.12"
# The current version of hyper-rustls, 0.14.0, depends on tokio-core, which is
# deprecated.
hyper-rustls = { git = "https://github.com/ctz/hyper-rustls.git" }
lazy_static = "1.1.0"
libc = "0.2.43"
log = "0.4.5"
rand = "0.4.3"
remove_dir_all = "0.5.1"
ring = "0.13.2"
tempfile = "3"
tokio = "0.1.11"
tokio-executor = "0.1.5"
tokio-fs = "0.1.3"
tokio-io = "0.1.8"
tokio-threadpool = "0.1.6"
url = "1.7.1"
getopts = "0.2.18"
39 changes: 39 additions & 0 deletions build.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// Copyright 2018 the Deno authors. All rights reserved. MIT license.

// Run "cargo build -vv" if you want to see gn output.
// TODO For the time being you must set an env var DENO_BUILD_PATH
// which might be `pwd`/out/debug or `pwd`/out/release.
// TODO Currently DENO_BUILD_PATH must be absolute.
// TODO Combine DENO_BUILD_PATH and OUT_DIR.

use std::env;
use std::process::Command;

fn main() {
let mode = env::var("PROFILE").unwrap();
let deno_build_path = env::var("DENO_BUILD_PATH").unwrap();

let status = Command::new("python")
.env("DENO_BUILD_PATH", &deno_build_path)
.env("DENO_BUILD_MODE", &mode)
.arg("./tools/setup.py")
.status()
.expect("setup.py failed");
assert!(status.success());

// These configurations must be outputted after tools/setup.py is run.
println!("cargo:rustc-link-search=native={}/obj", deno_build_path);
println!("cargo:rustc-link-lib=static=deno_deps");
// TODO Remove this and only use OUT_DIR at some point.
println!("cargo:rustc-env=DENO_BUILD_PATH={}", deno_build_path);

let status = Command::new("python")
.env("DENO_BUILD_PATH", &deno_build_path)
.env("DENO_BUILD_MODE", &mode)
.arg("./tools/build.py")
.arg("deno_deps")
.arg("-v")
.status()
.expect("build.py failed");
assert!(status.success());
}
7 changes: 5 additions & 2 deletions build_extra/rust/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
import sys
import os

os.environ["OUT_DIR"] = os.path.abspath(".")
assert os.path.isdir(os.environ["OUT_DIR"])
# TODO This is for src/msg.rs to know where to find msg_generated.rs
ry marked this conversation as resolved.
Show resolved Hide resolved
# In the future we should use OUT_DIR here.
os.environ["DENO_BUILD_PATH"] = os.path.abspath(".")
assert os.path.isdir(os.environ["DENO_BUILD_PATH"])

sys.exit(subprocess.call(sys.argv[1:], env=os.environ))
20 changes: 10 additions & 10 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,21 +23,21 @@ extern crate log;
#[macro_use]
extern crate futures;

mod deno_dir;
mod errors;
mod flags;
pub mod deno_dir;
pub mod errors;
pub mod flags;
mod fs;
mod http_util;
mod isolate;
mod libdeno;
mod msg;
pub mod isolate;
pub mod libdeno;
pub mod msg;
pub mod ops;
mod permissions;
mod resources;
mod snapshot;
pub mod permissions;
pub mod resources;
pub mod snapshot;
mod tokio_util;
mod tokio_write;
mod version;
pub mod version;

#[cfg(unix)]
mod eager_unix;
Expand Down
4 changes: 3 additions & 1 deletion src/msg.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#![allow(unused_imports)]
#![allow(dead_code)]
use flatbuffers;
include!(concat!(env!("OUT_DIR"), "/gen/msg_generated.rs"));
// TODO Replace DENO_BUILD_PATH with OUT_DIR. gn/ninja should generate into
// the same output directory as cargo uses.
include!(concat!(env!("DENO_BUILD_PATH"), "/gen/msg_generated.rs"));
2 changes: 1 addition & 1 deletion tools/format.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,5 +45,5 @@ def qrun(cmd, env=None):
print "rustfmt"
qrun([
"third_party/rustfmt/" + platform() +
"/rustfmt", "--config-path", rustfmt_config
"/rustfmt", "--config-path", rustfmt_config, "build.rs"
] + find_exts(["src"], [".rs"]))