Module Cmdliner_manpage
Contents
Instructions: Use this module in your project
In the IDE (CLion, Visual Studio Code, Xcode, etc.) you use for your DkSDK project:
Add the following to your project's
dependencies/CMakeLists.txt:DkSDKProject_DeclareAvailable(cmdliner CONSTRAINT "= 1.1.1+dune" FINDLIBS cmdliner) DkSDKProject_MakeAvailable(cmdliner)Add the
Findlib::cmdlinerlibrary to any desired targets insrc/*/CMakeLists.txt:target_link_libraries(YourPackage_YourLibraryName # ... existing libraries, if any ... Findlib::cmdliner)Click your IDE's
Buildbutton
Not using DkSDK?
FIRST, do one or all of the following:
Run:
opam install cmdliner.1.1.1+duneEdit your
dune-projectand add:(package (name YourExistingPackage) (depends ; ... existing dependenices ... (cmdliner (>= 1.1.1+dune))))Then run:
dune build *.opam # if this fails, run: dune buildEdit your
<package>.opamfile and add:depends: [ # ... existing dependencies ... "cmdliner" {>= "1.1.1+dune"} ]Then run:
opam install . --deps-only
FINALLY, add the cmdliner library to any desired (library)and/or (executable) targets in your **/dune files:
(library
(name YourLibrary)
; ... existing library options ...
(libraries
; ... existing libraries ...
cmdliner))
(executable
(name YourExecutable)
; ... existing executable options ...
(libraries
; ... existing libraries ...
cmdliner))typeblock`` = ``[
| ```S ``ofstring
| ```P ``ofstring
| ```Pre ``ofstring
| ```I ``ofstring * string
| ```Noblank ``
| ```Blocks ``ofblocklist]
valescape : ``string->string
escape s escapes s from the doc language.
typetitle`` = string * int * string * string * string
typexref`` = ``[
| ```Main ``
| ```Cmd ``ofstring
| ```Tool ``ofstring
| ```Page ``ofstring * int]
Standard section names
vals_name : string
vals_synopsis : string
vals_description : string
vals_commands : string
vals_arguments : string
vals_options : string
vals_common_options : string
vals_exit_status : string
vals_environment : string
vals_files : string
vals_bugs : string
vals_examples : string
vals_see_also : string
vals_none : string
Section maps
Used for handling the merging of metadata doc strings.
typesmap
valsmap_has_section :smap->``sec:string->bool
smap_append_block smap sec b appends b at the end of section sec
creating it at the right place if needed.
Content boilerplate
vals_exit_status_intro :block
vals_environment_intro :block
Output
typeformat`` = ``[
| ```Auto ``
| ```Pager ``
| ```Plain ``
| ```Groff ``]
valprint : ``?errs:Stdlib.Format.formatter->``?subst:``(``string->``string option``)``->format->Stdlib.Format.formatter->t->unit
\Printers and escapes used by Cmdliner module
valsubst_vars : ``errs:Stdlib.Format.formatter->``subst:``(``string->``string option``)``->Stdlib.Buffer.t->``string->string
subst b ~subst s, using b, substitutes in s variables of the form
"$(doc)" by their subst definition. This leaves escapes and markup
directives $(markup,…) intact.
-
raises Invalid_argument
in case of illegal syntax.
valdoc_to_plain : ``errs:Stdlib.Format.formatter->``subst:``(``string->``string option``)``->Stdlib.Buffer.t->``string->string
doc_to_plain b ~subst s using b, subsitutes in s variables by
their subst definition and renders cmdliner directives to plain text.
-
raises Invalid_argument
in case of illegal syntax.
