Background
I'm trying to expose two dune
libraries from the same directory - one for some interfaces, and the other for their implementations.
For example, let's say I have the following sources:
foo_api.ml
module type Foo = sig
val foo: string
end
foo.ml
module FooImpl: Foo =
let foo = "foo"
end
In my dune
file, I want to expose these as separate libraries - an API and an implementation. I'd really like to be able to use globs here to specify the modules, as I'm planning on using this pattern for other modules, eg. Bar.ml
and Bar_api.ml
.
Question
Does dune
support some way of globbing (or regex'ing) for modules?
(library
(name foo_lib_api)
(modules (glob_files "./*_api.ml")))
(library
(name foo_lib_implementation)
(modules (:standard \ (glob_files "./*_api.ml"))))
The above syntax does not work, and I haven't found anything that does work. Perhaps I'm trying to use dune
like I would use bazel
, which would let me use glob
or filegroup
.