aboutsummaryrefslogtreecommitdiff
path: root/checker
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2020-06-22 17:52:18 +0200
committerEmilio Jesus Gallego Arias2021-03-03 16:06:14 +0100
commitab98d847d237af3cd0e46edef42218be65cfc98f (patch)
tree91d26077257724e2eeefe1bf39e24f24d34070be /checker
parentef22a5aaf1728d840341d31befd67dd90c5b2e0e (diff)
[build] Split stdlib to it's own opam package.
We introduce a new package structure for Coq: - `coq-core`: Coq's OCaml tools code and plugins - `coq-stdlib`: Coq's stdlib [.vo files] - `coq`: meta-package that pulls `coq-{core,stdlib}` This has several advantages, in particular it allows to install Coq without the stdlib which is useful in several scenarios, it also open the door towards a versioning of the stdlib at the package level. The main user-visible change is that Coq's ML development files now live in `$lib/coq-core`, for compatibility in the regular build we install a symlink and support both setups for a while. Note that plugin developers and even `coq_makefile` should actually rely on `ocamlfind` to locate Coq's OCaml libs as to be more robust. There is a transient state where we actually look for both `$coqlib/plugins` and `$coqlib/../coq-core/plugins` as to support the non-ocamlfind plus custom variables. This will be much improved once #13617 is merged (which requires this PR first), then, we will introduce a `coq.boot` library so finally `coqdep`, `coqchk`, etc... can share the same path setup code. IMHO the plan should work fine.
Diffstat (limited to 'checker')
-rw-r--r--checker/checker.ml10
-rw-r--r--checker/dune7
2 files changed, 13 insertions, 4 deletions
diff --git a/checker/checker.ml b/checker/checker.ml
index ba5e3c6d1a..f55ed9e8d6 100644
--- a/checker/checker.ml
+++ b/checker/checker.ml
@@ -107,7 +107,15 @@ let init_load_path () =
let user_contrib = coqlib/"user-contrib" in
let xdg_dirs = Envars.xdg_dirs in
let coqpath = Envars.coqpath in
- let plugins = coqlib/"plugins" in
+ let plugins =
+ CPath.choose_existing
+ [ CPath.make [ coqlib ; "plugins" ]
+ ; CPath.make [ coqlib ; ".."; "coq-core"; "plugins" ]
+ ] |> function
+ | None ->
+ CErrors.user_err (Pp.str "Cannot find plugins directory")
+ | Some f -> (f :> string)
+ in
(* NOTE: These directories are searched from last to first *)
(* first standard library *)
add_rec_path ~unix_path:(coqlib/"theories") ~coq_root:(Names.DirPath.make[coq_root]);
diff --git a/checker/dune b/checker/dune
index af7d4f2923..78b4032141 100644
--- a/checker/dune
+++ b/checker/dune
@@ -7,13 +7,14 @@
(synopsis "Coq's Standalone Proof Checker")
(modules :standard \ coqchk votour)
(wrapped true)
- (libraries coq.kernel))
+ (libraries coq-core.kernel))
(executable
(name coqchk)
(public_name coqchk)
(modes exe byte)
- (package coq)
+ ; Move to coq-checker?
+ (package coq-core)
(modules coqchk)
(flags :standard -open Coq_checklib)
(libraries coq_checklib))
@@ -21,7 +22,7 @@
(executable
(name votour)
(public_name votour)
- (package coq)
+ (package coq-core)
(modules votour)
(flags :standard -open Coq_checklib)
(libraries coq_checklib))