You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.5 KiB

(* -*- 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-66
-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