4
4
use std:: env;
5
5
use std:: path:: Path ;
6
6
use std:: path:: PathBuf ;
7
+ use std:: process:: Command ;
7
8
8
9
use deno_core:: include_js_files;
9
10
use deno_core:: serde_v8;
@@ -16,15 +17,44 @@ fn main() {
16
17
let c = PathBuf :: from ( env:: var_os ( "CARGO_MANIFEST_DIR" ) . unwrap ( ) ) ;
17
18
let o = PathBuf :: from ( env:: var_os ( "OUT_DIR" ) . unwrap ( ) ) ;
18
19
let startup_snapshot_path = o. join ( "STARTUP_SNAPSHOT.bin" ) ;
19
- let startup_code_path = c. join ( "js" ) . join ( "startup.js" ) ;
20
+ let js_dir = c. join ( "js" ) ;
21
+ let js_src_dir = js_dir. join ( "src" ) ;
22
+ let startup_code_path = js_dir. join ( "startup.js" ) ;
20
23
let supported_extensions_path = o. join ( "SUPPORTED_EXTENSIONS.json" ) ;
21
24
22
- // ensure the build is invalidated if the startup file changes
23
- println ! ( "cargo:rerun-if-changed={}" , startup_code_path. display( ) ) ;
25
+ let status = Command :: new ( "deno" )
26
+ . args ( [ "task" , "build" ] )
27
+ . status ( )
28
+ . unwrap ( ) ;
29
+ if status. code ( ) != Some ( 0 ) {
30
+ panic ! ( "Error building." ) ;
31
+ }
32
+
33
+ // ensure the build is invalidated if any of these files change
34
+ println ! (
35
+ "cargo:rerun-if-changed={}" ,
36
+ js_src_dir. join( "main.ts" ) . display( )
37
+ ) ;
38
+ println ! (
39
+ "cargo:rerun-if-changed={}" ,
40
+ js_src_dir. join( "package.json" ) . display( )
41
+ ) ;
42
+ println ! (
43
+ "cargo:rerun-if-changed={}" ,
44
+ js_src_dir. join( "package-lock.json" ) . display( )
45
+ ) ;
46
+ println ! (
47
+ "cargo:rerun-if-changed={}" ,
48
+ js_src_dir. join( "shims/node-shim.js" ) . display( )
49
+ ) ;
50
+ println ! (
51
+ "cargo:rerun-if-changed={}" ,
52
+ js_src_dir. join( "shims/url.js" ) . display( )
53
+ ) ;
54
+
24
55
let mut js_runtime = get_runtime ( & startup_code_path, true ) ;
25
56
let snapshot = js_runtime. snapshot ( ) ;
26
57
let snapshot_slice: & [ u8 ] = & * snapshot;
27
- println ! ( "Snapshot size: {}" , snapshot_slice. len( ) ) ;
28
58
29
59
let compressed_snapshot_with_size = {
30
60
let mut vec = vec ! [ ] ;
@@ -42,13 +72,7 @@ fn main() {
42
72
vec
43
73
} ;
44
74
45
- println ! (
46
- "Snapshot compressed size: {}" ,
47
- compressed_snapshot_with_size. len( )
48
- ) ;
49
-
50
75
std:: fs:: write ( & startup_snapshot_path, compressed_snapshot_with_size) . unwrap ( ) ;
51
- println ! ( "Snapshot written to: {} " , startup_snapshot_path. display( ) ) ;
52
76
53
77
// serialize the supported extensions
54
78
let mut js_runtime = get_runtime ( & startup_code_path, false ) ; // panics otherwise
0 commit comments