Skip to content

Commit e541dcd

Browse files
committed
add install support, this is transparent to users, when -make-world it will install its dependencies at the same time, while dev does not need install
1 parent f623362 commit e541dcd

File tree

5 files changed

+42
-12
lines changed

5 files changed

+42
-12
lines changed

jscomp/bin/bsb.ml

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2723,6 +2723,9 @@ val lib_bs : string
27232723
val rev_lib_bs_prefix : string -> string
27242724

27252725
val no_dev: bool ref
2726+
2727+
(** default not install, only when -make-world, its dependencies will be installed *)
2728+
val install : bool ref
27262729
end = struct
27272730
#1 "bsb_config.ml"
27282731
(* Copyright (C) 2015-2016 Bloomberg Finance L.P.
@@ -2770,6 +2773,8 @@ let proj_rel path = lazy_src_root_dir // path
27702773
*)
27712774

27722775
let no_dev = ref false
2776+
2777+
let install = ref false
27732778
end
27742779
module Ext_array : sig
27752780
#1 "ext_array.mli"
@@ -7504,6 +7509,7 @@ let handle_file_group oc ~package_specs ~js_post_build_cmd acc (group: Bsb_buil
75047509
bs_dependencies
75057510
info =
75067511
let installable =
7512+
!Bsb_config.install &&
75077513
match group.public with
75087514
| Export_all -> true
75097515
| Export_none -> false
@@ -8353,15 +8359,18 @@ let separator = "--"
83538359

83548360

83558361
let internal_package_specs = "-internal-package-specs"
8362+
let internal_install = "-internal-install"
83568363
let build_bs_deps package_specs =
83578364
let bsc_dir = Bsb_build_util.get_bsc_dir cwd in
83588365
let bsb_exe = bsc_dir // "bsb.exe" in
83598366
Bsb_default.walk_all_deps true cwd
83608367
(fun top cwd ->
83618368
if not top then
83628369
Bsb_unix.run_command_execv true
8363-
{cmd = bsb_exe; cwd = cwd; args =
8364-
[| bsb_exe ; no_dev; internal_package_specs; package_specs; regen; separator |]})
8370+
{cmd = bsb_exe;
8371+
cwd = cwd;
8372+
args =
8373+
[| bsb_exe ; internal_install ; no_dev; internal_package_specs; package_specs; regen; separator |]})
83658374

83668375
let annoymous filename =
83678376
String_vec.push filename targets
@@ -8394,10 +8403,16 @@ let clean_bs_deps () =
83948403
Bsb_default.walk_all_deps true cwd (fun top cwd ->
83958404
clean_bs_garbage cwd
83968405
)
8406+
8407+
8408+
8409+
83978410
let bsb_main_flags =
83988411
[
83998412
"-w", Arg.Set watch_mode,
84008413
" Watch mode" ;
8414+
internal_install, Arg.Set Bsb_config.install,
8415+
" (internal)Install public interface or not, when make-world it will install(in combination with -regen to make sure it has effect)";
84018416
no_dev, Arg.Set Bsb_config.no_dev,
84028417
" (internal)Build dev dependencies in make-world and dev group(in combination with -regen)";
84038418
regen, Arg.Set force_regenerate,
@@ -8542,9 +8557,9 @@ let () =
85428557
(* don't regenerate files when we only run [bsb -clean-world] *)
85438558
let deps = regenerate_ninja cwd bsc_dir !force_regenerate in
85448559
make_world_deps deps ;
8545-
if !watch_mode then
8546-
watch ()
8547-
(* ninja is not triggered in this case *)
8560+
if !watch_mode then
8561+
watch ()
8562+
(* ninja is not triggered in this case *)
85488563
end
85498564
| `Split (bsb_args,ninja_args)
85508565
->

jscomp/bsb/bsb_config.ml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,6 @@ let proj_rel path = lazy_src_root_dir // path
4242
of bsb in configuration time
4343
*)
4444

45-
let no_dev = ref false
45+
let no_dev = ref false
46+
47+
let install = ref false

jscomp/bsb/bsb_config.mli

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,7 @@ val lib_bs : string
3232
(* we need generate path relative to [lib/bs] directory in the opposite direction *)
3333
val rev_lib_bs_prefix : string -> string
3434

35-
val no_dev: bool ref
35+
val no_dev: bool ref
36+
37+
(** default not install, only when -make-world, its dependencies will be installed *)
38+
val install : bool ref

jscomp/bsb/bsb_main.ml

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -259,15 +259,18 @@ let separator = "--"
259259

260260

261261
let internal_package_specs = "-internal-package-specs"
262+
let internal_install = "-internal-install"
262263
let build_bs_deps package_specs =
263264
let bsc_dir = Bsb_build_util.get_bsc_dir cwd in
264265
let bsb_exe = bsc_dir // "bsb.exe" in
265266
Bsb_default.walk_all_deps true cwd
266267
(fun top cwd ->
267268
if not top then
268269
Bsb_unix.run_command_execv true
269-
{cmd = bsb_exe; cwd = cwd; args =
270-
[| bsb_exe ; no_dev; internal_package_specs; package_specs; regen; separator |]})
270+
{cmd = bsb_exe;
271+
cwd = cwd;
272+
args =
273+
[| bsb_exe ; internal_install ; no_dev; internal_package_specs; package_specs; regen; separator |]})
271274

272275
let annoymous filename =
273276
String_vec.push filename targets
@@ -300,10 +303,16 @@ let clean_bs_deps () =
300303
Bsb_default.walk_all_deps true cwd (fun top cwd ->
301304
clean_bs_garbage cwd
302305
)
306+
307+
308+
309+
303310
let bsb_main_flags =
304311
[
305312
"-w", Arg.Set watch_mode,
306313
" Watch mode" ;
314+
internal_install, Arg.Set Bsb_config.install,
315+
" (internal)Install public interface or not, when make-world it will install(in combination with -regen to make sure it has effect)";
307316
no_dev, Arg.Set Bsb_config.no_dev,
308317
" (internal)Build dev dependencies in make-world and dev group(in combination with -regen)";
309318
regen, Arg.Set force_regenerate,
@@ -448,9 +457,9 @@ let () =
448457
(* don't regenerate files when we only run [bsb -clean-world] *)
449458
let deps = regenerate_ninja cwd bsc_dir !force_regenerate in
450459
make_world_deps deps ;
451-
if !watch_mode then
452-
watch ()
453-
(* ninja is not triggered in this case *)
460+
if !watch_mode then
461+
watch ()
462+
(* ninja is not triggered in this case *)
454463
end
455464
| `Split (bsb_args,ninja_args)
456465
->

jscomp/bsb/bsb_ninja.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@ let handle_file_group oc ~package_specs ~js_post_build_cmd acc (group: Bsb_buil
296296
bs_dependencies
297297
info =
298298
let installable =
299+
!Bsb_config.install &&
299300
match group.public with
300301
| Export_all -> true
301302
| Export_none -> false

0 commit comments

Comments
 (0)