package dkml-dune-dsl-show

  1. Overview
  2. Docs
An interpreter for the embedded DSL of Dune that shows the DSL as a real Dune file

Install

Dune Dependency

Authors

Maintainers

Sources

dkml-dune-dsl-0.1.1.tbz
sha256=a7fe720d17809079b5430f382497f0c138159dc67e94d74bbeab35a4094344ed
sha512=a43b94f0b4708f0a40942ff23c850a466501abbd39ca1bc2ddf0743be2d8c4793ccf2d8a2b64a326752c4f425b62abc51f51af29fa3ba5b2e2f44b31c1ef483f

doc/index.html

dkml-dune-dsl-show index

Library dkml-dune-dsl-show

The entry point of this library is the module: DkmlDuneDslShow.

You use this library by:

  1. applying the DkmlDuneDslShow.I interpreter module to your Dune DSL expression
  2. converting the last step into an executable
  3. run the executable, capturing its results into a "dune.inc" include file
  4. running the "dune.inc" as part of your Dune build

All of that is represented by the following Dune snippet:

(rule
 (target dune_inc.ml)
 (action
  (with-stdout-to
   %{target}
   (echo
    ; YOU: Change "My_dune" to the name of your Dune DSL expression module
    "module M = My_dune.Build (DkmlDuneDslShow.I)
     let () = print_string @@ DkmlDuneDslShow.plain_hum M.res"))))

(executable
 (name dune_inc)
 ; YOU: Change "my_dune" to the name of your Dune DSL file
 (modules dune_inc my_dune)
 (libraries dkml-dune-dsl-show))

(rule
 (alias gendune)
 (action
  (progn
   (with-stdout-to
    dune.gen.inc
    (run ./dune_inc.exe %{dep:dune-parameters.json}))
   (diff? dune.inc dune.gen.inc))))

(include dune.inc)

You will need to change "my_dune" and the corresponding name of the module ("My_dune") in the above snippet.

OCaml

Innovation. Community. Security.