@@ -2920,7 +2920,9 @@ val package_output : format:string -> string -> string
29202920
29212921type package_specs = String_set .t
29222922
2923+ val cmd_package_specs : package_specs option ref
29232924
2925+ val cmd_override_package_specs : string -> unit
29242926end = struct
29252927#1 " bsb_config.ml"
29262928(* Copyright (C) 2015-2016 Bloomberg Finance L.P.
@@ -2976,12 +2978,29 @@ let no_dev = ref false
29762978
29772979let install = ref false
29782980
2981+
2982+ let cmd_package_specs = ref None
2983+
2984+ type package_specs = String_set .t
2985+
29792986let supported_format x =
29802987 x = Literals. amdjs ||
29812988 x = Literals. commonjs ||
29822989 x = Literals. goog ||
29832990 x = Literals. es6
29842991
2992+
2993+ let cmd_override_package_specs str =
2994+ let lst = Ext_string. split ~keep_empty: false str ',' in
2995+ cmd_package_specs :=
2996+ Some (List. fold_left (fun acc x ->
2997+ let v =
2998+ if supported_format x then String_set. add x acc
2999+ else
3000+ failwith (" Unkonwn package spec" ^ x) in
3001+ v
3002+ ) String_set. empty lst)
3003+
29853004let bs_package_output = " -bs-package-output"
29863005
29873006(* * Assume input is valid
@@ -3015,7 +3034,8 @@ let package_output ~format:s output=
30153034(* output_file_sans_extension ^ Literals.suffix_js *)
30163035
30173036
3018- type package_specs = String_set .t
3037+
3038+
30193039
30203040
30213041end
@@ -7445,7 +7465,7 @@ val set_ninja : cwd:string -> string -> unit
74457465
74467466val get_package_specs : unit -> Bsb_config .package_specs
74477467val set_package_specs_from_array : Ext_json .t array -> unit
7448- val internal_override_package_specs : string -> unit
7468+
74497469
74507470
74517471val get_generate_merlin : unit -> bool
@@ -7559,14 +7579,14 @@ let set_ninja ~cwd p =
75597579
75607580
75617581let package_specs = ref (String_set. singleton Literals. commonjs)
7562- let package_specs_overriden = ref false
7582+ (* let package_specs_overriden = ref false *)
75637583
75647584let get_package_specs () = ! package_specs
75657585
75667586
75677587
75687588let set_package_specs_from_array arr =
7569- if not ! package_specs_overriden then
7589+ (* if not !package_specs_overriden then *)
75707590 let new_package_specs =
75717591 arr
75727592 |> get_list_string
@@ -7581,7 +7601,7 @@ let set_package_specs_from_array arr =
75817601
75827602
75837603
7584-
7604+ (*
75857605let internal_override_package_specs str =
75867606 package_specs_overriden := true ;
75877607 let lst = Ext_string.split ~keep_empty:false str ',' in
@@ -7593,7 +7613,7 @@ let internal_override_package_specs str =
75937613 failwith ("Unkonwn package spec" ^ x) in
75947614 v
75957615 ) String_set.empty lst
7596-
7616+ *)
75977617
75987618let generate_merlin = ref true
75997619
@@ -7632,8 +7652,9 @@ module Bsb_config_parse : sig
76327652
76337653
76347654val interpret_json :
7655+ override_package_specs :Bsb_config .package_specs option ->
76357656 bsc_dir :string ->
7636- cwd : string ->
7657+ string ->
76377658 Bsb_config_types .t
76387659
76397660
@@ -7744,7 +7765,12 @@ let revise_merlin new_content =
77447765
77457766let bsppx_exe = " bsppx.exe"
77467767
7747- let interpret_json ~bsc_dir ~cwd : Bsb_config_types. t =
7768+ let interpret_json
7769+ ~override_package_specs
7770+ ~bsc_dir
7771+ cwd
7772+
7773+ : Bsb_config_types.t =
77487774 let builddir = Bsb_config. lib_bs in
77497775 let () = Bsb_build_util. mkp builddir in
77507776 let update_queue = ref [] in
@@ -7874,7 +7900,9 @@ let interpret_json ~bsc_dir ~cwd : Bsb_config_types.t =
78747900 refmt = Bsb_default. (get_refmt () );
78757901 refmt_flags = Bsb_default. (get_refmt_flags () );
78767902 js_post_build_cmd = Bsb_default. (get_js_post_build_cmd () );
7877- package_specs = (Bsb_default. get_package_specs() );
7903+ package_specs =
7904+ (match override_package_specs with None -> Bsb_default. get_package_specs()
7905+ | Some x -> x );
78787906 globbed_dirs = ! globbed_dirs;
78797907 bs_file_groups = ! bs_file_groups;
78807908 files_to_install = String_hash_set. create 96
@@ -9120,7 +9148,7 @@ let bsb_main_flags =
91209148 regen, Arg. Set force_regenerate,
91219149 " Always regenerate build.ninja no matter bsconfig.json is changed or not (for debugging purpose)"
91229150 ;
9123- internal_package_specs, Arg. String Bsb_default. internal_override_package_specs ,
9151+ internal_package_specs, Arg. String Bsb_config. cmd_override_package_specs ,
91249152 " (internal)Overide package specs (in combination with -regen)" ;
91259153 " -clean-world" , Arg. Unit clean_bs_deps,
91269154 " Clean all bs dependencies" ;
@@ -9143,7 +9171,10 @@ let regenerate_ninja cwd bsc_dir forced =
91439171 begin
91449172 print_endline reason ;
91459173 print_endline " Regenerating build spec" ;
9146- let config = Bsb_config_parse. interpret_json ~bsc_dir ~cwd in
9174+ let config =
9175+ Bsb_config_parse. interpret_json
9176+ ~override_package_specs: ! Bsb_config. cmd_package_specs
9177+ ~bsc_dir cwd in
91479178 begin
91489179 Bsb_gen. output_ninja ~cwd ~bsc_dir config ;
91499180 Literals. bsconfig_json :: config.globbed_dirs
0 commit comments