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.3.tbz
sha256=11db13cbb29a6cd453f4f9d8138076624c2a55d78729ad6319cbab0239686ba5
sha512=d8410e8ba6327cfacd400423328f661b30bb6faa8d89340c6873563c0a03d62cdcf07cf2d52f1008818026804b0dfc2e108cd95e4c5a3127d06f260a3f9eaa3b

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.