-
Notifications
You must be signed in to change notification settings - Fork 125
/
bslGenerator.mli
73 lines (59 loc) · 2.36 KB
/
bslGenerator.mli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
(*
Copyright © 2011, 2012 MLstate
This file is part of Opa.
Opa is free software: you can redistribute it and/or modify it under the
terms of the GNU Affero General Public License, version 3, as published by
the Free Software Foundation.
Opa is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
more details.
You should have received a copy of the GNU Affero General Public License
along with Opa. If not, see <http://www.gnu.org/licenses/>.
*)
(**
Wrapper around BslRegisterLib to make it easier to call from outside code.
Most of this file used to be part of bslregister.ml. This was
refactor to make it easier to call the plugin compiler from the
rest of the code.
*)
type options = {
(** A boolean to say if we want to generate the Plugin and the
Loader file. these files are used to link statically a plugin
with an executable, so that there is no need to load dynamically
a .bypass file for being able to load bypasses of a given plugin.
Currently, the static mode is used only for the opabsl, and the
resulting plugin is linked with opa.exe
The loader file can be used for interpreter in ml only (opatop)
to add new primitives. *)
static: bool;
(** A boolean to say that generated files should be put in the
build_dir directly, without storing them in a opp directory. *)
no_opp: bool;
(** Flag that says whether identifiers in the nodejs plugin should
be exported into the global namespace or if they should be used
as regular module exports (i.e. "exports.foo = foo;") *)
modular_plugins: bool;
build_dir: string;
bsl_pref: string;
auto_build: bool;
check_style: bool;
clean: bool;
clean_would_only: bool;
default_iformats: bool;
extrapaths: string list;
unsafe_js: bool;
unsafe_opa: bool;
bypass_plugins: BslDynlink.bypass_plugin_file list;
files: string list;
package_version: string;
spec_process: (string, string) Hashtbl.t;
ml_flags: string list;
mlopt_flags: string list;
js_validator: string option;
js_validator_files: string list;
js_validator_options: string list;
pprocess: string option;
}
val default_opts : options
val process : options -> unit