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
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
|