diff --git a/src/configurator/flags/jbuild b/src/configurator/flags/jbuild new file mode 100644 index 00000000..68be2f39 --- /dev/null +++ b/src/configurator/flags/jbuild @@ -0,0 +1,6 @@ +(jbuild_version 1) + +(executable + ((name mk))) + +(rule (with-stdout-to flags.sexp (run ./mk.exe -ocamlv ${ocaml_version}))) diff --git a/src/configurator/flags/mk.ml b/src/configurator/flags/mk.ml new file mode 100644 index 00000000..4c72c580 --- /dev/null +++ b/src/configurator/flags/mk.ml @@ -0,0 +1,25 @@ +open Printf + +let parse_version s = + Scanf.sscanf s "%d.%d.%d" (fun a b c -> a, b, c) + +let () = + let usage = + sprintf "%s -ocamlv version" (Filename.basename Sys.executable_name) in + let ocaml_version = ref "" in + let anon _ = + raise (Arg.Bad "anonymous arguments aren't accepted") in + Arg.parse + [ "-ocamlv" + , Arg.String (fun s -> ocaml_version := s) + , "Version of ocaml being used" + ] anon usage; + if !ocaml_version = "" then + raise (Arg.Bad "Provide version with -ocamlv") + else + let (x, y, _) = parse_version !ocaml_version in + if x >= 4 && y > 2 then ( + printf "()\n" + ) else ( + printf "(-w -50)\n" + ) diff --git a/src/configurator/jbuild b/src/configurator/jbuild index 03b0c4fd..2b696467 100644 --- a/src/configurator/jbuild +++ b/src/configurator/jbuild @@ -1,7 +1,7 @@ (library ((name configurator) - (flags (:standard -safe-string)) (libraries (stdune ocaml_config)) + (flags (:standard -safe-string (:include flags/flags.sexp))) (preprocess no_preprocessing))) (jbuild_version 1) diff --git a/src/stdune/caml/caml.ml b/src/stdune/caml/caml.ml index a050ef96..82dc6ca9 100644 --- a/src/stdune/caml/caml.ml +++ b/src/stdune/caml/caml.ml @@ -1,5 +1,6 @@ module Filename = Filename module String = String +module Char = Char module Result = Result type ('a, 'error) result = ('a, 'error) Result.t = diff --git a/src/stdune/char.ml b/src/stdune/char.ml new file mode 100644 index 00000000..a6c6b1ee --- /dev/null +++ b/src/stdune/char.ml @@ -0,0 +1,9 @@ +module Char = Caml.Char + +include struct + [@@@warning "-32-3"] + let uppercase_ascii = Char.uppercase + let lowercase_ascii = Char.lowercase +end + +include Char