File tree 3 files changed +16
-7
lines changed
3 files changed +16
-7
lines changed Original file line number Diff line number Diff line change @@ -173,10 +173,15 @@ let executables_rules ~sctx ~dir ~expander ~dir_contents ~scope ~compile_info
173
173
files directly to improve perf. *)
174
174
let link_deps, sandbox = Dep_conf_eval. unnamed ~expander exes.link_deps in
175
175
let link_args =
176
+ let use_standard_c_and_cxx_flags =
177
+ match Dune_project. use_standard_c_and_cxx_flags project with
178
+ | Some true -> Buildable. has_foreign_cxx exes.buildable
179
+ | _ -> false
180
+ in
176
181
let open Action_builder.O in
177
182
let link_flags =
178
183
link_deps
179
- >>> Super_context. link_flags sctx ~dir ~expander ~flags: exes.link_flags
184
+ >>> Super_context. link_flags sctx ~dir ~expander ~use_standard_c_and_cxx_flags ~ flags: exes.link_flags
180
185
in
181
186
let + flags = link_flags
182
187
and + ctypes_cclib_flags =
Original file line number Diff line number Diff line change @@ -402,15 +402,18 @@ let foreign_flags t ~dir ~expander ~flags ~language =
402
402
in
403
403
Action_builder. memoize (sprintf " %s flags" name) flags
404
404
405
- let link_flags t ~dir ~expander ~flags =
406
- let t = t.env_tree in
405
+ let link_flags t ~dir ~expander ~use_standard_c_and_cxx_flags ~ flags =
406
+ let env_tree = t.env_tree in
407
407
let default_from_env =
408
- get_node t ~dir >> | Env_node. link_flags |> Action_builder. memo_build_join
408
+ get_node env_tree ~dir >> | Env_node. link_flags |> Action_builder. memo_build_join
409
409
in
410
410
let default_extra =
411
- let open Action_builder.O in
412
- let + flags = Cxx_flags. get_flags ~for_: Link dir in
413
- List. concat_map flags ~f: (fun f -> [ " -cclib" ; f ])
411
+ if use_standard_c_and_cxx_flags
412
+ then
413
+ let open Action_builder.O in
414
+ let + flags = Cxx_flags. get_flags ~for_: Link dir in
415
+ List. concat_map flags ~f: (fun f -> [ " -cclib" ; f ])
416
+ else Action_builder. return []
414
417
in
415
418
let default =
416
419
let open Action_builder.O in
Original file line number Diff line number Diff line change @@ -90,6 +90,7 @@ val link_flags :
90
90
t
91
91
-> dir :Path .Build .t
92
92
-> expander :Expander .t
93
+ -> use_standard_c_and_cxx_flags :bool
93
94
-> flags :Ordered_set_lang .Unexpanded .t
94
95
-> string list Action_builder .t
95
96
You can’t perform that action at this time.
0 commit comments