mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2026-01-29 12:24:50 -05:00
release 0.20
This commit is contained in:
parent
f6774434cd
commit
88025034b6
4 changed files with 5513 additions and 3452 deletions
333
myocamlbuild.ml
333
myocamlbuild.ml
|
|
@ -1,19 +1,12 @@
|
||||||
(* OASIS_START *)
|
(* OASIS_START *)
|
||||||
(* DO NOT EDIT (digest: 9ba607f1a3e839f1c1e8ea449ddfab16) *)
|
(* DO NOT EDIT (digest: 424a79b7df70bc76f7d6f1ee2e9da48e) *)
|
||||||
module OASISGettext = struct
|
module OASISGettext = struct
|
||||||
(* # 22 "src/oasis/OASISGettext.ml" *)
|
(* # 22 "src/oasis/OASISGettext.ml" *)
|
||||||
|
|
||||||
|
|
||||||
let ns_ str =
|
let ns_ str = str
|
||||||
str
|
let s_ str = str
|
||||||
|
let f_ (str: ('a, 'b, 'c, 'd) format4) = str
|
||||||
|
|
||||||
let s_ str =
|
|
||||||
str
|
|
||||||
|
|
||||||
|
|
||||||
let f_ (str: ('a, 'b, 'c, 'd) format4) =
|
|
||||||
str
|
|
||||||
|
|
||||||
|
|
||||||
let fn_ fmt1 fmt2 n =
|
let fn_ fmt1 fmt2 n =
|
||||||
|
|
@ -23,10 +16,7 @@ module OASISGettext = struct
|
||||||
fmt2^^""
|
fmt2^^""
|
||||||
|
|
||||||
|
|
||||||
let init =
|
let init = []
|
||||||
[]
|
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
module OASISString = struct
|
module OASISString = struct
|
||||||
|
|
@ -189,19 +179,181 @@ module OASISString = struct
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
module OASISExpr = struct
|
module OASISUtils = struct
|
||||||
(* # 22 "src/oasis/OASISExpr.ml" *)
|
(* # 22 "src/oasis/OASISUtils.ml" *)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
open OASISGettext
|
open OASISGettext
|
||||||
|
|
||||||
|
|
||||||
|
module MapExt =
|
||||||
|
struct
|
||||||
|
module type S =
|
||||||
|
sig
|
||||||
|
include Map.S
|
||||||
|
val add_list: 'a t -> (key * 'a) list -> 'a t
|
||||||
|
val of_list: (key * 'a) list -> 'a t
|
||||||
|
val to_list: 'a t -> (key * 'a) list
|
||||||
|
end
|
||||||
|
|
||||||
|
module Make (Ord: Map.OrderedType) =
|
||||||
|
struct
|
||||||
|
include Map.Make(Ord)
|
||||||
|
|
||||||
|
let rec add_list t =
|
||||||
|
function
|
||||||
|
| (k, v) :: tl -> add_list (add k v t) tl
|
||||||
|
| [] -> t
|
||||||
|
|
||||||
|
let of_list lst = add_list empty lst
|
||||||
|
|
||||||
|
let to_list t = fold (fun k v acc -> (k, v) :: acc) t []
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
module MapString = MapExt.Make(String)
|
||||||
|
|
||||||
|
|
||||||
|
module SetExt =
|
||||||
|
struct
|
||||||
|
module type S =
|
||||||
|
sig
|
||||||
|
include Set.S
|
||||||
|
val add_list: t -> elt list -> t
|
||||||
|
val of_list: elt list -> t
|
||||||
|
val to_list: t -> elt list
|
||||||
|
end
|
||||||
|
|
||||||
|
module Make (Ord: Set.OrderedType) =
|
||||||
|
struct
|
||||||
|
include Set.Make(Ord)
|
||||||
|
|
||||||
|
let rec add_list t =
|
||||||
|
function
|
||||||
|
| e :: tl -> add_list (add e t) tl
|
||||||
|
| [] -> t
|
||||||
|
|
||||||
|
let of_list lst = add_list empty lst
|
||||||
|
|
||||||
|
let to_list = elements
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
module SetString = SetExt.Make(String)
|
||||||
|
|
||||||
|
|
||||||
|
let compare_csl s1 s2 =
|
||||||
|
String.compare (OASISString.lowercase_ascii s1) (OASISString.lowercase_ascii s2)
|
||||||
|
|
||||||
|
|
||||||
|
module HashStringCsl =
|
||||||
|
Hashtbl.Make
|
||||||
|
(struct
|
||||||
|
type t = string
|
||||||
|
let equal s1 s2 = (compare_csl s1 s2) = 0
|
||||||
|
let hash s = Hashtbl.hash (OASISString.lowercase_ascii s)
|
||||||
|
end)
|
||||||
|
|
||||||
|
module SetStringCsl =
|
||||||
|
SetExt.Make
|
||||||
|
(struct
|
||||||
|
type t = string
|
||||||
|
let compare = compare_csl
|
||||||
|
end)
|
||||||
|
|
||||||
|
|
||||||
|
let varname_of_string ?(hyphen='_') s =
|
||||||
|
if String.length s = 0 then
|
||||||
|
begin
|
||||||
|
invalid_arg "varname_of_string"
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
let buf =
|
||||||
|
OASISString.replace_chars
|
||||||
|
(fun c ->
|
||||||
|
if ('a' <= c && c <= 'z')
|
||||||
|
||
|
||||||
|
('A' <= c && c <= 'Z')
|
||||||
|
||
|
||||||
|
('0' <= c && c <= '9') then
|
||||||
|
c
|
||||||
|
else
|
||||||
|
hyphen)
|
||||||
|
s;
|
||||||
|
in
|
||||||
|
let buf =
|
||||||
|
(* Start with a _ if digit *)
|
||||||
|
if '0' <= s.[0] && s.[0] <= '9' then
|
||||||
|
"_"^buf
|
||||||
|
else
|
||||||
|
buf
|
||||||
|
in
|
||||||
|
OASISString.lowercase_ascii buf
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
let varname_concat ?(hyphen='_') p s =
|
||||||
|
let what = String.make 1 hyphen in
|
||||||
|
let p =
|
||||||
|
try
|
||||||
|
OASISString.strip_ends_with ~what p
|
||||||
|
with Not_found ->
|
||||||
|
p
|
||||||
|
in
|
||||||
|
let s =
|
||||||
|
try
|
||||||
|
OASISString.strip_starts_with ~what s
|
||||||
|
with Not_found ->
|
||||||
|
s
|
||||||
|
in
|
||||||
|
p^what^s
|
||||||
|
|
||||||
|
|
||||||
|
let is_varname str =
|
||||||
|
str = varname_of_string str
|
||||||
|
|
||||||
|
|
||||||
|
let failwithf fmt = Printf.ksprintf failwith fmt
|
||||||
|
|
||||||
|
|
||||||
|
let rec file_location ?pos1 ?pos2 ?lexbuf () =
|
||||||
|
match pos1, pos2, lexbuf with
|
||||||
|
| Some p, None, _ | None, Some p, _ ->
|
||||||
|
file_location ~pos1:p ~pos2:p ?lexbuf ()
|
||||||
|
| Some p1, Some p2, _ ->
|
||||||
|
let open Lexing in
|
||||||
|
let fn, lineno = p1.pos_fname, p1.pos_lnum in
|
||||||
|
let c1 = p1.pos_cnum - p1.pos_bol in
|
||||||
|
let c2 = c1 + (p2.pos_cnum - p1.pos_cnum) in
|
||||||
|
Printf.sprintf (f_ "file %S, line %d, characters %d-%d") fn lineno c1 c2
|
||||||
|
| _, _, Some lexbuf ->
|
||||||
|
file_location
|
||||||
|
~pos1:(Lexing.lexeme_start_p lexbuf)
|
||||||
|
~pos2:(Lexing.lexeme_end_p lexbuf)
|
||||||
|
()
|
||||||
|
| None, None, None ->
|
||||||
|
s_ "<position undefined>"
|
||||||
|
|
||||||
|
|
||||||
|
let failwithpf ?pos1 ?pos2 ?lexbuf fmt =
|
||||||
|
let loc = file_location ?pos1 ?pos2 ?lexbuf () in
|
||||||
|
Printf.ksprintf (fun s -> failwith (Printf.sprintf "%s: %s" loc s)) fmt
|
||||||
|
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
module OASISExpr = struct
|
||||||
|
(* # 22 "src/oasis/OASISExpr.ml" *)
|
||||||
|
|
||||||
|
|
||||||
|
open OASISGettext
|
||||||
|
open OASISUtils
|
||||||
|
|
||||||
|
|
||||||
type test = string
|
type test = string
|
||||||
|
|
||||||
|
|
||||||
type flag = string
|
type flag = string
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -214,7 +366,6 @@ module OASISExpr = struct
|
||||||
| ETest of test * string
|
| ETest of test * string
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
type 'a choices = (t * 'a) list
|
type 'a choices = (t * 'a) list
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -289,7 +440,7 @@ module OASISExpr = struct
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
# 292 "myocamlbuild.ml"
|
# 443 "myocamlbuild.ml"
|
||||||
module BaseEnvLight = struct
|
module BaseEnvLight = struct
|
||||||
(* # 22 "src/base/BaseEnvLight.ml" *)
|
(* # 22 "src/base/BaseEnvLight.ml" *)
|
||||||
|
|
||||||
|
|
@ -300,24 +451,12 @@ module BaseEnvLight = struct
|
||||||
type t = string MapString.t
|
type t = string MapString.t
|
||||||
|
|
||||||
|
|
||||||
let default_filename =
|
let default_filename = Filename.concat (Sys.getcwd ()) "setup.data"
|
||||||
Filename.concat
|
|
||||||
(Sys.getcwd ())
|
|
||||||
"setup.data"
|
|
||||||
|
|
||||||
|
|
||||||
let load ?(allow_empty=false) ?(filename=default_filename) () =
|
let load ?(allow_empty=false) ?(filename=default_filename) ?stream () =
|
||||||
if Sys.file_exists filename then
|
let line = ref 1 in
|
||||||
begin
|
let lexer st =
|
||||||
let chn =
|
|
||||||
open_in_bin filename
|
|
||||||
in
|
|
||||||
let st =
|
|
||||||
Stream.of_channel chn
|
|
||||||
in
|
|
||||||
let line =
|
|
||||||
ref 1
|
|
||||||
in
|
|
||||||
let st_line =
|
let st_line =
|
||||||
Stream.from
|
Stream.from
|
||||||
(fun _ ->
|
(fun _ ->
|
||||||
|
|
@ -327,47 +466,40 @@ module BaseEnvLight = struct
|
||||||
| c -> Some c
|
| c -> Some c
|
||||||
with Stream.Failure -> None)
|
with Stream.Failure -> None)
|
||||||
in
|
in
|
||||||
let lexer =
|
|
||||||
Genlex.make_lexer ["="] st_line
|
Genlex.make_lexer ["="] st_line
|
||||||
in
|
in
|
||||||
let rec read_file mp =
|
let rec read_file lxr mp =
|
||||||
match Stream.npeek 3 lexer with
|
match Stream.npeek 3 lxr with
|
||||||
| [Genlex.Ident nm; Genlex.Kwd "="; Genlex.String value] ->
|
| [Genlex.Ident nm; Genlex.Kwd "="; Genlex.String value] ->
|
||||||
Stream.junk lexer;
|
Stream.junk lxr; Stream.junk lxr; Stream.junk lxr;
|
||||||
Stream.junk lexer;
|
read_file lxr (MapString.add nm value mp)
|
||||||
Stream.junk lexer;
|
| [] -> mp
|
||||||
read_file (MapString.add nm value mp)
|
|
||||||
| [] ->
|
|
||||||
mp
|
|
||||||
| _ ->
|
| _ ->
|
||||||
failwith
|
failwith
|
||||||
(Printf.sprintf
|
(Printf.sprintf "Malformed data file '%s' line %d" filename !line)
|
||||||
"Malformed data file '%s' line %d"
|
|
||||||
filename !line)
|
|
||||||
in
|
in
|
||||||
let mp =
|
match stream with
|
||||||
read_file MapString.empty
|
| Some st -> read_file (lexer st) MapString.empty
|
||||||
in
|
| None ->
|
||||||
close_in chn;
|
if Sys.file_exists filename then begin
|
||||||
mp
|
let chn = open_in_bin filename in
|
||||||
end
|
let st = Stream.of_channel chn in
|
||||||
else if allow_empty then
|
try
|
||||||
begin
|
let mp = read_file (lexer st) MapString.empty in
|
||||||
|
close_in chn; mp
|
||||||
|
with e ->
|
||||||
|
close_in chn; raise e
|
||||||
|
end else if allow_empty then begin
|
||||||
MapString.empty
|
MapString.empty
|
||||||
end
|
end else begin
|
||||||
else
|
|
||||||
begin
|
|
||||||
failwith
|
failwith
|
||||||
(Printf.sprintf
|
(Printf.sprintf
|
||||||
"Unable to load environment, the file '%s' doesn't exist."
|
"Unable to load environment, the file '%s' doesn't exist."
|
||||||
filename)
|
filename)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
let rec var_expand str env =
|
let rec var_expand str env =
|
||||||
let buff =
|
let buff = Buffer.create ((String.length str) * 2) in
|
||||||
Buffer.create ((String.length str) * 2)
|
|
||||||
in
|
|
||||||
Buffer.add_substitute
|
Buffer.add_substitute
|
||||||
buff
|
buff
|
||||||
(fun var ->
|
(fun var ->
|
||||||
|
|
@ -383,49 +515,39 @@ module BaseEnvLight = struct
|
||||||
Buffer.contents buff
|
Buffer.contents buff
|
||||||
|
|
||||||
|
|
||||||
let var_get name env =
|
let var_get name env = var_expand (MapString.find name env) env
|
||||||
var_expand (MapString.find name env) env
|
let var_choose lst env = OASISExpr.choose (fun nm -> var_get nm env) lst
|
||||||
|
|
||||||
|
|
||||||
let var_choose lst env =
|
|
||||||
OASISExpr.choose
|
|
||||||
(fun nm -> var_get nm env)
|
|
||||||
lst
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
# 397 "myocamlbuild.ml"
|
# 523 "myocamlbuild.ml"
|
||||||
module MyOCamlbuildFindlib = struct
|
module MyOCamlbuildFindlib = struct
|
||||||
(* # 22 "src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml" *)
|
(* # 22 "src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml" *)
|
||||||
|
|
||||||
|
|
||||||
(** OCamlbuild extension, copied from
|
(** OCamlbuild extension, copied from
|
||||||
* http://brion.inria.fr/gallium/index.php/Using_ocamlfind_with_ocamlbuild
|
* https://ocaml.org/learn/tutorials/ocamlbuild/Using_ocamlfind_with_ocamlbuild.html
|
||||||
* by N. Pouillard and others
|
* by N. Pouillard and others
|
||||||
*
|
*
|
||||||
* Updated on 2009/02/28
|
* Updated on 2016-06-02
|
||||||
*
|
*
|
||||||
* Modified by Sylvain Le Gall
|
* Modified by Sylvain Le Gall
|
||||||
*)
|
*)
|
||||||
open Ocamlbuild_plugin
|
open Ocamlbuild_plugin
|
||||||
|
|
||||||
type conf =
|
|
||||||
{ no_automatic_syntax: bool;
|
|
||||||
}
|
|
||||||
|
|
||||||
(* these functions are not really officially exported *)
|
type conf = {no_automatic_syntax: bool}
|
||||||
let run_and_read =
|
|
||||||
Ocamlbuild_pack.My_unix.run_and_read
|
|
||||||
|
|
||||||
|
|
||||||
let blank_sep_strings =
|
let run_and_read = Ocamlbuild_pack.My_unix.run_and_read
|
||||||
Ocamlbuild_pack.Lexers.blank_sep_strings
|
|
||||||
|
|
||||||
|
let blank_sep_strings = Ocamlbuild_pack.Lexers.blank_sep_strings
|
||||||
|
|
||||||
|
|
||||||
let exec_from_conf exec =
|
let exec_from_conf exec =
|
||||||
let exec =
|
let exec =
|
||||||
let env_filename = Pathname.basename BaseEnvLight.default_filename in
|
let env = BaseEnvLight.load ~allow_empty:true () in
|
||||||
let env = BaseEnvLight.load ~filename:env_filename ~allow_empty:true () in
|
|
||||||
try
|
try
|
||||||
BaseEnvLight.var_get exec env
|
BaseEnvLight.var_get exec env
|
||||||
with Not_found ->
|
with Not_found ->
|
||||||
|
|
@ -447,6 +569,7 @@ module MyOCamlbuildFindlib = struct
|
||||||
in
|
in
|
||||||
fix_win32 exec
|
fix_win32 exec
|
||||||
|
|
||||||
|
|
||||||
let split s ch =
|
let split s ch =
|
||||||
let buf = Buffer.create 13 in
|
let buf = Buffer.create 13 in
|
||||||
let x = ref [] in
|
let x = ref [] in
|
||||||
|
|
@ -516,11 +639,13 @@ module MyOCamlbuildFindlib = struct
|
||||||
|
|
||||||
| After_rules ->
|
| After_rules ->
|
||||||
|
|
||||||
|
(* Avoid warnings for unused tag *)
|
||||||
|
flag ["tests"] N;
|
||||||
|
|
||||||
(* When one link an OCaml library/binary/package, one should use
|
(* When one link an OCaml library/binary/package, one should use
|
||||||
* -linkpkg *)
|
* -linkpkg *)
|
||||||
flag ["ocaml"; "link"; "program"] & A"-linkpkg";
|
flag ["ocaml"; "link"; "program"] & A"-linkpkg";
|
||||||
|
|
||||||
if not (conf.no_automatic_syntax) then begin
|
|
||||||
(* For each ocamlfind package one inject the -package option when
|
(* For each ocamlfind package one inject the -package option when
|
||||||
* compiling, computing dependencies, generating documentation and
|
* compiling, computing dependencies, generating documentation and
|
||||||
* linking. *)
|
* linking. *)
|
||||||
|
|
@ -533,8 +658,9 @@ module MyOCamlbuildFindlib = struct
|
||||||
(* Heuristic to identify syntax extensions: whether they end in
|
(* Heuristic to identify syntax extensions: whether they end in
|
||||||
".syntax"; some might not.
|
".syntax"; some might not.
|
||||||
*)
|
*)
|
||||||
if Filename.check_suffix pkg "syntax" ||
|
if not (conf.no_automatic_syntax) &&
|
||||||
List.mem pkg well_known_syntax then
|
(Filename.check_suffix pkg "syntax" ||
|
||||||
|
List.mem pkg well_known_syntax) then
|
||||||
(syn_args @ base_args, syn_args)
|
(syn_args @ base_args, syn_args)
|
||||||
else
|
else
|
||||||
(base_args, [])
|
(base_args, [])
|
||||||
|
|
@ -552,7 +678,6 @@ module MyOCamlbuildFindlib = struct
|
||||||
flag ["ocaml"; "infer_interface"; "package("^pkg^")"] & S pargs;
|
flag ["ocaml"; "infer_interface"; "package("^pkg^")"] & S pargs;
|
||||||
end
|
end
|
||||||
(find_packages ());
|
(find_packages ());
|
||||||
end;
|
|
||||||
|
|
||||||
(* Like -package but for extensions syntax. Morover -syntax is useless
|
(* Like -package but for extensions syntax. Morover -syntax is useless
|
||||||
* when linking. *)
|
* when linking. *)
|
||||||
|
|
@ -576,10 +701,12 @@ module MyOCamlbuildFindlib = struct
|
||||||
flag ["ocaml"; "pkg_threads"; "doc"] (S[A "-I"; A "+threads"]);
|
flag ["ocaml"; "pkg_threads"; "doc"] (S[A "-I"; A "+threads"]);
|
||||||
flag ["ocaml"; "pkg_threads"; "link"] (S[A "-thread"]);
|
flag ["ocaml"; "pkg_threads"; "link"] (S[A "-thread"]);
|
||||||
flag ["ocaml"; "pkg_threads"; "infer_interface"] (S[A "-thread"]);
|
flag ["ocaml"; "pkg_threads"; "infer_interface"] (S[A "-thread"]);
|
||||||
|
flag ["c"; "pkg_threads"; "compile"] (S[A "-thread"]);
|
||||||
flag ["ocaml"; "package(threads)"; "compile"] (S[A "-thread"]);
|
flag ["ocaml"; "package(threads)"; "compile"] (S[A "-thread"]);
|
||||||
flag ["ocaml"; "package(threads)"; "doc"] (S[A "-I"; A "+threads"]);
|
flag ["ocaml"; "package(threads)"; "doc"] (S[A "-I"; A "+threads"]);
|
||||||
flag ["ocaml"; "package(threads)"; "link"] (S[A "-thread"]);
|
flag ["ocaml"; "package(threads)"; "link"] (S[A "-thread"]);
|
||||||
flag ["ocaml"; "package(threads)"; "infer_interface"] (S[A "-thread"]);
|
flag ["ocaml"; "package(threads)"; "infer_interface"] (S[A "-thread"]);
|
||||||
|
flag ["c"; "package(threads)"; "compile"] (S[A "-thread"]);
|
||||||
|
|
||||||
| _ ->
|
| _ ->
|
||||||
()
|
()
|
||||||
|
|
@ -594,9 +721,6 @@ module MyOCamlbuildBase = struct
|
||||||
*)
|
*)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
open Ocamlbuild_plugin
|
open Ocamlbuild_plugin
|
||||||
module OC = Ocamlbuild_pack.Ocaml_compiler
|
module OC = Ocamlbuild_pack.Ocaml_compiler
|
||||||
|
|
||||||
|
|
@ -607,9 +731,6 @@ module MyOCamlbuildBase = struct
|
||||||
type tag = string
|
type tag = string
|
||||||
|
|
||||||
|
|
||||||
(* # 62 "src/plugins/ocamlbuild/MyOCamlbuildBase.ml" *)
|
|
||||||
|
|
||||||
|
|
||||||
type t =
|
type t =
|
||||||
{
|
{
|
||||||
lib_ocaml: (name * dir list * string list) list;
|
lib_ocaml: (name * dir list * string list) list;
|
||||||
|
|
@ -622,9 +743,7 @@ module MyOCamlbuildBase = struct
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let env_filename =
|
(* # 110 "src/plugins/ocamlbuild/MyOCamlbuildBase.ml" *)
|
||||||
Pathname.basename
|
|
||||||
BaseEnvLight.default_filename
|
|
||||||
|
|
||||||
|
|
||||||
let dispatch_combine lst =
|
let dispatch_combine lst =
|
||||||
|
|
@ -643,12 +762,7 @@ module MyOCamlbuildBase = struct
|
||||||
|
|
||||||
|
|
||||||
let dispatch t e =
|
let dispatch t e =
|
||||||
let env =
|
let env = BaseEnvLight.load ~allow_empty:true () in
|
||||||
BaseEnvLight.load
|
|
||||||
~filename:env_filename
|
|
||||||
~allow_empty:true
|
|
||||||
()
|
|
||||||
in
|
|
||||||
match e with
|
match e with
|
||||||
| Before_options ->
|
| Before_options ->
|
||||||
let no_trailing_dot s =
|
let no_trailing_dot s =
|
||||||
|
|
@ -712,6 +826,7 @@ module MyOCamlbuildBase = struct
|
||||||
flag ["link"; "library"; "ocaml"; "native"; tag_libstubs lib]
|
flag ["link"; "library"; "ocaml"; "native"; tag_libstubs lib]
|
||||||
(S[A"-cclib"; A("-l"^(nm_libstubs lib))]);
|
(S[A"-cclib"; A("-l"^(nm_libstubs lib))]);
|
||||||
|
|
||||||
|
if bool_of_string (BaseEnvLight.var_get "native_dynlink" env) then
|
||||||
flag ["link"; "program"; "ocaml"; "byte"; tag_libstubs lib]
|
flag ["link"; "program"; "ocaml"; "byte"; tag_libstubs lib]
|
||||||
(S[A"-dllib"; A("dll"^(nm_libstubs lib))]);
|
(S[A"-dllib"; A("dll"^(nm_libstubs lib))]);
|
||||||
|
|
||||||
|
|
@ -763,7 +878,7 @@ module MyOCamlbuildBase = struct
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
# 766 "myocamlbuild.ml"
|
# 881 "myocamlbuild.ml"
|
||||||
open Ocamlbuild_plugin;;
|
open Ocamlbuild_plugin;;
|
||||||
let package_default =
|
let package_default =
|
||||||
{
|
{
|
||||||
|
|
@ -829,7 +944,7 @@ let conf = {MyOCamlbuildFindlib.no_automatic_syntax = false}
|
||||||
|
|
||||||
let dispatch_default = MyOCamlbuildBase.dispatch_default conf package_default;;
|
let dispatch_default = MyOCamlbuildBase.dispatch_default conf package_default;;
|
||||||
|
|
||||||
# 833 "myocamlbuild.ml"
|
# 948 "myocamlbuild.ml"
|
||||||
(* OASIS_STOP *)
|
(* OASIS_STOP *)
|
||||||
let doc_intro = "doc/intro.txt" ;;
|
let doc_intro = "doc/intro.txt" ;;
|
||||||
|
|
||||||
|
|
|
||||||
2
opam
2
opam
|
|
@ -1,6 +1,6 @@
|
||||||
opam-version: "1.2"
|
opam-version: "1.2"
|
||||||
name: "containers"
|
name: "containers"
|
||||||
version: "0.19"
|
version: "0.20"
|
||||||
author: "Simon Cruanes"
|
author: "Simon Cruanes"
|
||||||
maintainer: "simon.cruanes@inria.fr"
|
maintainer: "simon.cruanes@inria.fr"
|
||||||
build: [
|
build: [
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# OASIS_START
|
# OASIS_START
|
||||||
# DO NOT EDIT (digest: 56ec39bd73892c447789e2116b0f000e)
|
# DO NOT EDIT (digest: 5fef39d6aa86c783d2d134baf25c1157)
|
||||||
version = "0.19"
|
version = "0.20"
|
||||||
description = "A modular standard library focused on data structures."
|
description = "A modular standard library focused on data structures."
|
||||||
requires = "bytes result"
|
requires = "bytes result"
|
||||||
archive(byte) = "containers.cma"
|
archive(byte) = "containers.cma"
|
||||||
|
|
@ -9,7 +9,7 @@ archive(native) = "containers.cmxa"
|
||||||
archive(native, plugin) = "containers.cmxs"
|
archive(native, plugin) = "containers.cmxs"
|
||||||
exists_if = "containers.cma"
|
exists_if = "containers.cma"
|
||||||
package "unix" (
|
package "unix" (
|
||||||
version = "0.19"
|
version = "0.20"
|
||||||
description = "A modular standard library focused on data structures."
|
description = "A modular standard library focused on data structures."
|
||||||
requires = "bytes unix"
|
requires = "bytes unix"
|
||||||
archive(byte) = "containers_unix.cma"
|
archive(byte) = "containers_unix.cma"
|
||||||
|
|
@ -20,7 +20,7 @@ package "unix" (
|
||||||
)
|
)
|
||||||
|
|
||||||
package "top" (
|
package "top" (
|
||||||
version = "0.19"
|
version = "0.20"
|
||||||
description = "A modular standard library focused on data structures."
|
description = "A modular standard library focused on data structures."
|
||||||
requires =
|
requires =
|
||||||
"compiler-libs.common containers containers.data containers.bigarray containers.string containers.unix containers.sexp containers.iter"
|
"compiler-libs.common containers containers.data containers.bigarray containers.string containers.unix containers.sexp containers.iter"
|
||||||
|
|
@ -32,7 +32,7 @@ package "top" (
|
||||||
)
|
)
|
||||||
|
|
||||||
package "thread" (
|
package "thread" (
|
||||||
version = "0.19"
|
version = "0.20"
|
||||||
description = "A modular standard library focused on data structures."
|
description = "A modular standard library focused on data structures."
|
||||||
requires = "containers threads"
|
requires = "containers threads"
|
||||||
archive(byte) = "containers_thread.cma"
|
archive(byte) = "containers_thread.cma"
|
||||||
|
|
@ -43,7 +43,7 @@ package "thread" (
|
||||||
)
|
)
|
||||||
|
|
||||||
package "string" (
|
package "string" (
|
||||||
version = "0.19"
|
version = "0.20"
|
||||||
description = "A modular standard library focused on data structures."
|
description = "A modular standard library focused on data structures."
|
||||||
requires = "bytes"
|
requires = "bytes"
|
||||||
archive(byte) = "containers_string.cma"
|
archive(byte) = "containers_string.cma"
|
||||||
|
|
@ -54,7 +54,7 @@ package "string" (
|
||||||
)
|
)
|
||||||
|
|
||||||
package "sexp" (
|
package "sexp" (
|
||||||
version = "0.19"
|
version = "0.20"
|
||||||
description = "A modular standard library focused on data structures."
|
description = "A modular standard library focused on data structures."
|
||||||
requires = "bytes"
|
requires = "bytes"
|
||||||
archive(byte) = "containers_sexp.cma"
|
archive(byte) = "containers_sexp.cma"
|
||||||
|
|
@ -65,7 +65,7 @@ package "sexp" (
|
||||||
)
|
)
|
||||||
|
|
||||||
package "iter" (
|
package "iter" (
|
||||||
version = "0.19"
|
version = "0.20"
|
||||||
description = "A modular standard library focused on data structures."
|
description = "A modular standard library focused on data structures."
|
||||||
archive(byte) = "containers_iter.cma"
|
archive(byte) = "containers_iter.cma"
|
||||||
archive(byte, plugin) = "containers_iter.cma"
|
archive(byte, plugin) = "containers_iter.cma"
|
||||||
|
|
@ -75,7 +75,7 @@ package "iter" (
|
||||||
)
|
)
|
||||||
|
|
||||||
package "io" (
|
package "io" (
|
||||||
version = "0.19"
|
version = "0.20"
|
||||||
description = "A modular standard library focused on data structures."
|
description = "A modular standard library focused on data structures."
|
||||||
requires = "bytes"
|
requires = "bytes"
|
||||||
archive(byte) = "containers_io.cma"
|
archive(byte) = "containers_io.cma"
|
||||||
|
|
@ -86,7 +86,7 @@ package "io" (
|
||||||
)
|
)
|
||||||
|
|
||||||
package "data" (
|
package "data" (
|
||||||
version = "0.19"
|
version = "0.20"
|
||||||
description = "A modular standard library focused on data structures."
|
description = "A modular standard library focused on data structures."
|
||||||
requires = "bytes"
|
requires = "bytes"
|
||||||
archive(byte) = "containers_data.cma"
|
archive(byte) = "containers_data.cma"
|
||||||
|
|
@ -97,7 +97,7 @@ package "data" (
|
||||||
)
|
)
|
||||||
|
|
||||||
package "bigarray" (
|
package "bigarray" (
|
||||||
version = "0.19"
|
version = "0.20"
|
||||||
description = "A modular standard library focused on data structures."
|
description = "A modular standard library focused on data structures."
|
||||||
requires = "containers bigarray bytes"
|
requires = "containers bigarray bytes"
|
||||||
archive(byte) = "containers_bigarray.cma"
|
archive(byte) = "containers_bigarray.cma"
|
||||||
|
|
@ -108,7 +108,7 @@ package "bigarray" (
|
||||||
)
|
)
|
||||||
|
|
||||||
package "advanced" (
|
package "advanced" (
|
||||||
version = "0.19"
|
version = "0.20"
|
||||||
description = "A modular standard library focused on data structures."
|
description = "A modular standard library focused on data structures."
|
||||||
requires = "containers sequence"
|
requires = "containers sequence"
|
||||||
archive(byte) = "containers_advanced.cma"
|
archive(byte) = "containers_advanced.cma"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue