diff options
| author | Ryan Dahl <ry@tinyclouds.org> | 2018-11-12 17:17:30 -0800 |
|---|---|---|
| committer | Ryan Dahl <ry@tinyclouds.org> | 2018-12-03 13:44:21 -0800 |
| commit | f727214db0677ebc31e0988287c71c517a858193 (patch) | |
| tree | c7fd194db0b0f68d10022eba2ff98f259a36643b /BUILD.gn | |
| parent | 7d02971c2c88705afd019442965f228e0165c73b (diff) | |
Use include_bytes! instead of incbin.
This is the second attempt at this patch. The first version was reverted
in 2ffd78daf9956a24098d1f959f21882e350e9d37
The problem, I suspect, was that the snapshot was represented as a
source_set, which inserted a node into the dependency tree.
include_bytes does properly insert the snapshot into rustc's depfile but
the use of source_set confused gn. Now the that the deno executable has
the create_deno_snapshot as a direct dependency, changes will be
propagated.
Diffstat (limited to 'BUILD.gn')
| -rw-r--r-- | BUILD.gn | 86 |
1 files changed, 12 insertions, 74 deletions
@@ -111,6 +111,14 @@ ts_sources = [ "third_party/yarn.lock", ] +group("deno_deps") { + deps = [ + ":create_snapshot_deno", + ":msg_rs", + "libdeno:libdeno", + ] +} + rust_executable("deno") { source_root = "src/main.rs" extern = main_extern @@ -119,41 +127,12 @@ rust_executable("deno") { ] } -source_set("snapshot") { - sources = [ - "src/snapshot.cc", - ] - configs += [ "libdeno:deno_config" ] - inputs = [ - "$target_gen_dir/snapshot_deno.bin", - ] +rust_test("test_rs") { + source_root = "src/main.rs" + extern = main_extern deps = [ - ":create_snapshot_deno", + ":deno_deps", ] - - # snapshot.cc doesn't need to depend on libdeno, it just needs deno_buf. - include_dirs = [ "libdeno/" ] - - # src/snapshot.cc uses an assembly '.incbin' directive to embed the snapshot. - # This causes trouble when using sccache: since the snapshot file is not - # inlined by the c preprocessor, sccache doesn't take its contents into - # consideration, leading to false-positive cache hits. - # Maybe other caching tools have this issue too, but ccache is unaffected. - # Therefore, if a cc_wrapper is used that isn't ccache, include a generated - # header file that contains the the sha256 hash of the snapshot. - if (cc_wrapper != "" && cc_wrapper != "ccache") { - hash_h = "$target_gen_dir/bundle/hash.h" - inputs += [ hash_h ] - deps += [ ":bundle_hash_h" ] - if (is_win) { - cflags = [ "/FI" + rebase_path(hash_h, target_out_dir) ] - } else { - cflags = [ - "-include", - rebase_path(hash_h, target_out_dir), - ] - } - } } rust_executable("hyper_hello") { @@ -164,24 +143,6 @@ rust_executable("hyper_hello") { ] } -rust_test("test_rs") { - source_root = "src/main.rs" - extern = main_extern - deps = [ - ":deno_deps", - ] -} - -v8_static_library("deno_deps") { - complete_static_lib = true - public_deps = [ - ":msg_rs", - ":snapshot", - "libdeno:libdeno", - ] - configs = [ "libdeno:deno_config" ] -} - # Generates the core TypeScript type library for deno that will be # included in the runtime bundle run_node("deno_runtime_declaration") { @@ -236,29 +197,6 @@ run_node("bundle") { ] } -action("bundle_hash_h") { - script = "//tools/sha256sum.py" - inputs = get_target_outputs(":bundle") - outputs = [ - "$target_gen_dir/bundle/hash.h", - ] - deps = [ - ":bundle", - ] - args = [ - "--format", - "__attribute__((__unused__)) static const int dummy_%s = 0;", - "--outfile", - rebase_path(outputs[0], root_build_dir), - ] - foreach(input, inputs) { - args += [ - "--infile", - rebase_path(input, root_build_dir), - ] - } -} - ts_flatbuffer("msg_ts") { sources = [ "src/msg.fbs", |
