(* -*- tuareg -*- *) (* * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) let common_flags = {|(-w +a-4-9-18-40-42-44-48@50 -strict-formats -strict-sequence -short-paths -bin-annot -keep-docs -unboxed-types)|} let ocamlc_flags = match Jbuild_plugin.V1.context with | "opt" | "dbg-opt" -> "-w -26-32 -noassert" | _ -> "-g" let ocamlopt_flags = match Jbuild_plugin.V1.context with | "opt" | "dbg-opt" -> ocamlc_flags ^ " -w -a -O3" | _ -> ocamlc_flags let coverage_ppx = match Jbuild_plugin.V1.context with "coverage" -> "bisect_ppx" | _ -> "" let ppx_flags = match Jbuild_plugin.V1.context with | "dbg" | "dbg-opt" -> "--debug" | _ -> "" let flags exe_or_lib deps = Printf.sprintf {|(flags (%s %s)) (ocamlc_flags (%s)) (ocamlopt_flags (%s)) (preprocess (staged_pps ppx_compare ppx_custom_printf ppx_expect ppx_hash ppx_here ppx_inline_test ppx_let ppx_sexp_conv ppx_sexp_value ppx_trace %s %s)) %s|} common_flags (String.concat " " (List.map (fun d -> "-open " ^ String.capitalize_ascii d) deps)) ocamlc_flags ocamlopt_flags ppx_flags coverage_ppx (match exe_or_lib with `lib -> "(inline_tests)" | _ -> "") let libraries deps = String.concat " " deps