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

src.tar.gz
md5=e15cffe625e826450bdc86593ef15e7a
sha512=bfb8ef843c3954fcc6fc70d4576c2a599bfb88d94bbed5887d38d8fb20b86f656c19acb3fa73c49c443376423166527a019900cfcee574f7fede54b04c82a491

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.