|
|
|
(* -*- tuareg -*- *)
|
|
|
|
(*
|
|
|
|
* Copyright (c) 2018-present, Facebook, Inc.
|
|
|
|
*
|
|
|
|
* 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
|
|
|
|
| "release" -> "-w -26-32 -noassert"
|
|
|
|
| _ -> "-g"
|
|
|
|
|
|
|
|
let ocamlopt_flags =
|
|
|
|
match Jbuild_plugin.V1.context with
|
|
|
|
| "release" -> 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 "dev" -> "--debug" | _ -> ""
|
|
|
|
|
|
|
|
let flags exe_or_lib deps =
|
|
|
|
Printf.sprintf
|
|
|
|
{|(flags (%s %s))
|
|
|
|
(ocamlc_flags (%s))
|
|
|
|
(ocamlopt_flags (%s))
|
|
|
|
(preprocess
|
|
|
|
(staged_pps
|
|
|
|
ppx_import
|
|
|
|
ppx_compare
|
|
|
|
ppx_custom_printf
|
|
|
|
ppx_deriving_cmdliner
|
|
|
|
ppx_expect
|
|
|
|
ppx_hash
|
|
|
|
ppx_here
|
|
|
|
ppx_inline_test
|
|
|
|
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
|