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::cmdliner
library to any desired targets insrc/*/CMakeLists.txt
:target_link_libraries(YourPackage_YourLibraryName # ... existing libraries, if any ... Findlib::cmdliner)
Click your IDE's
Build
button
Not using DkSDK?
FIRST, do one or all of the following:
Run:
opam install cmdliner.1.1.1+dune
Edit your
dune-project
and add:(package (name YourExistingPackage) (depends ; ... existing dependenices ... (cmdliner (>= 1.1.1+dune))))
Then run:
dune build *.opam # if this fails, run: dune build
Edit your
<package>.opam
file 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))
type
block`` = ``[
| ```
S ``of
string
| ```
P ``of
string
| ```
Pre ``of
string
| ```
I ``of
string * string
| ```
Noblank ``
| ```
Blocks ``of
block
list
]
val
escape : ``string
->
string
escape s
escapes s
from the doc language.
type
title`` = string * int * string * string * string
type
xref`` = ``[
| ```
Main ``
| ```
Cmd ``of
string
| ```
Tool ``of
string
| ```
Page ``of
string * int
]
Standard section names
val
s_name : string
val
s_synopsis : string
val
s_description : string
val
s_commands : string
val
s_arguments : string
val
s_options : string
val
s_common_options : string
val
s_exit_status : string
val
s_environment : string
val
s_files : string
val
s_bugs : string
val
s_examples : string
val
s_see_also : string
val
s_none : string
Section maps
Used for handling the merging of metadata doc strings.
type
smap
val
smap_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
val
s_exit_status_intro :
block
val
s_environment_intro :
block
Output
type
format`` = ``[
| ```
Auto ``
| ```
Pager ``
| ```
Plain ``
| ```
Groff ``]
val
print : ``?errs:
Stdlib.Format.formatter
->
``?subst:``(``string
->
``string option``)``
->
format
->
Stdlib.Format.formatter
->
t
->
unit
\Printers and escapes used by Cmdliner module
val
subst_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.
val
doc_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.