aboutsummaryrefslogtreecommitdiff
path: root/tools/coqdoc
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 /tools/coqdoc
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 'tools/coqdoc')
-rw-r--r--tools/coqdoc/dune6
-rw-r--r--tools/coqdoc/main.ml14
2 files changed, 14 insertions, 6 deletions
diff --git a/tools/coqdoc/dune b/tools/coqdoc/dune
index e3c792f277..cc888a959f 100644
--- a/tools/coqdoc/dune
+++ b/tools/coqdoc/dune
@@ -1,6 +1,6 @@
(install
(section lib)
- (package coq)
+ (package coq-core)
(files
(coqdoc.css as tools/coqdoc/coqdoc.css)
(coqdoc.sty as tools/coqdoc/coqdoc.sty)))
@@ -8,7 +8,7 @@
(executable
(name main)
(public_name coqdoc)
- (package coq)
- (libraries str coq.config coq.clib))
+ (package coq-core)
+ (libraries str coq-core.config coq-core.clib))
(ocamllex cpretty)
diff --git a/tools/coqdoc/main.ml b/tools/coqdoc/main.ml
index b8d5032373..c95d1ee7db 100644
--- a/tools/coqdoc/main.ml
+++ b/tools/coqdoc/main.ml
@@ -471,9 +471,17 @@ let index_module = function
| Latex_file _ -> ()
let copy_style_file file =
- let src =
- List.fold_left
- Filename.concat !Cdglobals.coqlib_path ["tools";"coqdoc";file] in
+ (* We give preference to coqlib in case it is overriden *)
+ let src_dir = CPath.choose_existing
+ [ CPath.make [ !Cdglobals.coqlib_path; "tools"; "coqdoc" ]
+ ; CPath.make [ !Cdglobals.coqlib_path; ".."; "coq-core"; "tools"; "coqdoc" ]
+ ] |> function
+ | None ->
+ eprintf "coqdoc: cannot find coqdoc style files\n";
+ exit 1
+ | Some f -> f
+ in
+ let src = (CPath.relative src_dir file :> string) in
let dst = coqdoc_out file in
if Sys.file_exists src then copy src dst
else eprintf "Warning: file %s does not exist\n" src