1
1
(* Packages *)
2
2
3
- type pkgdir = string * Fpath .t
3
+ type pkgname = { p_name : string ; p_dir : Fpath .t }
4
4
5
5
type dep = string * Digest .t
6
6
@@ -34,7 +34,7 @@ type modulety = {
34
34
m_intf : intf ;
35
35
m_impl : impl option ;
36
36
m_hidden : bool ;
37
- m_pkg : pkgdir ;
37
+ m_pkgname : pkgname ;
38
38
(* The 'top dir' of a package, relative to [_odoc] or [_html] *)
39
39
}
40
40
@@ -44,7 +44,7 @@ type mld = {
44
44
mld_parent_id : id ;
45
45
mld_path : Fpath .t ; (* Absolute or relative to cwd *)
46
46
mld_deps : Fpath .t list ;
47
- mld_pkg : pkgdir ;
47
+ mld_pkgname : pkgname ;
48
48
(* The 'top dir' of a package, relative to [_odoc] or [_html] *)
49
49
}
50
50
@@ -58,26 +58,26 @@ type libty = {
58
58
}
59
59
60
60
type t = {
61
- name : string ;
61
+ pkgname : pkgname ;
62
62
version : string ;
63
63
libraries : libty list ;
64
64
mlds : mld list ;
65
65
mld_odoc_dir : Fpath .t ; (* Relative to [odoc] dir *)
66
- pkgdir : pkgdir ;
67
66
other_docs : Fpath.Set .t ;
68
67
}
69
68
70
69
let maybe_prepend_top top_dir dir =
71
70
match top_dir with None -> dir | Some d -> Fpath. (d // dir)
72
71
73
- let find_pkg top_dir pkg_name =
74
- (pkg_name, maybe_prepend_top top_dir Fpath. (v pkg_name))
72
+ let mk_pkgname top_dir p_name =
73
+ let p_dir = maybe_prepend_top top_dir Fpath. (v p_name) in
74
+ { p_name; p_dir }
75
75
76
- let parent_of_lib ( _ , pkg_dir ) lib_name = Fpath. (pkg_dir / " lib" / lib_name)
76
+ let parent_of_lib pkgname lib_name = Fpath. (pkgname.p_dir / " lib" / lib_name)
77
77
78
- let parent_of_pages ( _ , pkg_dir ) = Fpath. (pkg_dir / " doc" )
78
+ let parent_of_pages pkgname = Fpath. (pkgname.p_dir / " doc" )
79
79
80
- let parent_of_src ( _ , pkg_dir ) lib_name = Fpath. (pkg_dir / " src" / lib_name)
80
+ let parent_of_src pkgname lib_name = Fpath. (pkgname.p_dir / " src" / lib_name)
81
81
82
82
module Module = struct
83
83
type t = modulety
@@ -88,7 +88,7 @@ module Module = struct
88
88
89
89
let is_hidden name = Astring.String. is_infix ~affix: " __" name
90
90
91
- let vs pkgdir lib_name libsdir cmtidir modules =
91
+ let vs pkgname lib_name libsdir cmtidir modules =
92
92
let dir = match cmtidir with None -> libsdir | Some dir -> dir in
93
93
let mk m_name =
94
94
let exists ext =
@@ -108,7 +108,7 @@ module Module = struct
108
108
| _ -> None )
109
109
in
110
110
let mk_intf mif_path =
111
- let mif_parent_id = parent_of_lib pkgdir lib_name in
111
+ let mif_parent_id = parent_of_lib pkgname lib_name in
112
112
let mif_odoc_file =
113
113
Fpath. (
114
114
mif_parent_id
@@ -128,7 +128,7 @@ module Module = struct
128
128
| Error _ -> failwith " bad deps"
129
129
in
130
130
let mk_impl mip_path =
131
- let mip_parent_id = parent_of_lib pkgdir lib_name in
131
+ let mip_parent_id = parent_of_lib pkgname lib_name in
132
132
let mip_odoc_file =
133
133
Fpath. (
134
134
mip_parent_id
@@ -151,7 +151,7 @@ module Module = struct
151
151
m " Found source file %a for %s" Fpath. pp src_path m_name);
152
152
let src_name = Fpath. filename src_path in
153
153
let src_id =
154
- Fpath. (parent_of_src pkgdir lib_name / src_name)
154
+ Fpath. (parent_of_src pkgname lib_name / src_name)
155
155
|> Odoc. id_of_fpath
156
156
in
157
157
Some { src_path; src_id }
@@ -169,7 +169,7 @@ module Module = struct
169
169
let m_hidden = is_hidden m_name in
170
170
try
171
171
let r (m_intf , m_impl ) =
172
- Some { m_name; m_intf; m_impl; m_hidden; m_pkg = pkgdir }
172
+ Some { m_name; m_intf; m_impl; m_hidden; m_pkgname = pkgname }
173
173
in
174
174
match state with
175
175
| Some cmt , Some cmti -> r (mk_intf cmti, Some (mk_impl cmt))
@@ -187,10 +187,10 @@ module Module = struct
187
187
end
188
188
189
189
module Lib = struct
190
- let v ~pkgdir ~libname_of_archive ~dir ~cmtidir =
191
- let pkg_name, _ = pkgdir in
190
+ let v ~pkgname ~libname_of_archive ~dir ~cmtidir =
191
+ let { p_name; _ } = pkgname in
192
192
Logs. debug (fun m ->
193
- m " Classifying dir %a for package %s" Fpath. pp dir pkg_name );
193
+ m " Classifying dir %a for package %s" Fpath. pp dir p_name );
194
194
let dirs =
195
195
match cmtidir with None -> [ dir ] | Some dir2 -> [ dir; dir2 ]
196
196
in
@@ -206,7 +206,7 @@ module Lib = struct
206
206
m
207
207
" Unable to determine library in package '%s' to which \
208
208
archive '%s' belongs"
209
- pkg_name archive_name);
209
+ p_name archive_name);
210
210
Logs. debug (fun m ->
211
211
m " These are the archives I know about: [%a]"
212
212
Fmt. (list ~sep: sp string )
@@ -215,8 +215,8 @@ module Lib = struct
215
215
m " Defaulting to name of library: %s" archive_name);
216
216
archive_name
217
217
in
218
- let modules = Module. vs pkgdir lib_name dir cmtidir modules in
219
- let odoc_dir = parent_of_lib pkgdir lib_name in
218
+ let modules = Module. vs pkgname lib_name dir cmtidir modules in
219
+ let odoc_dir = parent_of_lib pkgname lib_name in
220
220
Some { lib_name; odoc_dir; archive_name; modules }
221
221
with _ ->
222
222
Logs. err (fun m ->
@@ -232,8 +232,8 @@ module Lib = struct
232
232
end
233
233
234
234
let pp ppf t =
235
- Fmt. pf ppf
" name: %[email protected] : %[email protected] : [@[<hov 2>@,%a@]@,]" t.name
236
- t.version
235
+ Fmt. pf ppf
" name: %[email protected] : %[email protected] : [@[<hov 2>@,%a@]@,]"
236
+ t.pkgname.p_name t. version
237
237
Fmt. (list ~sep: sp Lib. pp)
238
238
t.libraries
239
239
@@ -339,8 +339,8 @@ let of_libs ~packages_dir libs =
339
339
match rel_path with
340
340
| None -> acc
341
341
| Some rel_path ->
342
- let pkgdir = find_pkg packages_dir pkg_name in
343
- let id = Fpath. (parent_of_pages pkgdir // rel_path) in
342
+ let pkgname = mk_pkgname packages_dir pkg_name in
343
+ let id = Fpath. (parent_of_pages pkgname // rel_path) in
344
344
let mld_parent_id = id |> Fpath. parent |> Fpath. rem_empty_seg in
345
345
let page_name = Fpath. (rem_ext mld_path |> filename) in
346
346
let odoc_file =
@@ -354,7 +354,7 @@ let of_libs ~packages_dir libs =
354
354
mld_parent_id = Odoc. id_of_fpath mld_parent_id;
355
355
mld_path;
356
356
mld_deps;
357
- mld_pkg = pkgdir ;
357
+ mld_pkgname = pkgname ;
358
358
}
359
359
:: acc)
360
360
odoc_pages []
@@ -373,10 +373,10 @@ let of_libs ~packages_dir libs =
373
373
Logs. debug (fun m -> m " No package for dir %a\n %!" Fpath. pp dir);
374
374
acc
375
375
| Some pkg ->
376
- let pkgdir = find_pkg packages_dir pkg.name in
376
+ let pkgname = mk_pkgname packages_dir pkg.name in
377
377
378
378
let libraries =
379
- Lib. v ~pkgdir ~libname_of_archive ~dir ~cmtidir: None
379
+ Lib. v ~pkgname ~libname_of_archive ~dir ~cmtidir: None
380
380
in
381
381
let libraries =
382
382
List. filter
@@ -407,16 +407,15 @@ let of_libs ~packages_dir libs =
407
407
mlds = update_mlds pkg.mlds libraries;
408
408
}
409
409
| None ->
410
- let mld_odoc_dir = parent_of_pages pkgdir in
410
+ let mld_odoc_dir = parent_of_pages pkgname in
411
411
Some
412
412
{
413
- name = pkg.name ;
413
+ pkgname ;
414
414
version = pkg.version;
415
415
libraries;
416
416
mlds;
417
417
mld_odoc_dir;
418
418
other_docs;
419
- pkgdir;
420
419
})
421
420
acc)
422
421
dirs Util.StringMap. empty
0 commit comments