mirror of
https://github.com/denoland/deno.git
synced 2025-02-08 07:16:56 -05:00
Move //libdeno to //core/libdeno (#2015)
Fixes some sed errors introduced in c43cfe. Unfortunately moving libdeno required splitting build.rs into two parts, one for cli and one for core. I've also removed the arm64 build - it's complicating things at this re-org and we're not even testing it. I need to swing back to it and get tools/test.py running for it.
This commit is contained in:
parent
ad3cbc50fb
commit
c9614d86c1
74 changed files with 604 additions and 602 deletions
|
@ -212,15 +212,15 @@ after_test:
|
||||||
}
|
}
|
||||||
|
|
||||||
# Verify that javascript and typescript files which are bundled by rollup are
|
# Verify that javascript and typescript files which are bundled by rollup are
|
||||||
# listed explicitly in BUILD.gn. This is not an air-tight check.
|
# listed explicitly in cli\BUILD.gn. This is not an air-tight check.
|
||||||
# TODO: make rollup or another bundler write a depfile.
|
# TODO: make rollup or another bundler write a depfile.
|
||||||
- ps: |-
|
- ps: |-
|
||||||
$ignore = "test_util.ts", "unit_tests.ts", "*_test.ts"
|
$ignore = "test_util.ts", "unit_tests.ts", "*_test.ts"
|
||||||
Get-ChildItem "js" -File -Force -Name |
|
Get-ChildItem "js" -File -Force -Name |
|
||||||
where { $name = $_; -not ($ignore | where { $name -like $_ }) } |
|
where { $name = $_; -not ($ignore | where { $name -like $_ }) } |
|
||||||
where { -not (Select-String -Pattern $_ -Path BUILD.gn `
|
where { -not (Select-String -Pattern $_ -Path cli\BUILD.gn `
|
||||||
-SimpleMatch -CaseSensitive) } |
|
-SimpleMatch -CaseSensitive) } |
|
||||||
foreach { throw "$_ should be listed in BUILD.gn but isn't." }
|
foreach { throw "$_ should be listed in cli\BUILD.gn but isn't." }
|
||||||
|
|
||||||
# Verify that generated ninja files do not use absolute path names.
|
# Verify that generated ninja files do not use absolute path names.
|
||||||
# If they do, it makes ccache/sccache much less effective.
|
# If they do, it makes ccache/sccache much less effective.
|
||||||
|
|
24
.travis.yml
24
.travis.yml
|
@ -110,30 +110,6 @@ jobs:
|
||||||
repo: denoland/deno
|
repo: denoland/deno
|
||||||
skip-cleanup: true
|
skip-cleanup: true
|
||||||
|
|
||||||
- name: "cargo release linux arm64"
|
|
||||||
os: linux
|
|
||||||
dist: xenial
|
|
||||||
script:
|
|
||||||
- ./tools/lint.py
|
|
||||||
- ./tools/test_format.py
|
|
||||||
- rustup target add aarch64-unknown-linux-gnu
|
|
||||||
- sudo apt update
|
|
||||||
- |-
|
|
||||||
sudo apt -yq --no-install-suggests --no-install-recommends install \
|
|
||||||
g++-5-aarch64-linux-gnu gcc-5-aarch64-linux-gnu g++-5-multilib \
|
|
||||||
libc6-arm64-cross
|
|
||||||
- build/linux/sysroot_scripts/install-sysroot.py --arch=arm64
|
|
||||||
- export DENO_BUILD_ARGS="target_cpu=\"arm64\" v8_target_cpu=\"arm64\""
|
|
||||||
- export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER="/usr/bin/aarch64-linux-gnu-gcc-5"
|
|
||||||
- export CC_aarch64_unknown_linux_gnu="/usr/bin/aarch64-linux-gnu-gcc-5"
|
|
||||||
- cargo build -vv --target=aarch64-unknown-linux-gnu --release --locked
|
|
||||||
- cargo build -vv --target=aarch64-unknown-linux-gnu --release --tests --locked
|
|
||||||
- sudo apt -yq install qemu qemu-user binfmt-support qemu-user-binfmt
|
|
||||||
- sudo ln -s /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 /lib/ld-linux-aarch64.so.1
|
|
||||||
- export QEMU_LD_PREFIX=/usr/aarch64-linux-gnu
|
|
||||||
#- $CARGO_TARGET_DIR/aarch64-unknown-linux-gnu/release/deno tests/002_hello.ts
|
|
||||||
# - DENO_BUILD_MODE=release ./tools/test.py $CARGO_TARGET_DIR/aarch64-unknown-linux-gnu/release TODO(afinch7): Get the tests working
|
|
||||||
|
|
||||||
- name: "cargo release linux x86_64"
|
- name: "cargo release linux x86_64"
|
||||||
os: linux
|
os: linux
|
||||||
script:
|
script:
|
||||||
|
|
277
BUILD.gn
277
BUILD.gn
|
@ -1,184 +1,13 @@
|
||||||
# Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
|
||||||
import("//build/toolchain/cc_wrapper.gni")
|
|
||||||
import("//build_extra/flatbuffers/flatbuffer.gni")
|
|
||||||
import("//build_extra/flatbuffers/rust/rust_flatbuffer.gni")
|
|
||||||
import("//build_extra/rust/rust.gni")
|
import("//build_extra/rust/rust.gni")
|
||||||
import("//third_party/v8/gni/v8.gni")
|
|
||||||
import("//third_party/v8/snapshot_toolchain.gni")
|
|
||||||
import("libdeno/deno.gni")
|
|
||||||
|
|
||||||
group("default") {
|
group("default") {
|
||||||
testonly = true
|
testonly = true
|
||||||
deps = [
|
deps = [
|
||||||
":deno",
|
|
||||||
":hyper_hello",
|
":hyper_hello",
|
||||||
":test_rs",
|
"cli:deno",
|
||||||
|
"cli:test_rs",
|
||||||
"core:default",
|
"core:default",
|
||||||
"libdeno:test_cc",
|
"core/libdeno:test_cc",
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
main_extern = [
|
|
||||||
"core:deno_core",
|
|
||||||
|
|
||||||
"$rust_build:ansi_term",
|
|
||||||
"$rust_build:atty",
|
|
||||||
"$rust_build:dirs",
|
|
||||||
"$rust_build:flatbuffers",
|
|
||||||
"$rust_build:futures",
|
|
||||||
"$rust_build:getopts",
|
|
||||||
"$rust_build:http",
|
|
||||||
"$rust_build:hyper",
|
|
||||||
"$rust_build:hyper_rustls",
|
|
||||||
"$rust_build:lazy_static",
|
|
||||||
"$rust_build:libc",
|
|
||||||
"$rust_build:log",
|
|
||||||
"$rust_build:rand",
|
|
||||||
"$rust_build:regex",
|
|
||||||
"$rust_build:remove_dir_all",
|
|
||||||
"$rust_build:ring",
|
|
||||||
"$rust_build:rustyline",
|
|
||||||
"$rust_build:serde_json",
|
|
||||||
"$rust_build:source_map_mappings",
|
|
||||||
"$rust_build:tempfile",
|
|
||||||
"$rust_build:tokio",
|
|
||||||
"$rust_build:tokio_executor",
|
|
||||||
"$rust_build:tokio_fs",
|
|
||||||
"$rust_build:tokio_io",
|
|
||||||
"$rust_build:tokio_process",
|
|
||||||
"$rust_build:tokio_threadpool",
|
|
||||||
"$rust_build:url",
|
|
||||||
]
|
|
||||||
if (is_win) {
|
|
||||||
main_extern += [ "$rust_build:winapi" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
ts_sources = [
|
|
||||||
"js/assets.ts",
|
|
||||||
"js/blob.ts",
|
|
||||||
"js/buffer.ts",
|
|
||||||
"js/build.ts",
|
|
||||||
"js/chmod.ts",
|
|
||||||
"js/console_table.ts",
|
|
||||||
"js/compiler.ts",
|
|
||||||
"js/console.ts",
|
|
||||||
"js/copy_file.ts",
|
|
||||||
"js/core.ts",
|
|
||||||
"js/custom_event.ts",
|
|
||||||
"js/deno.ts",
|
|
||||||
"js/dir.ts",
|
|
||||||
"js/dispatch.ts",
|
|
||||||
"js/dom_types.ts",
|
|
||||||
"js/errors.ts",
|
|
||||||
"js/event.ts",
|
|
||||||
"js/event_target.ts",
|
|
||||||
"js/fetch.ts",
|
|
||||||
"js/format_error.ts",
|
|
||||||
"js/dom_file.ts",
|
|
||||||
"js/file_info.ts",
|
|
||||||
"js/files.ts",
|
|
||||||
"js/flatbuffers.ts",
|
|
||||||
"js/form_data.ts",
|
|
||||||
"js/globals.ts",
|
|
||||||
"js/headers.ts",
|
|
||||||
"js/io.ts",
|
|
||||||
"js/lib.web_assembly.d.ts",
|
|
||||||
"js/location.ts",
|
|
||||||
"js/main.ts",
|
|
||||||
"js/make_temp_dir.ts",
|
|
||||||
"js/metrics.ts",
|
|
||||||
"js/mkdir.ts",
|
|
||||||
"js/mock_builtin.js",
|
|
||||||
"js/net.ts",
|
|
||||||
"js/os.ts",
|
|
||||||
"js/permissions.ts",
|
|
||||||
"js/plugins.d.ts",
|
|
||||||
"js/process.ts",
|
|
||||||
"js/read_dir.ts",
|
|
||||||
"js/read_file.ts",
|
|
||||||
"js/read_link.ts",
|
|
||||||
"js/remove.ts",
|
|
||||||
"js/rename.ts",
|
|
||||||
"js/repl.ts",
|
|
||||||
"js/resources.ts",
|
|
||||||
"js/stat.ts",
|
|
||||||
"js/symlink.ts",
|
|
||||||
"js/text_encoding.ts",
|
|
||||||
"js/timers.ts",
|
|
||||||
"js/truncate.ts",
|
|
||||||
"js/types.ts",
|
|
||||||
"js/url.ts",
|
|
||||||
"js/url_search_params.ts",
|
|
||||||
"js/util.ts",
|
|
||||||
"js/window.ts",
|
|
||||||
"js/workers.ts",
|
|
||||||
"js/write_file.ts",
|
|
||||||
"js/performance.ts",
|
|
||||||
"js/version.ts",
|
|
||||||
"tsconfig.json",
|
|
||||||
|
|
||||||
# Listing package.json and yarn.lock as sources ensures the bundle is rebuilt
|
|
||||||
# when npm packages are added/removed or their contents changes.
|
|
||||||
"package.json",
|
|
||||||
"third_party/yarn.lock",
|
|
||||||
]
|
|
||||||
|
|
||||||
# When Cargo is driving the build, GN/Ninja are used to produce these non-Rust
|
|
||||||
# targets. Cargo handles all Rust source files and the final linking step.
|
|
||||||
group("deno_deps") {
|
|
||||||
deps = [
|
|
||||||
":msg_rs",
|
|
||||||
":snapshot_compiler",
|
|
||||||
":snapshot_deno",
|
|
||||||
"libdeno:libdeno_static_lib",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Optimized dependencies for cross compiled builds.
|
|
||||||
# This can be removed once we get snapshots into cross compiled builds.
|
|
||||||
group("deno_deps_cross") {
|
|
||||||
testonly = true
|
|
||||||
deps = [
|
|
||||||
":compiler_bundle",
|
|
||||||
":main_bundle",
|
|
||||||
":msg_rs",
|
|
||||||
"libdeno:libdeno_static_lib",
|
|
||||||
"libdeno:test_cc",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Reads the cargo info from Cargo.toml
|
|
||||||
deno_cargo_info = exec_script("build_extra/rust/get_cargo_info.py",
|
|
||||||
[ rebase_path("Cargo.toml", root_build_dir) ],
|
|
||||||
"json")
|
|
||||||
|
|
||||||
rust_executable("deno") {
|
|
||||||
source_root = "cli/main.rs"
|
|
||||||
extern = main_extern
|
|
||||||
deps = [
|
|
||||||
":deno_deps",
|
|
||||||
]
|
|
||||||
|
|
||||||
# Extract version from Cargo.toml
|
|
||||||
# TODO integrate this into rust.gni by allowing the rust_executable template
|
|
||||||
# to specify a cargo.toml from which it will extract a version.
|
|
||||||
crate_version = deno_cargo_info.version
|
|
||||||
inputs = [
|
|
||||||
"Cargo.toml",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
rust_test("test_rs") {
|
|
||||||
source_root = "cli/main.rs"
|
|
||||||
extern = main_extern
|
|
||||||
deps = [
|
|
||||||
":deno_deps",
|
|
||||||
]
|
|
||||||
|
|
||||||
# Extract version from Cargo.toml
|
|
||||||
crate_version = deno_cargo_info.version
|
|
||||||
inputs = [
|
|
||||||
"Cargo.toml",
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,103 +18,3 @@ rust_executable("hyper_hello") {
|
||||||
"$rust_build:ring",
|
"$rust_build:ring",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
# Generates the core TypeScript type library for deno that will be
|
|
||||||
# included in the runtime bundle
|
|
||||||
run_node("deno_runtime_declaration") {
|
|
||||||
out_dir = target_gen_dir
|
|
||||||
sources = ts_sources
|
|
||||||
outputs = [
|
|
||||||
"$out_dir/lib/lib.deno_runtime.d.ts",
|
|
||||||
]
|
|
||||||
deps = [
|
|
||||||
":msg_ts",
|
|
||||||
]
|
|
||||||
inputs = ts_sources + [
|
|
||||||
"tools/ts_library_builder/tsconfig.json",
|
|
||||||
"tools/ts_library_builder/main.ts",
|
|
||||||
"tools/ts_library_builder/build_library.ts",
|
|
||||||
"tools/ts_library_builder/ast_util.ts",
|
|
||||||
]
|
|
||||||
args = [
|
|
||||||
rebase_path("node_modules/ts-node/dist/bin.js", root_build_dir),
|
|
||||||
"--project",
|
|
||||||
rebase_path("tools/ts_library_builder/tsconfig.json"),
|
|
||||||
"--skip-ignore",
|
|
||||||
rebase_path("tools/ts_library_builder/main.ts", root_build_dir),
|
|
||||||
"--basePath",
|
|
||||||
rebase_path(".", root_build_dir),
|
|
||||||
"--inline",
|
|
||||||
rebase_path("js/lib.web_assembly.d.ts", root_build_dir),
|
|
||||||
"--buildPath",
|
|
||||||
rebase_path(root_build_dir, root_build_dir),
|
|
||||||
"--outFile",
|
|
||||||
rebase_path(outputs[0], root_build_dir),
|
|
||||||
"--silent",
|
|
||||||
]
|
|
||||||
if (is_debug) {
|
|
||||||
args += [ "--debug" ]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bundle("main_bundle") {
|
|
||||||
out_dir = "$target_gen_dir/bundle/"
|
|
||||||
out_name = "main"
|
|
||||||
deps = [
|
|
||||||
":deno_runtime_declaration",
|
|
||||||
":msg_ts",
|
|
||||||
":write_gn_args",
|
|
||||||
]
|
|
||||||
data = [
|
|
||||||
"$target_gen_dir/gn_args.txt",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
bundle("compiler_bundle") {
|
|
||||||
out_dir = "$target_gen_dir/bundle/"
|
|
||||||
out_name = "compiler"
|
|
||||||
deps = [
|
|
||||||
":deno_runtime_declaration",
|
|
||||||
":msg_ts",
|
|
||||||
":write_gn_args",
|
|
||||||
]
|
|
||||||
data = [
|
|
||||||
"$target_gen_dir/gn_args.txt",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
ts_flatbuffer("msg_ts") {
|
|
||||||
sources = [
|
|
||||||
"cli/msg.fbs",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
rust_flatbuffer("msg_rs") {
|
|
||||||
sources = [
|
|
||||||
"cli/msg.fbs",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Generates $target_gen_dir/snapshot_deno.bin
|
|
||||||
snapshot("snapshot_deno") {
|
|
||||||
source_root = "$target_gen_dir/bundle/main.js"
|
|
||||||
deps = [
|
|
||||||
":main_bundle",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Generates $target_gen_dir/snapshot_compiler.bin
|
|
||||||
snapshot("snapshot_compiler") {
|
|
||||||
source_root = "$target_gen_dir/bundle/compiler.js"
|
|
||||||
deps = [
|
|
||||||
":compiler_bundle",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
action("write_gn_args") {
|
|
||||||
script = "//tools/write_gn_args.py"
|
|
||||||
outputs = [
|
|
||||||
"$target_gen_dir/gn_args.txt",
|
|
||||||
]
|
|
||||||
args = [ rebase_path(outputs[0], root_build_dir) ]
|
|
||||||
}
|
|
||||||
|
|
53
Cargo.toml
53
Cargo.toml
|
@ -1,56 +1,5 @@
|
||||||
# Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
|
||||||
# Dummy package info required by `cargo fetch`.
|
|
||||||
# Use tools/sync_third_party.py to install deps after editing this file.
|
|
||||||
# Deno does not build with cargo. Deno uses a build system called gn.
|
|
||||||
# See build_extra/rust/BUILD.gn for the manually built configuration of rust
|
|
||||||
# crates.
|
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
members = [
|
members = [
|
||||||
"./",
|
"cli",
|
||||||
"core",
|
"core",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[bin]]
|
|
||||||
name = "deno"
|
|
||||||
path = "cli/main.rs"
|
|
||||||
|
|
||||||
[package]
|
|
||||||
name = "deno"
|
|
||||||
version = "0.3.5"
|
|
||||||
edition = "2018"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
deno_core = { path = "./core" }
|
|
||||||
|
|
||||||
ansi_term = "0.11.0"
|
|
||||||
atty = "0.2.11"
|
|
||||||
dirs = "1.0.5"
|
|
||||||
flatbuffers = "0.5.0"
|
|
||||||
futures = "0.1.25"
|
|
||||||
getopts = "0.2.18"
|
|
||||||
http = "0.1.16"
|
|
||||||
hyper = "0.12.25"
|
|
||||||
hyper-rustls = "0.16.1"
|
|
||||||
integer-atomics = "1.0.2"
|
|
||||||
lazy_static = "1.3.0"
|
|
||||||
libc = "0.2.51"
|
|
||||||
log = "0.4.6"
|
|
||||||
rand = "0.6.5"
|
|
||||||
regex = "1.1.2"
|
|
||||||
remove_dir_all = "0.5.1"
|
|
||||||
ring = "0.14.6"
|
|
||||||
rustyline = "3.0.0"
|
|
||||||
serde_json = "1.0.39"
|
|
||||||
source-map-mappings = "0.5.0"
|
|
||||||
tempfile = "3.0.7"
|
|
||||||
tokio = "0.1.18"
|
|
||||||
tokio-executor = "0.1.7"
|
|
||||||
tokio-fs = "0.1.6"
|
|
||||||
tokio-io = "0.1.12"
|
|
||||||
tokio-process = "0.2.3"
|
|
||||||
tokio-threadpool = "0.1.13"
|
|
||||||
url = "1.7.2"
|
|
||||||
|
|
||||||
[target.'cfg(windows)'.dependencies]
|
|
||||||
winapi = "0.3.6"
|
|
||||||
|
|
152
build.rs
152
build.rs
|
@ -1,152 +0,0 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
|
||||||
|
|
||||||
// Run "cargo build -vv" if you want to see gn output.
|
|
||||||
|
|
||||||
#![deny(warnings)]
|
|
||||||
|
|
||||||
use std::env;
|
|
||||||
use std::path::{self, Path, PathBuf};
|
|
||||||
use std::process::Command;
|
|
||||||
|
|
||||||
fn main() {
|
|
||||||
let gn_mode = if cfg!(target_os = "windows") {
|
|
||||||
// On Windows, we need to link with a release build of libdeno, because
|
|
||||||
// rust always uses the release CRT.
|
|
||||||
// TODO(piscisaureus): make linking with debug libdeno possible.
|
|
||||||
String::from("release")
|
|
||||||
} else {
|
|
||||||
// Cargo sets PROFILE to either "debug" or "release", which conveniently
|
|
||||||
// matches the build modes we support.
|
|
||||||
env::var("PROFILE").unwrap()
|
|
||||||
};
|
|
||||||
|
|
||||||
// Equivalent to target arch != host arch
|
|
||||||
let is_different_target_arch =
|
|
||||||
env::var("CARGO_CFG_TARGET_ARCH").unwrap().as_str() != env::var("HOST")
|
|
||||||
.unwrap()
|
|
||||||
.as_str()
|
|
||||||
.split("-")
|
|
||||||
.collect::<Vec<&str>>()[0];
|
|
||||||
|
|
||||||
// If we are using the same target as the host's default
|
|
||||||
// "rustup target list" should show your default target
|
|
||||||
let is_default_target =
|
|
||||||
env::var("TARGET").unwrap() == env::var("HOST").unwrap();
|
|
||||||
|
|
||||||
let cwd = env::current_dir().unwrap();
|
|
||||||
// If not using host default target the output folder will change
|
|
||||||
// target/release will become target/$TARGET/release
|
|
||||||
// Gn should also be using this output directory as well
|
|
||||||
// most things will work with gn using the default
|
|
||||||
// output directory but some tests depend on artifacts
|
|
||||||
// being in a specific directory relative to the main build output
|
|
||||||
let gn_out_path = cwd.join(format!(
|
|
||||||
"target/{}",
|
|
||||||
match is_default_target {
|
|
||||||
true => gn_mode.clone(),
|
|
||||||
false => format!("{}/{}", env::var("TARGET").unwrap(), gn_mode.clone()),
|
|
||||||
}
|
|
||||||
));
|
|
||||||
let gn_out_dir = normalize_path(&gn_out_path);
|
|
||||||
|
|
||||||
// Tell Cargo when to re-run this file. We do this first, so these directives
|
|
||||||
// can take effect even if something goes wrong later in the build process.
|
|
||||||
println!("cargo:rerun-if-env-changed=DENO_BUILD_PATH");
|
|
||||||
// TODO: this is obviously not appropriate here.
|
|
||||||
println!("cargo:rerun-if-env-changed=APPVEYOR_REPO_COMMIT");
|
|
||||||
|
|
||||||
// Detect if we're being invoked by the rust language server (RLS).
|
|
||||||
// Unfortunately we can't detect whether we're being run by `cargo check`.
|
|
||||||
let check_only = env::var_os("CARGO")
|
|
||||||
.map(PathBuf::from)
|
|
||||||
.as_ref()
|
|
||||||
.and_then(|p| p.file_stem())
|
|
||||||
.and_then(|f| f.to_str())
|
|
||||||
.map(|s| s.starts_with("rls"))
|
|
||||||
.unwrap_or(false);
|
|
||||||
|
|
||||||
// This helps Rust source files locate the snapshot, source map etc.
|
|
||||||
println!("cargo:rustc-env=GN_OUT_DIR={}", gn_out_dir);
|
|
||||||
|
|
||||||
let gn_target;
|
|
||||||
|
|
||||||
if check_only {
|
|
||||||
// When RLS is running "cargo check" to analyze the source code, we're not
|
|
||||||
// trying to build a working executable, rather we're just compiling all
|
|
||||||
// rust code. Therefore, make ninja build only 'msg_generated.rs'.
|
|
||||||
gn_target = "msg_rs";
|
|
||||||
|
|
||||||
// Enable the 'check_only' feature, which enables some workarounds in the
|
|
||||||
// rust source code to compile successfully without a bundle and snapshot
|
|
||||||
println!("cargo:rustc-cfg=feature=\"check-only\"");
|
|
||||||
} else {
|
|
||||||
// "Full" (non-RLS) build.
|
|
||||||
if is_different_target_arch {
|
|
||||||
gn_target = "deno_deps_cross";
|
|
||||||
} else {
|
|
||||||
gn_target = "deno_deps";
|
|
||||||
}
|
|
||||||
// Link with libdeno.a/.lib, which includes V8.
|
|
||||||
println!("cargo:rustc-link-search=native={}/obj/libdeno", gn_out_dir);
|
|
||||||
if cfg!(target_os = "windows") {
|
|
||||||
println!("cargo:rustc-link-lib=static=libdeno");
|
|
||||||
} else {
|
|
||||||
println!("cargo:rustc-link-lib=static=deno");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Link the system libraries that libdeno and V8 depend on.
|
|
||||||
if cfg!(any(target_os = "macos", target_os = "freebsd")) {
|
|
||||||
println!("cargo:rustc-link-lib=dylib=c++");
|
|
||||||
} else if cfg!(target_os = "windows") {
|
|
||||||
for lib in vec!["dbghelp", "shlwapi", "winmm", "ws2_32"] {
|
|
||||||
println!("cargo:rustc-link-lib={}", lib);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// If target_arch != host_arch disable snapshots.
|
|
||||||
// v8 snapshots seem to not be compatible with binaries
|
|
||||||
// other than the ones used to gernerate them,
|
|
||||||
// so for non native architecture builds we don't
|
|
||||||
// have an easy way to generate these snapshots.
|
|
||||||
// We can't run any binary capable of generating
|
|
||||||
// compatible snapshots without emulating the
|
|
||||||
// target architecture.
|
|
||||||
if is_different_target_arch {
|
|
||||||
// no-snapshot-init is not related to v8_use_snapshots
|
|
||||||
println!("cargo:rustc-cfg=feature=\"no-snapshot-init\"");
|
|
||||||
}
|
|
||||||
|
|
||||||
if !gn_out_path.join("build.ninja").exists() {
|
|
||||||
let status = Command::new("python")
|
|
||||||
.env("DENO_BUILD_PATH", &gn_out_dir)
|
|
||||||
.env("DENO_BUILD_MODE", &gn_mode)
|
|
||||||
.arg("./tools/setup.py")
|
|
||||||
.status()
|
|
||||||
.expect("setup.py failed");
|
|
||||||
assert!(status.success());
|
|
||||||
}
|
|
||||||
|
|
||||||
let status = Command::new("python")
|
|
||||||
.env("DENO_BUILD_PATH", &gn_out_dir)
|
|
||||||
.env("DENO_BUILD_MODE", &gn_mode)
|
|
||||||
.arg("./tools/build.py")
|
|
||||||
.arg(gn_target)
|
|
||||||
.arg("-v")
|
|
||||||
.status()
|
|
||||||
.expect("build.py failed");
|
|
||||||
assert!(status.success());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Utility function to make a path absolute, normalizing it to use forward
|
|
||||||
// slashes only. The returned value is an owned String, otherwise panics.
|
|
||||||
fn normalize_path<T: AsRef<Path>>(path: T) -> String {
|
|
||||||
path
|
|
||||||
.as_ref()
|
|
||||||
.to_str()
|
|
||||||
.unwrap()
|
|
||||||
.to_owned()
|
|
||||||
.chars()
|
|
||||||
.map(|c| if path::is_separator(c) { '/' } else { c })
|
|
||||||
.collect()
|
|
||||||
}
|
|
270
cli/BUILD.gn
Normal file
270
cli/BUILD.gn
Normal file
|
@ -0,0 +1,270 @@
|
||||||
|
# Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
|
import("//build/toolchain/cc_wrapper.gni")
|
||||||
|
import("//build_extra/flatbuffers/flatbuffer.gni")
|
||||||
|
import("//build_extra/flatbuffers/rust/rust_flatbuffer.gni")
|
||||||
|
import("//build_extra/rust/rust.gni")
|
||||||
|
import("//third_party/v8/gni/v8.gni")
|
||||||
|
import("//third_party/v8/snapshot_toolchain.gni")
|
||||||
|
import("../deno.gni")
|
||||||
|
|
||||||
|
main_extern = [
|
||||||
|
"../core:deno_core",
|
||||||
|
|
||||||
|
"$rust_build:ansi_term",
|
||||||
|
"$rust_build:atty",
|
||||||
|
"$rust_build:dirs",
|
||||||
|
"$rust_build:flatbuffers",
|
||||||
|
"$rust_build:futures",
|
||||||
|
"$rust_build:getopts",
|
||||||
|
"$rust_build:http",
|
||||||
|
"$rust_build:hyper",
|
||||||
|
"$rust_build:hyper_rustls",
|
||||||
|
"$rust_build:lazy_static",
|
||||||
|
"$rust_build:libc",
|
||||||
|
"$rust_build:log",
|
||||||
|
"$rust_build:rand",
|
||||||
|
"$rust_build:regex",
|
||||||
|
"$rust_build:remove_dir_all",
|
||||||
|
"$rust_build:ring",
|
||||||
|
"$rust_build:rustyline",
|
||||||
|
"$rust_build:serde_json",
|
||||||
|
"$rust_build:source_map_mappings",
|
||||||
|
"$rust_build:tempfile",
|
||||||
|
"$rust_build:tokio",
|
||||||
|
"$rust_build:tokio_executor",
|
||||||
|
"$rust_build:tokio_fs",
|
||||||
|
"$rust_build:tokio_io",
|
||||||
|
"$rust_build:tokio_process",
|
||||||
|
"$rust_build:tokio_threadpool",
|
||||||
|
"$rust_build:url",
|
||||||
|
]
|
||||||
|
if (is_win) {
|
||||||
|
main_extern += [ "$rust_build:winapi" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
ts_sources = [
|
||||||
|
"../js/assets.ts",
|
||||||
|
"../js/blob.ts",
|
||||||
|
"../js/buffer.ts",
|
||||||
|
"../js/build.ts",
|
||||||
|
"../js/chmod.ts",
|
||||||
|
"../js/console_table.ts",
|
||||||
|
"../js/compiler.ts",
|
||||||
|
"../js/console.ts",
|
||||||
|
"../js/copy_file.ts",
|
||||||
|
"../js/core.ts",
|
||||||
|
"../js/custom_event.ts",
|
||||||
|
"../js/deno.ts",
|
||||||
|
"../js/dir.ts",
|
||||||
|
"../js/dispatch.ts",
|
||||||
|
"../js/dom_types.ts",
|
||||||
|
"../js/errors.ts",
|
||||||
|
"../js/event.ts",
|
||||||
|
"../js/event_target.ts",
|
||||||
|
"../js/fetch.ts",
|
||||||
|
"../js/format_error.ts",
|
||||||
|
"../js/dom_file.ts",
|
||||||
|
"../js/file_info.ts",
|
||||||
|
"../js/files.ts",
|
||||||
|
"../js/flatbuffers.ts",
|
||||||
|
"../js/form_data.ts",
|
||||||
|
"../js/globals.ts",
|
||||||
|
"../js/headers.ts",
|
||||||
|
"../js/io.ts",
|
||||||
|
"../js/lib.web_assembly.d.ts",
|
||||||
|
"../js/location.ts",
|
||||||
|
"../js/main.ts",
|
||||||
|
"../js/make_temp_dir.ts",
|
||||||
|
"../js/metrics.ts",
|
||||||
|
"../js/mkdir.ts",
|
||||||
|
"../js/mock_builtin.js",
|
||||||
|
"../js/net.ts",
|
||||||
|
"../js/os.ts",
|
||||||
|
"../js/permissions.ts",
|
||||||
|
"../js/plugins.d.ts",
|
||||||
|
"../js/process.ts",
|
||||||
|
"../js/read_dir.ts",
|
||||||
|
"../js/read_file.ts",
|
||||||
|
"../js/read_link.ts",
|
||||||
|
"../js/remove.ts",
|
||||||
|
"../js/rename.ts",
|
||||||
|
"../js/repl.ts",
|
||||||
|
"../js/resources.ts",
|
||||||
|
"../js/stat.ts",
|
||||||
|
"../js/symlink.ts",
|
||||||
|
"../js/text_encoding.ts",
|
||||||
|
"../js/timers.ts",
|
||||||
|
"../js/truncate.ts",
|
||||||
|
"../js/types.ts",
|
||||||
|
"../js/url.ts",
|
||||||
|
"../js/url_search_params.ts",
|
||||||
|
"../js/util.ts",
|
||||||
|
"../js/window.ts",
|
||||||
|
"../js/workers.ts",
|
||||||
|
"../js/write_file.ts",
|
||||||
|
"../js/performance.ts",
|
||||||
|
"../js/version.ts",
|
||||||
|
"../tsconfig.json",
|
||||||
|
|
||||||
|
# Listing package.json and yarn.lock as sources ensures the bundle is rebuilt
|
||||||
|
# when npm packages are added/removed or their contents changes.
|
||||||
|
"../package.json",
|
||||||
|
"../third_party/yarn.lock",
|
||||||
|
]
|
||||||
|
|
||||||
|
# When Cargo is driving the build, GN/Ninja are used to produce these non-Rust
|
||||||
|
# targets. Cargo handles all Rust source files and the final linking step.
|
||||||
|
group("deno_deps") {
|
||||||
|
deps = [
|
||||||
|
":msg_rs",
|
||||||
|
":snapshot_compiler",
|
||||||
|
":snapshot_deno",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
# Optimized dependencies for cross compiled builds.
|
||||||
|
# This can be removed once we get snapshots into cross compiled builds.
|
||||||
|
group("deno_deps_cross") {
|
||||||
|
testonly = true
|
||||||
|
deps = [
|
||||||
|
":compiler_bundle",
|
||||||
|
":main_bundle",
|
||||||
|
":msg_rs",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
# Reads the cargo info from Cargo.toml
|
||||||
|
deno_cargo_info = exec_script(
|
||||||
|
"../build_extra/rust/get_cargo_info.py",
|
||||||
|
[ rebase_path("Cargo.toml", root_build_dir) ], "json")
|
||||||
|
|
||||||
|
rust_executable("deno") {
|
||||||
|
source_root = "main.rs"
|
||||||
|
extern = main_extern
|
||||||
|
deps = [
|
||||||
|
":deno_deps",
|
||||||
|
]
|
||||||
|
|
||||||
|
# Extract version from Cargo.toml
|
||||||
|
# TODO integrate this into rust.gni by allowing the rust_executable template
|
||||||
|
# to specify a cargo.toml from which it will extract a version.
|
||||||
|
crate_version = deno_cargo_info.version
|
||||||
|
inputs = [
|
||||||
|
"Cargo.toml",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
rust_test("test_rs") {
|
||||||
|
source_root = "main.rs"
|
||||||
|
extern = main_extern
|
||||||
|
deps = [
|
||||||
|
":deno_deps",
|
||||||
|
]
|
||||||
|
|
||||||
|
# Extract version from Cargo.toml
|
||||||
|
crate_version = deno_cargo_info.version
|
||||||
|
inputs = [
|
||||||
|
"Cargo.toml",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Generates the core TypeScript type library for deno that will be
|
||||||
|
# included in the runtime bundle
|
||||||
|
run_node("deno_runtime_declaration") {
|
||||||
|
out_dir = target_gen_dir
|
||||||
|
sources = ts_sources
|
||||||
|
outputs = [
|
||||||
|
"$out_dir/lib/lib.deno_runtime.d.ts",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
":msg_ts",
|
||||||
|
]
|
||||||
|
inputs = ts_sources + [
|
||||||
|
"//tools/ts_library_builder/tsconfig.json",
|
||||||
|
"//tools/ts_library_builder/main.ts",
|
||||||
|
"//tools/ts_library_builder/build_library.ts",
|
||||||
|
"//tools/ts_library_builder/ast_util.ts",
|
||||||
|
]
|
||||||
|
args = [
|
||||||
|
rebase_path("//node_modules/ts-node/dist/bin.js", root_build_dir),
|
||||||
|
"--project",
|
||||||
|
rebase_path("//tools/ts_library_builder/tsconfig.json"),
|
||||||
|
"--skip-ignore",
|
||||||
|
rebase_path("//tools/ts_library_builder/main.ts", root_build_dir),
|
||||||
|
"--basePath",
|
||||||
|
rebase_path("//", root_build_dir),
|
||||||
|
"--inline",
|
||||||
|
rebase_path("//js/lib.web_assembly.d.ts", root_build_dir),
|
||||||
|
"--buildPath",
|
||||||
|
rebase_path(root_build_dir, root_build_dir),
|
||||||
|
"--outFile",
|
||||||
|
rebase_path(outputs[0], root_build_dir),
|
||||||
|
"--silent",
|
||||||
|
]
|
||||||
|
if (is_debug) {
|
||||||
|
args += [ "--debug" ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bundle("main_bundle") {
|
||||||
|
out_dir = "$target_gen_dir/bundle/"
|
||||||
|
out_name = "main"
|
||||||
|
deps = [
|
||||||
|
":deno_runtime_declaration",
|
||||||
|
":msg_ts",
|
||||||
|
":write_gn_args",
|
||||||
|
]
|
||||||
|
data = [
|
||||||
|
"$target_gen_dir/gn_args.txt",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
bundle("compiler_bundle") {
|
||||||
|
out_dir = "$target_gen_dir/bundle/"
|
||||||
|
out_name = "compiler"
|
||||||
|
deps = [
|
||||||
|
":deno_runtime_declaration",
|
||||||
|
":msg_ts",
|
||||||
|
":write_gn_args",
|
||||||
|
]
|
||||||
|
data = [
|
||||||
|
"$target_gen_dir/gn_args.txt",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
ts_flatbuffer("msg_ts") {
|
||||||
|
sources = [
|
||||||
|
"msg.fbs",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
rust_flatbuffer("msg_rs") {
|
||||||
|
sources = [
|
||||||
|
"msg.fbs",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
# Generates $target_gen_dir/snapshot_deno.bin
|
||||||
|
snapshot("snapshot_deno") {
|
||||||
|
source_root = "$target_gen_dir/bundle/main.js"
|
||||||
|
deps = [
|
||||||
|
":main_bundle",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
# Generates $target_gen_dir/snapshot_compiler.bin
|
||||||
|
snapshot("snapshot_compiler") {
|
||||||
|
source_root = "$target_gen_dir/bundle/compiler.js"
|
||||||
|
deps = [
|
||||||
|
":compiler_bundle",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
action("write_gn_args") {
|
||||||
|
script = "//tools/write_gn_args.py"
|
||||||
|
outputs = [
|
||||||
|
"$target_gen_dir/gn_args.txt",
|
||||||
|
]
|
||||||
|
args = [ rebase_path(outputs[0], root_build_dir) ]
|
||||||
|
}
|
51
cli/Cargo.toml
Normal file
51
cli/Cargo.toml
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
# Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
|
# Dummy package info required by `cargo fetch`.
|
||||||
|
# Use tools/sync_third_party.py to install deps after editing this file.
|
||||||
|
# Deno does not build with cargo. Deno uses a build system called gn.
|
||||||
|
# See build_extra/rust/BUILD.gn for the manually built configuration of rust
|
||||||
|
# crates.
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "deno"
|
||||||
|
path = "main.rs"
|
||||||
|
|
||||||
|
[package]
|
||||||
|
name = "deno"
|
||||||
|
version = "0.3.5"
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
deno_core = { path = "../core" }
|
||||||
|
|
||||||
|
ansi_term = "0.11.0"
|
||||||
|
atty = "0.2.11"
|
||||||
|
dirs = "1.0.5"
|
||||||
|
flatbuffers = "0.5.0"
|
||||||
|
futures = "0.1.25"
|
||||||
|
getopts = "0.2.18"
|
||||||
|
http = "0.1.16"
|
||||||
|
hyper = "0.12.25"
|
||||||
|
hyper-rustls = "0.16.1"
|
||||||
|
integer-atomics = "1.0.2"
|
||||||
|
lazy_static = "1.3.0"
|
||||||
|
libc = "0.2.51"
|
||||||
|
log = "0.4.6"
|
||||||
|
rand = "0.6.5"
|
||||||
|
regex = "1.1.2"
|
||||||
|
remove_dir_all = "0.5.1"
|
||||||
|
ring = "0.14.6"
|
||||||
|
rustyline = "3.0.0"
|
||||||
|
serde_json = "1.0.39"
|
||||||
|
source-map-mappings = "0.5.0"
|
||||||
|
tempfile = "3.0.7"
|
||||||
|
tokio = "0.1.18"
|
||||||
|
tokio-executor = "0.1.7"
|
||||||
|
tokio-fs = "0.1.6"
|
||||||
|
tokio-io = "0.1.12"
|
||||||
|
tokio-process = "0.2.3"
|
||||||
|
tokio-threadpool = "0.1.13"
|
||||||
|
url = "1.7.2"
|
||||||
|
|
||||||
|
[target.'cfg(windows)'.dependencies]
|
||||||
|
winapi = "0.3.6"
|
20
cli/build.rs
Normal file
20
cli/build.rs
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
|
// Run "cargo build -vv" if you want to see gn output.
|
||||||
|
mod gn {
|
||||||
|
include!("../gn.rs");
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let build = gn::Build::setup();
|
||||||
|
|
||||||
|
let gn_target = if build.check_only {
|
||||||
|
// When RLS is running "cargo check" to analyze the source code, we're not
|
||||||
|
// trying to build a working executable, rather we're just compiling all
|
||||||
|
// rust code. Therefore, make ninja build only 'msg_generated.rs'.
|
||||||
|
"cli:msg_rs"
|
||||||
|
} else {
|
||||||
|
"cli:deno_deps"
|
||||||
|
};
|
||||||
|
|
||||||
|
build.run(gn_target);
|
||||||
|
}
|
|
@ -64,9 +64,9 @@ impl<'a> fmt::Display for JSErrorColor<'a> {
|
||||||
let e = self.0;
|
let e = self.0;
|
||||||
if e.script_resource_name.is_some() {
|
if e.script_resource_name.is_some() {
|
||||||
let script_resource_name = e.script_resource_name.as_ref().unwrap();
|
let script_resource_name = e.script_resource_name.as_ref().unwrap();
|
||||||
// Avoid showing internal code from gen/bundle/main.js
|
// Avoid showing internal code from gen/cli/bundle/main.js
|
||||||
if script_resource_name != "gen/bundle/main.js"
|
if script_resource_name != "gen/cli/bundle/main.js"
|
||||||
&& script_resource_name != "gen/bundle/compiler.js"
|
&& script_resource_name != "gen/cli/bundle/compiler.js"
|
||||||
{
|
{
|
||||||
if e.line_number.is_some() && e.start_column.is_some() {
|
if e.line_number.is_some() && e.start_column.is_some() {
|
||||||
assert!(e.line_number.is_some());
|
assert!(e.line_number.is_some());
|
||||||
|
@ -216,14 +216,16 @@ fn builtin_source_map(_: &str) -> Option<Vec<u8>> {
|
||||||
#[cfg(not(feature = "check-only"))]
|
#[cfg(not(feature = "check-only"))]
|
||||||
fn builtin_source_map(script_name: &str) -> Option<Vec<u8>> {
|
fn builtin_source_map(script_name: &str) -> Option<Vec<u8>> {
|
||||||
match script_name {
|
match script_name {
|
||||||
"gen/bundle/main.js" => Some(
|
"gen/cli/bundle/main.js" => Some(
|
||||||
include_bytes!(concat!(env!("GN_OUT_DIR"), "/gen/bundle/main.js.map"))
|
|
||||||
.to_vec(),
|
|
||||||
),
|
|
||||||
"gen/bundle/compiler.js" => Some(
|
|
||||||
include_bytes!(concat!(
|
include_bytes!(concat!(
|
||||||
env!("GN_OUT_DIR"),
|
env!("GN_OUT_DIR"),
|
||||||
"/gen/bundle/compiler.js.map"
|
"/gen/cli/bundle/main.js.map"
|
||||||
|
)).to_vec(),
|
||||||
|
),
|
||||||
|
"gen/cli/bundle/compiler.js" => Some(
|
||||||
|
include_bytes!(concat!(
|
||||||
|
env!("GN_OUT_DIR"),
|
||||||
|
"/gen/cli/bundle/compiler.js.map"
|
||||||
)).to_vec(),
|
)).to_vec(),
|
||||||
),
|
),
|
||||||
_ => None,
|
_ => None,
|
||||||
|
@ -381,7 +383,7 @@ mod tests {
|
||||||
frames: vec![StackFrame {
|
frames: vec![StackFrame {
|
||||||
line: 11,
|
line: 11,
|
||||||
column: 12,
|
column: 12,
|
||||||
script_name: "gen/bundle/main.js".to_string(),
|
script_name: "gen/cli/bundle/main.js".to_string(),
|
||||||
function_name: "setLogDebug".to_string(),
|
function_name: "setLogDebug".to_string(),
|
||||||
is_eval: false,
|
is_eval: false,
|
||||||
is_constructor: false,
|
is_constructor: false,
|
||||||
|
|
|
@ -388,7 +388,7 @@ table OpenRes {
|
||||||
|
|
||||||
table Read {
|
table Read {
|
||||||
rid: uint32;
|
rid: uint32;
|
||||||
// (ptr, len) is passed as second parameter to libdeno.send().
|
// (ptr, len) is passed as second parameter to Deno.core.send().
|
||||||
}
|
}
|
||||||
|
|
||||||
table ReadRes {
|
table ReadRes {
|
||||||
|
|
|
@ -11,7 +11,7 @@ use std::sync::atomic::Ordering;
|
||||||
|
|
||||||
// GN_OUT_DIR is set either by build.rs (for the Cargo build), or by
|
// GN_OUT_DIR is set either by build.rs (for the Cargo build), or by
|
||||||
// build_extra/rust/run.py (for the GN+Ninja build).
|
// build_extra/rust/run.py (for the GN+Ninja build).
|
||||||
include!(concat!(env!("GN_OUT_DIR"), "/gen/msg_generated.rs"));
|
include!(concat!(env!("GN_OUT_DIR"), "/gen/cli/msg_generated.rs"));
|
||||||
|
|
||||||
impl<'a> From<&'a isolate_state::Metrics> for MetricsResArgs {
|
impl<'a> From<&'a isolate_state::Metrics> for MetricsResArgs {
|
||||||
fn from(m: &'a isolate_state::Metrics) -> Self {
|
fn from(m: &'a isolate_state::Metrics) -> Self {
|
||||||
|
|
|
@ -7,19 +7,19 @@ pub fn deno_isolate_init() -> StartupData {
|
||||||
debug!("Deno isolate init without snapshots.");
|
debug!("Deno isolate init without snapshots.");
|
||||||
#[cfg(not(feature = "check-only"))]
|
#[cfg(not(feature = "check-only"))]
|
||||||
let source_bytes =
|
let source_bytes =
|
||||||
include_bytes!(concat!(env!("GN_OUT_DIR"), "/gen/bundle/main.js"));
|
include_bytes!(concat!(env!("GN_OUT_DIR"), "/gen/cli/bundle/main.js"));
|
||||||
#[cfg(feature = "check-only")]
|
#[cfg(feature = "check-only")]
|
||||||
let source_bytes = vec![];
|
let source_bytes = vec![];
|
||||||
|
|
||||||
StartupData::Script(Script {
|
StartupData::Script(Script {
|
||||||
filename: "gen/bundle/main.js".to_string(),
|
filename: "gen/cli/bundle/main.js".to_string(),
|
||||||
source: std::str::from_utf8(&source_bytes[..]).unwrap().to_string(),
|
source: std::str::from_utf8(&source_bytes[..]).unwrap().to_string(),
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
debug!("Deno isolate init with snapshots.");
|
debug!("Deno isolate init with snapshots.");
|
||||||
#[cfg(not(any(feature = "check-only", feature = "no-snapshot-init")))]
|
#[cfg(not(any(feature = "check-only", feature = "no-snapshot-init")))]
|
||||||
let data =
|
let data =
|
||||||
include_bytes!(concat!(env!("GN_OUT_DIR"), "/gen/snapshot_deno.bin"));
|
include_bytes!(concat!(env!("GN_OUT_DIR"), "/gen/cli/snapshot_deno.bin"));
|
||||||
#[cfg(any(feature = "check-only", feature = "no-snapshot-init"))]
|
#[cfg(any(feature = "check-only", feature = "no-snapshot-init"))]
|
||||||
let data = vec![];
|
let data = vec![];
|
||||||
|
|
||||||
|
@ -33,20 +33,24 @@ pub fn compiler_isolate_init() -> StartupData {
|
||||||
if cfg!(feature = "no-snapshot-init") {
|
if cfg!(feature = "no-snapshot-init") {
|
||||||
debug!("Deno isolate init without snapshots.");
|
debug!("Deno isolate init without snapshots.");
|
||||||
#[cfg(not(feature = "check-only"))]
|
#[cfg(not(feature = "check-only"))]
|
||||||
let source_bytes =
|
let source_bytes = include_bytes!(concat!(
|
||||||
include_bytes!(concat!(env!("GN_OUT_DIR"), "/gen/bundle/compiler.js"));
|
env!("GN_OUT_DIR"),
|
||||||
|
"/gen/cli/bundle/compiler.js"
|
||||||
|
));
|
||||||
#[cfg(feature = "check-only")]
|
#[cfg(feature = "check-only")]
|
||||||
let source_bytes = vec![];
|
let source_bytes = vec![];
|
||||||
|
|
||||||
StartupData::Script(Script {
|
StartupData::Script(Script {
|
||||||
filename: "gen/bundle/compiler.js".to_string(),
|
filename: "gen/cli/bundle/compiler.js".to_string(),
|
||||||
source: std::str::from_utf8(&source_bytes[..]).unwrap().to_string(),
|
source: std::str::from_utf8(&source_bytes[..]).unwrap().to_string(),
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
debug!("Deno isolate init with snapshots.");
|
debug!("Deno isolate init with snapshots.");
|
||||||
#[cfg(not(any(feature = "check-only", feature = "no-snapshot-init")))]
|
#[cfg(not(any(feature = "check-only", feature = "no-snapshot-init")))]
|
||||||
let data =
|
let data = include_bytes!(concat!(
|
||||||
include_bytes!(concat!(env!("GN_OUT_DIR"), "/gen/snapshot_compiler.bin"));
|
env!("GN_OUT_DIR"),
|
||||||
|
"/gen/cli/snapshot_compiler.bin"
|
||||||
|
));
|
||||||
#[cfg(any(feature = "check-only", feature = "no-snapshot-init"))]
|
#[cfg(any(feature = "check-only", feature = "no-snapshot-init"))]
|
||||||
let data = vec![];
|
let data = vec![];
|
||||||
|
|
||||||
|
|
|
@ -3,16 +3,19 @@ import("//build_extra/rust/rust.gni")
|
||||||
group("default") {
|
group("default") {
|
||||||
testonly = true
|
testonly = true
|
||||||
deps = [
|
deps = [
|
||||||
|
":deno_core",
|
||||||
":deno_core_http_bench",
|
":deno_core_http_bench",
|
||||||
":deno_core_http_bench_test",
|
":deno_core_http_bench_test",
|
||||||
":deno_core_test",
|
":deno_core_test",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
deno_core_deps = [
|
group("deno_core_deps") {
|
||||||
"../libdeno:libdeno_static_lib",
|
deps = [
|
||||||
"../libdeno:v8",
|
"libdeno:libdeno_static_lib",
|
||||||
]
|
"libdeno:v8",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
# deno_core does not depend on flatbuffers nor tokio.
|
# deno_core does not depend on flatbuffers nor tokio.
|
||||||
main_extern = [
|
main_extern = [
|
||||||
|
@ -24,13 +27,17 @@ main_extern = [
|
||||||
|
|
||||||
rust_crate("deno_core") {
|
rust_crate("deno_core") {
|
||||||
source_root = "lib.rs"
|
source_root = "lib.rs"
|
||||||
deps = deno_core_deps
|
deps = [
|
||||||
|
":deno_core_deps",
|
||||||
|
]
|
||||||
extern = main_extern
|
extern = main_extern
|
||||||
}
|
}
|
||||||
|
|
||||||
rust_test("deno_core_test") {
|
rust_test("deno_core_test") {
|
||||||
source_root = "lib.rs"
|
source_root = "lib.rs"
|
||||||
deps = deno_core_deps
|
deps = [
|
||||||
|
":deno_core_deps",
|
||||||
|
]
|
||||||
extern = main_extern
|
extern = main_extern
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,12 +55,16 @@ if (is_win) {
|
||||||
|
|
||||||
rust_executable("deno_core_http_bench") {
|
rust_executable("deno_core_http_bench") {
|
||||||
source_root = "http_bench.rs"
|
source_root = "http_bench.rs"
|
||||||
deps = deno_core_deps
|
deps = [
|
||||||
|
":deno_core_deps",
|
||||||
|
]
|
||||||
extern = http_bench_extern
|
extern = http_bench_extern
|
||||||
}
|
}
|
||||||
|
|
||||||
rust_test("deno_core_http_bench_test") {
|
rust_test("deno_core_http_bench_test") {
|
||||||
source_root = "http_bench.rs"
|
source_root = "http_bench.rs"
|
||||||
deps = deno_core_deps
|
deps = [
|
||||||
|
":deno_core_deps",
|
||||||
|
]
|
||||||
extern = http_bench_extern
|
extern = http_bench_extern
|
||||||
}
|
}
|
||||||
|
|
30
core/build.rs
Normal file
30
core/build.rs
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
|
// Run "cargo build -vv" if you want to see gn output.
|
||||||
|
mod gn {
|
||||||
|
include!("../gn.rs");
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let build = gn::Build::setup();
|
||||||
|
|
||||||
|
println!(
|
||||||
|
"cargo:rustc-link-search=native={}/obj/core/libdeno",
|
||||||
|
build.gn_out_dir
|
||||||
|
);
|
||||||
|
if cfg!(target_os = "windows") {
|
||||||
|
println!("cargo:rustc-link-lib=static=libdeno");
|
||||||
|
} else {
|
||||||
|
println!("cargo:rustc-link-lib=static=deno");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Link the system libraries that libdeno and V8 depend on.
|
||||||
|
if cfg!(any(target_os = "macos", target_os = "freebsd")) {
|
||||||
|
println!("cargo:rustc-link-lib=dylib=c++");
|
||||||
|
} else if cfg!(target_os = "windows") {
|
||||||
|
for lib in vec!["dbghelp", "shlwapi", "winmm", "ws2_32"] {
|
||||||
|
println!("cargo:rustc-link-lib={}", lib);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
build.run("core:deno_core_deps");
|
||||||
|
}
|
|
@ -125,7 +125,7 @@ impl<B: Behavior> Isolate<B> {
|
||||||
None => libdeno::deno_buf::empty(),
|
None => libdeno::deno_buf::empty(),
|
||||||
},
|
},
|
||||||
shared: shared.as_deno_buf(),
|
shared: shared.as_deno_buf(),
|
||||||
recv_cb: Self::predispatch,
|
recv_cb: Self::pre_dispatch,
|
||||||
};
|
};
|
||||||
let libdeno_isolate = unsafe { libdeno::deno_new(config) };
|
let libdeno_isolate = unsafe { libdeno::deno_new(config) };
|
||||||
|
|
||||||
|
@ -166,7 +166,7 @@ impl<B: Behavior> Isolate<B> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" fn predispatch(
|
extern "C" fn pre_dispatch(
|
||||||
user_data: *mut c_void,
|
user_data: *mut c_void,
|
||||||
control_argv0: deno_buf,
|
control_argv0: deno_buf,
|
||||||
zero_copy_buf: deno_buf,
|
zero_copy_buf: deno_buf,
|
||||||
|
@ -612,7 +612,7 @@ mod tests {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn testdispatch() {
|
fn test_dispatch() {
|
||||||
let mut isolate = TestBehavior::setup(TestBehaviorMode::AsyncImmediate);
|
let mut isolate = TestBehavior::setup(TestBehaviorMode::AsyncImmediate);
|
||||||
js_check(isolate.execute(
|
js_check(isolate.execute(
|
||||||
"filename.js",
|
"filename.js",
|
||||||
|
@ -917,12 +917,12 @@ mod tests {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn overflow_res_multipledispatch_async() {
|
fn overflow_res_multiple_dispatch_async() {
|
||||||
// TODO(ry) This test is quite slow due to memcpy-ing 100MB into JS. We
|
// TODO(ry) This test is quite slow due to memcpy-ing 100MB into JS. We
|
||||||
// should optimize this.
|
// should optimize this.
|
||||||
let mut isolate = TestBehavior::setup(TestBehaviorMode::OverflowResAsync);
|
let mut isolate = TestBehavior::setup(TestBehaviorMode::OverflowResAsync);
|
||||||
js_check(isolate.execute(
|
js_check(isolate.execute(
|
||||||
"overflow_res_multipledispatch_async.js",
|
"overflow_res_multiple_dispatch_async.js",
|
||||||
r#"
|
r#"
|
||||||
let asyncRecv = 0;
|
let asyncRecv = 0;
|
||||||
Deno.core.setAsyncHandler((buf) => {
|
Deno.core.setAsyncHandler((buf) => {
|
||||||
|
|
0
core/libdeno.rs
Executable file → Normal file
0
core/libdeno.rs
Executable file → Normal file
|
@ -1,6 +1,6 @@
|
||||||
# Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
# Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
|
import("//deno.gni")
|
||||||
import("//third_party/v8/gni/v8.gni")
|
import("//third_party/v8/gni/v8.gni")
|
||||||
import("./deno.gni")
|
|
||||||
|
|
||||||
config("deno_config") {
|
config("deno_config") {
|
||||||
include_dirs = [ "//third_party/v8" ] # This allows us to v8/src/base/ libraries.
|
include_dirs = [ "//third_party/v8" ] # This allows us to v8/src/base/ libraries.
|
|
@ -23,8 +23,8 @@ typedef struct deno_s Deno;
|
||||||
// A callback to receive a message from a libdeno.send() javascript call.
|
// A callback to receive a message from a libdeno.send() javascript call.
|
||||||
// control_buf is valid for only for the lifetime of this callback.
|
// control_buf is valid for only for the lifetime of this callback.
|
||||||
// data_buf is valid until deno_respond() is called.
|
// data_buf is valid until deno_respond() is called.
|
||||||
typedef void (*denorecv_cb)(void* user_data, deno_buf control_buf,
|
typedef void (*deno_recv_cb)(void* user_data, deno_buf control_buf,
|
||||||
deno_buf zerop_copy_buf);
|
deno_buf zerop_copy_buf);
|
||||||
|
|
||||||
void deno_init();
|
void deno_init();
|
||||||
const char* deno_v8_version();
|
const char* deno_v8_version();
|
||||||
|
@ -34,7 +34,7 @@ typedef struct {
|
||||||
int will_snapshot; // Default 0. If calling deno_get_snapshot 1.
|
int will_snapshot; // Default 0. If calling deno_get_snapshot 1.
|
||||||
deno_buf load_snapshot; // Optionally: A deno_buf from deno_get_snapshot.
|
deno_buf load_snapshot; // Optionally: A deno_buf from deno_get_snapshot.
|
||||||
deno_buf shared; // Shared buffer to be mapped to libdeno.shared
|
deno_buf shared; // Shared buffer to be mapped to libdeno.shared
|
||||||
denorecv_cb recv_cb; // Maps to libdeno.send() calls.
|
deno_recv_cb recv_cb; // Maps to libdeno.send() calls.
|
||||||
} deno_config;
|
} deno_config;
|
||||||
|
|
||||||
// Create a new deno isolate.
|
// Create a new deno isolate.
|
||||||
|
@ -57,13 +57,13 @@ void deno_unlock(Deno* d);
|
||||||
void deno_execute(Deno* d, void* user_data, const char* js_filename,
|
void deno_execute(Deno* d, void* user_data, const char* js_filename,
|
||||||
const char* js_source);
|
const char* js_source);
|
||||||
|
|
||||||
// deno_respond sends up to one message back for every denorecv_cb made.
|
// deno_respond sends up to one message back for every deno_recv_cb made.
|
||||||
//
|
//
|
||||||
// If this is called during denorecv_cb, the issuing libdeno.send() in
|
// If this is called during deno_recv_cb, the issuing libdeno.send() in
|
||||||
// javascript will synchronously return the specified buf as an ArrayBuffer (or
|
// javascript will synchronously return the specified buf as an ArrayBuffer (or
|
||||||
// null if buf is empty).
|
// null if buf is empty).
|
||||||
//
|
//
|
||||||
// If this is called after denorecv_cb has returned, the deno_respond
|
// If this is called after deno_recv_cb has returned, the deno_respond
|
||||||
// will call into the JS callback specified by libdeno.recv().
|
// will call into the JS callback specified by libdeno.recv().
|
||||||
//
|
//
|
||||||
// (Ideally, but not currently: After calling deno_respond(), the caller no
|
// (Ideally, but not currently: After calling deno_respond(), the caller no
|
|
@ -104,7 +104,7 @@ class DenoIsolate {
|
||||||
const v8::FunctionCallbackInfo<v8::Value>* current_args_;
|
const v8::FunctionCallbackInfo<v8::Value>* current_args_;
|
||||||
v8::SnapshotCreator* snapshot_creator_;
|
v8::SnapshotCreator* snapshot_creator_;
|
||||||
void* global_import_buf_ptr_;
|
void* global_import_buf_ptr_;
|
||||||
denorecv_cb recv_cb_;
|
deno_recv_cb recv_cb_;
|
||||||
size_t next_zero_copy_id_;
|
size_t next_zero_copy_id_;
|
||||||
void* user_data_;
|
void* user_data_;
|
||||||
|
|
||||||
|
@ -170,7 +170,7 @@ static intptr_t external_references[] = {
|
||||||
|
|
||||||
static const deno_buf empty_buf = {nullptr, 0, nullptr, 0, 0};
|
static const deno_buf empty_buf = {nullptr, 0, nullptr, 0, 0};
|
||||||
|
|
||||||
Deno* NewFromSnapshot(void* user_data, denorecv_cb cb);
|
Deno* NewFromSnapshot(void* user_data, deno_recv_cb cb);
|
||||||
|
|
||||||
void InitializeContext(v8::Isolate* isolate, v8::Local<v8::Context> context);
|
void InitializeContext(v8::Isolate* isolate, v8::Local<v8::Context> context);
|
||||||
|
|
|
@ -46,8 +46,8 @@ global.RecvReturnBar = () => {
|
||||||
global.DoubleRecvFails = () => {
|
global.DoubleRecvFails = () => {
|
||||||
// Deno.core.recv is an internal function and should only be called once from the
|
// Deno.core.recv is an internal function and should only be called once from the
|
||||||
// runtime.
|
// runtime.
|
||||||
Deno.core.recv((channel, msg) => assert(false));
|
Deno.core.recv((_channel, _msg) => assert(false));
|
||||||
Deno.core.recv((channel, msg) => assert(false));
|
Deno.core.recv((_channel, _msg) => assert(false));
|
||||||
};
|
};
|
||||||
|
|
||||||
global.SendRecvSlice = () => {
|
global.SendRecvSlice = () => {
|
|
@ -11,14 +11,14 @@ template("bundle") {
|
||||||
out_dir + out_name + ".js.map",
|
out_dir + out_name + ".js.map",
|
||||||
]
|
]
|
||||||
inputs = [
|
inputs = [
|
||||||
"js/" + out_name + ".ts",
|
"//js/" + out_name + ".ts",
|
||||||
"rollup.config.js",
|
"//rollup.config.js",
|
||||||
]
|
]
|
||||||
depfile = out_dir + out_name + ".d"
|
depfile = out_dir + out_name + ".d"
|
||||||
args = [
|
args = [
|
||||||
rebase_path("third_party/node_modules/rollup/bin/rollup", root_build_dir),
|
rebase_path("//third_party/node_modules/rollup/bin/rollup", root_build_dir),
|
||||||
"-c",
|
"-c",
|
||||||
rebase_path("rollup.config.js", root_build_dir),
|
rebase_path("//rollup.config.js", root_build_dir),
|
||||||
"-i",
|
"-i",
|
||||||
rebase_path(inputs[0], root_build_dir),
|
rebase_path(inputs[0], root_build_dir),
|
||||||
"-o",
|
"-o",
|
||||||
|
@ -45,7 +45,8 @@ template("snapshot") {
|
||||||
"testonly",
|
"testonly",
|
||||||
"deps",
|
"deps",
|
||||||
])
|
])
|
||||||
tool = "//libdeno:snapshot_creator"
|
# TODO(ry) Rewrite snapshot_creator in Rust.
|
||||||
|
tool = "//core/libdeno:snapshot_creator"
|
||||||
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
||||||
snapshot_out_bin = "$target_gen_dir/$target_name.bin"
|
snapshot_out_bin = "$target_gen_dir/$target_name.bin"
|
||||||
inputs = [
|
inputs = [
|
110
gn.rs
Normal file
110
gn.rs
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
|
// This is used in cli/build.rs and core/build.rs to interface with the GN build
|
||||||
|
// system (which defines the deno build).
|
||||||
|
|
||||||
|
use std::env;
|
||||||
|
use std::path::{self, Path, PathBuf};
|
||||||
|
use std::process::Command;
|
||||||
|
|
||||||
|
pub struct Build {
|
||||||
|
gn_mode: String,
|
||||||
|
pub gn_out_dir: String,
|
||||||
|
pub gn_out_path: PathBuf,
|
||||||
|
pub check_only: bool,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Build {
|
||||||
|
pub fn setup() -> Build {
|
||||||
|
let gn_mode = if cfg!(target_os = "windows") {
|
||||||
|
// On Windows, we need to link with a release build of libdeno, because
|
||||||
|
// rust always uses the release CRT.
|
||||||
|
// TODO(piscisaureus): make linking with debug libdeno possible.
|
||||||
|
String::from("release")
|
||||||
|
} else {
|
||||||
|
// Cargo sets PROFILE to either "debug" or "release", which conveniently
|
||||||
|
// matches the build modes we support.
|
||||||
|
env::var("PROFILE").unwrap()
|
||||||
|
};
|
||||||
|
|
||||||
|
// cd into workspace root.
|
||||||
|
assert!(env::set_current_dir("..").is_ok());
|
||||||
|
|
||||||
|
let cwd = env::current_dir().unwrap();
|
||||||
|
// If not using host default target the output folder will change
|
||||||
|
// target/release will become target/$TARGET/release
|
||||||
|
// Gn should also be using this output directory as well
|
||||||
|
// most things will work with gn using the default
|
||||||
|
// output directory but some tests depend on artifacts
|
||||||
|
// being in a specific directory relative to the main build output
|
||||||
|
let gn_out_path = cwd.join(format!("target/{}", gn_mode.clone()));
|
||||||
|
let gn_out_dir = normalize_path(&gn_out_path);
|
||||||
|
|
||||||
|
// Tell Cargo when to re-run this file. We do this first, so these directives
|
||||||
|
// can take effect even if something goes wrong later in the build process.
|
||||||
|
println!("cargo:rerun-if-env-changed=DENO_BUILD_PATH");
|
||||||
|
// TODO: this is obviously not appropriate here.
|
||||||
|
println!("cargo:rerun-if-env-changed=APPVEYOR_REPO_COMMIT");
|
||||||
|
|
||||||
|
// This helps Rust source files locate the snapshot, source map etc.
|
||||||
|
println!("cargo:rustc-env=GN_OUT_DIR={}", gn_out_dir);
|
||||||
|
|
||||||
|
// Detect if we're being invoked by the rust language server (RLS).
|
||||||
|
// Unfortunately we can't detect whether we're being run by `cargo check`.
|
||||||
|
let check_only = env::var_os("CARGO")
|
||||||
|
.map(PathBuf::from)
|
||||||
|
.as_ref()
|
||||||
|
.and_then(|p| p.file_stem())
|
||||||
|
.and_then(|f| f.to_str())
|
||||||
|
.map(|s| s.starts_with("rls"))
|
||||||
|
.unwrap_or(false);
|
||||||
|
|
||||||
|
if check_only {
|
||||||
|
// Enable the 'check_only' feature, which enables some workarounds in the
|
||||||
|
// rust source code to compile successfully without a bundle and snapshot
|
||||||
|
println!("cargo:rustc-cfg=feature=\"check-only\"");
|
||||||
|
}
|
||||||
|
|
||||||
|
Build {
|
||||||
|
gn_out_dir,
|
||||||
|
gn_out_path,
|
||||||
|
check_only,
|
||||||
|
gn_mode,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn run(&self, gn_target: &str) {
|
||||||
|
if !self.gn_out_path.join("build.ninja").exists() {
|
||||||
|
let status = Command::new("python")
|
||||||
|
.env("DENO_BUILD_PATH", &self.gn_out_dir)
|
||||||
|
.env("DENO_BUILD_MODE", &self.gn_mode)
|
||||||
|
.arg("./tools/setup.py")
|
||||||
|
.status()
|
||||||
|
.expect("setup.py failed");
|
||||||
|
assert!(status.success());
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO(ry) call ninja directly here, not python.
|
||||||
|
let status = Command::new("python")
|
||||||
|
.env("DENO_BUILD_PATH", &self.gn_out_dir)
|
||||||
|
.env("DENO_BUILD_MODE", &self.gn_mode)
|
||||||
|
.arg("./tools/build.py")
|
||||||
|
.arg(gn_target)
|
||||||
|
.arg("-v")
|
||||||
|
.status()
|
||||||
|
.expect("build.py failed");
|
||||||
|
assert!(status.success());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Utility function to make a path absolute, normalizing it to use forward
|
||||||
|
// slashes only. The returned value is an owned String, otherwise panics.
|
||||||
|
fn normalize_path<T: AsRef<Path>>(path: T) -> String {
|
||||||
|
path
|
||||||
|
.as_ref()
|
||||||
|
.to_str()
|
||||||
|
.unwrap()
|
||||||
|
.to_owned()
|
||||||
|
.chars()
|
||||||
|
.map(|c| if path::is_separator(c) { '/' } else { c })
|
||||||
|
.collect()
|
||||||
|
}
|
|
@ -6,7 +6,7 @@
|
||||||
// There is a rollup plugin that will inline any module ending with `!string`
|
// There is a rollup plugin that will inline any module ending with `!string`
|
||||||
|
|
||||||
// Generated default library
|
// Generated default library
|
||||||
import libDts from "gen/lib/lib.deno_runtime.d.ts!string";
|
import libDts from "gen/cli/lib/lib.deno_runtime.d.ts!string";
|
||||||
|
|
||||||
// Static libraries
|
// Static libraries
|
||||||
import libEs2015Dts from "/third_party/node_modules/typescript/lib/lib.es2015.d.ts!string";
|
import libEs2015Dts from "/third_party/node_modules/typescript/lib/lib.es2015.d.ts!string";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as ts from "typescript";
|
import * as ts from "typescript";
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import { window } from "./window";
|
import { window } from "./window";
|
||||||
import { assetSourceCode } from "./assets";
|
import { assetSourceCode } from "./assets";
|
||||||
import { Console } from "./console";
|
import { Console } from "./console";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import { assert } from "./util";
|
import { assert } from "./util";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import { sendSync } from "./dispatch";
|
import { sendSync } from "./dispatch";
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import { core } from "./core";
|
import { core } from "./core";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as errors from "./errors";
|
import * as errors from "./errors";
|
||||||
import * as util from "./util";
|
import * as util from "./util";
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import { Base, ErrorKind } from "gen/msg_generated";
|
import { Base, ErrorKind } from "gen/cli/msg_generated";
|
||||||
export { ErrorKind } from "gen/msg_generated";
|
export { ErrorKind } from "gen/cli/msg_generated";
|
||||||
|
|
||||||
/** A Deno specific error. The `kind` property is set to a specific error code
|
/** A Deno specific error. The `kind` property is set to a specific error code
|
||||||
* which can be used to in application logic.
|
* which can be used to in application logic.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
import { assert, createResolvable, notImplemented, isTypedArray } from "./util";
|
import { assert, createResolvable, notImplemented, isTypedArray } from "./util";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import { sendAsync } from "./dispatch";
|
import { sendAsync } from "./dispatch";
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as domTypes from "./dom_types";
|
import * as domTypes from "./dom_types";
|
||||||
import { TextDecoder, TextEncoder } from "./text_encoding";
|
import { TextDecoder, TextEncoder } from "./text_encoding";
|
||||||
import { DenoBlob, bytesSymbol as blobBytesSymbol } from "./blob";
|
import { DenoBlob, bytesSymbol as blobBytesSymbol } from "./blob";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
|
|
||||||
/** A FileInfo describes a file and is returned by `stat`, `lstat`,
|
/** A FileInfo describes a file and is returned by `stat`, `lstat`,
|
||||||
* `statSync`, `lstatSync`.
|
* `statSync`, `lstatSync`.
|
||||||
|
|
|
@ -11,7 +11,7 @@ import {
|
||||||
SyncSeeker
|
SyncSeeker
|
||||||
} from "./io";
|
} from "./io";
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import { assert } from "./util";
|
import { assert } from "./util";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import { sendSync } from "./dispatch";
|
import { sendSync } from "./dispatch";
|
||||||
import { assert } from "./util";
|
import { assert } from "./util";
|
||||||
|
|
|
@ -16,7 +16,7 @@ import { setLocation } from "./location";
|
||||||
import * as deno from "./deno";
|
import * as deno from "./deno";
|
||||||
|
|
||||||
// TODO(kitsonk) remove with `--types` below
|
// TODO(kitsonk) remove with `--types` below
|
||||||
import libDts from "gen/lib/lib.deno_runtime.d.ts!string";
|
import libDts from "gen/cli/lib/lib.deno_runtime.d.ts!string";
|
||||||
|
|
||||||
export default function denoMain(): void {
|
export default function denoMain(): void {
|
||||||
const startResMsg = os.start();
|
const startResMsg = os.start();
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
import { assert } from "./util";
|
import { assert } from "./util";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import { assert } from "./util";
|
import { assert } from "./util";
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import { ReadResult, Reader, Writer, Closer } from "./io";
|
import { ReadResult, Reader, Writer, Closer } from "./io";
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import { assert, notImplemented } from "./util";
|
import { assert, notImplemented } from "./util";
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
|
|
2
js/os.ts
2
js/os.ts
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import { core } from "./core";
|
import { core } from "./core";
|
||||||
import { handleAsyncMsgFromRust, sendSync } from "./dispatch";
|
import { handleAsyncMsgFromRust, sendSync } from "./dispatch";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import { sendSync } from "./dispatch";
|
import { sendSync } from "./dispatch";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import { assert } from "./util";
|
import { assert } from "./util";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
import { assert } from "./util";
|
import { assert } from "./util";
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
|
|
||||||
import { File, close } from "./files";
|
import { File, close } from "./files";
|
||||||
import { ReadCloser, WriteCloser } from "./io";
|
import { ReadCloser, WriteCloser } from "./io";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
import { FileInfo, FileInfoImpl } from "./file_info";
|
import { FileInfo, FileInfoImpl } from "./file_info";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import { assert } from "./util";
|
import { assert } from "./util";
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import { assert } from "./util";
|
import { assert } from "./util";
|
||||||
import { close } from "./files";
|
import { close } from "./files";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import { assert } from "./util";
|
import { assert } from "./util";
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
import { assert } from "./util";
|
import { assert } from "./util";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
import * as util from "./util";
|
import * as util from "./util";
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import { assert } from "./util";
|
import { assert } from "./util";
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import { sendAsync, sendSync } from "./dispatch";
|
import { sendAsync, sendSync } from "./dispatch";
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||||
import * as dispatch from "./dispatch";
|
import * as dispatch from "./dispatch";
|
||||||
import * as msg from "gen/msg_generated";
|
import * as msg from "gen/cli/msg_generated";
|
||||||
import * as flatbuffers from "./flatbuffers";
|
import * as flatbuffers from "./flatbuffers";
|
||||||
import { assert, log } from "./util";
|
import { assert, log } from "./util";
|
||||||
import { window } from "./window";
|
import { window } from "./window";
|
||||||
|
|
|
@ -18,7 +18,7 @@ const typescriptPath = path.resolve(
|
||||||
__dirname,
|
__dirname,
|
||||||
"third_party/node_modules/typescript/lib/typescript.js"
|
"third_party/node_modules/typescript/lib/typescript.js"
|
||||||
);
|
);
|
||||||
const gnArgs = fs.readFileSync("gen/gn_args.txt", "utf-8").trim();
|
const gnArgs = fs.readFileSync("gen/cli/gn_args.txt", "utf-8").trim();
|
||||||
|
|
||||||
// We will allow generated modules to be resolvable by TypeScript based on
|
// We will allow generated modules to be resolvable by TypeScript based on
|
||||||
// the current build path
|
// the current build path
|
||||||
|
@ -96,7 +96,7 @@ function resolveGenerated() {
|
||||||
return {
|
return {
|
||||||
name: "resolve-msg-generated",
|
name: "resolve-msg-generated",
|
||||||
resolveId(importee) {
|
resolveId(importee) {
|
||||||
if (importee.startsWith("gen/msg_generated")) {
|
if (importee.startsWith("gen/cli/msg_generated")) {
|
||||||
return path.resolve(`${importee}.ts`);
|
return path.resolve(`${importee}.ts`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,17 +60,17 @@ def get_binary_sizes(build_dir):
|
||||||
"deno":
|
"deno":
|
||||||
os.path.join(build_dir, "deno" + executable_suffix),
|
os.path.join(build_dir, "deno" + executable_suffix),
|
||||||
"main.js":
|
"main.js":
|
||||||
os.path.join(build_dir, "gen/bundle/main.js"),
|
os.path.join(build_dir, "gen/cli/bundle/main.js"),
|
||||||
"main.js.map":
|
"main.js.map":
|
||||||
os.path.join(build_dir, "gen/bundle/main.js.map"),
|
os.path.join(build_dir, "gen/cli/bundle/main.js.map"),
|
||||||
"compiler.js":
|
"compiler.js":
|
||||||
os.path.join(build_dir, "gen/bundle/compiler.js"),
|
os.path.join(build_dir, "gen/cli/bundle/compiler.js"),
|
||||||
"compiler.js.map":
|
"compiler.js.map":
|
||||||
os.path.join(build_dir, "gen/bundle/compiler.js.map"),
|
os.path.join(build_dir, "gen/cli/bundle/compiler.js.map"),
|
||||||
"snapshot_deno.bin":
|
"snapshot_deno.bin":
|
||||||
os.path.join(build_dir, "gen/snapshot_deno.bin"),
|
os.path.join(build_dir, "gen/cli/snapshot_deno.bin"),
|
||||||
"snapshot_compiler.bin":
|
"snapshot_compiler.bin":
|
||||||
os.path.join(build_dir, "gen/snapshot_compiler.bin")
|
os.path.join(build_dir, "gen/cli/snapshot_compiler.bin")
|
||||||
}
|
}
|
||||||
sizes = {}
|
sizes = {}
|
||||||
for name, path in path_dict.items():
|
for name, path in path_dict.items():
|
||||||
|
|
|
@ -21,10 +21,10 @@ def qrun(cmd, env=None):
|
||||||
|
|
||||||
print "clang_format"
|
print "clang_format"
|
||||||
qrun([clang_format_path, "-i", "-style", "Google"] +
|
qrun([clang_format_path, "-i", "-style", "Google"] +
|
||||||
find_exts(["libdeno"], [".cc", ".h"]))
|
find_exts(["core"], [".cc", ".h"]))
|
||||||
|
|
||||||
print "gn format"
|
print "gn format"
|
||||||
for fn in ["BUILD.gn", ".gn"] + find_exts(["build_extra", "libdeno"],
|
for fn in ["BUILD.gn", ".gn"] + find_exts(["build_extra", "core"],
|
||||||
[".gn", ".gni"]):
|
[".gn", ".gni"]):
|
||||||
qrun(["third_party/depot_tools/gn", "format", fn], env=google_env())
|
qrun(["third_party/depot_tools/gn", "format", fn], env=google_env())
|
||||||
|
|
||||||
|
@ -43,6 +43,7 @@ qrun(["node", prettier, "--write", "--loglevel=error"] + ["rollup.config.js"] +
|
||||||
|
|
||||||
print "rustfmt"
|
print "rustfmt"
|
||||||
qrun([
|
qrun([
|
||||||
"third_party/rustfmt/" + platform() +
|
"third_party/rustfmt/" + platform() + "/rustfmt",
|
||||||
"/rustfmt", "--config-path", rustfmt_config, "build.rs"
|
"--config-path",
|
||||||
|
rustfmt_config,
|
||||||
] + find_exts(["cli", "core"], [".rs"]))
|
] + find_exts(["cli", "core"], [".rs"]))
|
||||||
|
|
|
@ -16,7 +16,7 @@ eslint = os.path.join(third_party_path, "node_modules", "eslint", "bin",
|
||||||
os.chdir(root_path)
|
os.chdir(root_path)
|
||||||
run([
|
run([
|
||||||
"python", cpplint, "--filter=-build/include_subdir",
|
"python", cpplint, "--filter=-build/include_subdir",
|
||||||
"--repository=libdeno", "--extensions=cc,h", "--recursive", "libdeno"
|
"--repository=core/libdeno", "--extensions=cc,h", "--recursive", "core"
|
||||||
])
|
])
|
||||||
|
|
||||||
run([
|
run([
|
||||||
|
|
|
@ -80,7 +80,7 @@ const libPreamble = `// Copyright 2018-2019 the Deno authors. All rights reserve
|
||||||
`;
|
`;
|
||||||
|
|
||||||
// The path to the msg_generated file relative to the build path
|
// The path to the msg_generated file relative to the build path
|
||||||
const MSG_GENERATED_PATH = "/gen/msg_generated.ts";
|
const MSG_GENERATED_PATH = "/gen/cli/msg_generated.ts";
|
||||||
|
|
||||||
// An array of enums we want to expose pub
|
// An array of enums we want to expose pub
|
||||||
const MSG_GENERATED_ENUMS = ["ErrorKind"];
|
const MSG_GENERATED_ENUMS = ["ErrorKind"];
|
||||||
|
|
|
@ -5,7 +5,7 @@ import { main as buildRuntimeLib } from "./build_library";
|
||||||
// this is very simplistic argument parsing, just enough to integrate into
|
// this is very simplistic argument parsing, just enough to integrate into
|
||||||
// the build scripts, versus being very robust
|
// the build scripts, versus being very robust
|
||||||
let basePath = process.cwd();
|
let basePath = process.cwd();
|
||||||
let buildPath = path.join(basePath, "out", "debug");
|
let buildPath = path.join(basePath, "target", "debug");
|
||||||
let outFile = path.join(buildPath, "gen", "lib", "lib.d.ts");
|
let outFile = path.join(buildPath, "gen", "lib", "lib.d.ts");
|
||||||
let inline: string[] = [];
|
let inline: string[] = [];
|
||||||
let debug = false;
|
let debug = false;
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
"files": [
|
"files": [
|
||||||
"js/lib.web_assembly.d.ts",
|
"js/lib.web_assembly.d.ts",
|
||||||
"core/core.d.ts",
|
"core/core.d.ts",
|
||||||
"libdeno/libdeno.d.ts",
|
"core/libdeno/libdeno.d.ts",
|
||||||
"js/main.ts",
|
"js/main.ts",
|
||||||
"js/compiler.ts"
|
"js/compiler.ts"
|
||||||
]
|
]
|
||||||
|
|
Loading…
Add table
Reference in a new issue