@@ -2723,6 +2723,9 @@ val lib_bs : string
27232723val rev_lib_bs_prefix : string -> string
27242724
27252725val no_dev : bool ref
2726+
2727+ (* * default not install, only when -make-world, its dependencies will be installed *)
2728+ val install : bool ref
27262729end = 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
27722775let no_dev = ref false
2776+
2777+ let install = ref false
27732778end
27742779module 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
83558361let internal_package_specs = " -internal-package-specs"
8362+ let internal_install = " -internal-install"
83568363let 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
83668375let annoymous filename =
83678376 String_vec. push filename targets
@@ -8373,7 +8382,7 @@ let lib_bs = "lib" // "bs"
83738382let lib_amdjs = " lib" // " amdjs"
83748383let lib_goog = " lib" // " goog"
83758384let lib_js = " lib" // " js"
8376-
8385+ let lib_ocaml = " lib " // " ocaml " (* installed binary artifacts *)
83778386let clean_bs_garbage cwd =
83788387 print_string " Doing cleaning in " ;
83798388 print_endline cwd;
@@ -8385,7 +8394,8 @@ let clean_bs_garbage cwd =
83858394 aux lib_bs ;
83868395 aux lib_amdjs ;
83878396 aux lib_goog;
8388- aux lib_js
8397+ aux lib_js ;
8398+ aux lib_ocaml
83898399 with
83908400 e ->
83918401 prerr_endline (" Failed to clean due to " ^ Printexc. to_string e)
@@ -8394,10 +8404,16 @@ let clean_bs_deps () =
83948404 Bsb_default. walk_all_deps true cwd (fun top cwd ->
83958405 clean_bs_garbage cwd
83968406 )
8407+
8408+
8409+
8410+
83978411let bsb_main_flags =
83988412 [
83998413 " -w" , Arg. Set watch_mode,
84008414 " Watch mode" ;
8415+ internal_install, Arg. Set Bsb_config. install,
8416+ " (internal)Install public interface or not, when make-world it will install(in combination with -regen to make sure it has effect)" ;
84018417 no_dev, Arg. Set Bsb_config. no_dev,
84028418 " (internal)Build dev dependencies in make-world and dev group(in combination with -regen)" ;
84038419 regen, Arg. Set force_regenerate,
@@ -8542,9 +8558,9 @@ let () =
85428558 (* don't regenerate files when we only run [bsb -clean-world] *)
85438559 let deps = regenerate_ninja cwd bsc_dir ! force_regenerate in
85448560 make_world_deps deps ;
8545- if ! watch_mode then
8546- watch ()
8547- (* ninja is not triggered in this case *)
8561+ if ! watch_mode then
8562+ watch ()
8563+ (* ninja is not triggered in this case *)
85488564 end
85498565 | `Split (bsb_args,ninja_args)
85508566 ->
0 commit comments