Reference

dune-init(1)

Command group for initializing Dune components.

NAME

dune-init - Command group for initializing Dune components.

SYNOPSIS

dune init project NAME [PATH] [OPTION]...

dune init executable NAME [PATH] [OPTION]...

dune init library NAME [PATH] [OPTION]...

dune init test NAME [PATH] [OPTION]...

dune init start-file [PATH]

DESCRIPTION

dune init COMPONENT NAME [PATH] [OPTION]... initializes a new dune configuration for a component of the kind specified by the subcommand COMPONENT, named NAME, with fields determined by the supplied OPTIONs.

Run a subcommand with --help for for details on it's supported arguments

If the optional PATH is provided, it must be a path to a directory, and the component will be created there. Otherwise, it is created in a child of the current working directory, called NAME. To initialize a component in the current working directory, use `.` as the PATH.

Any prefix of a COMMAND's name can be supplied in place of full name (as illustrated in the synopsis).

For more details, see https://dune.readthedocs.io/en/stable/usage.html#initializing-components

COMMANDS

executable [OPTION]… NAME [PATH]

A binary executable.

library [OPTION]… NAME [PATH]

An OCaml library.

project [OPTION]… NAME [PATH]

A project is a predefined composition of components arranged in a standard directory structure. The kind of project initialized is determined by the value of the --kind flag and defaults to an executable project, composed of a library, an executable, and a test component.

start-file [OPTION]… [PATH]

Write the standard start/dune file.

test [OPTION]… NAME [PATH]

A test harness. (For inline tests, use the --inline-tests flag along with the other component kinds.)

COMMON OPTIONS

--help[=FMT] (default=auto)

Show this help in format FMT. The value FMT must be one of auto, pager, groff or plain. With auto, the format is pager or plain whenever the TERM env var is dumb or undefined.

--version

Show version information.

EXIT STATUS

dune init exits with:

0

on success.

1

if an error happened.

130

if it was interrupted by a signal.

EXAMPLES

1.

Generate a project skeleton for an executable named `myproj' in a new directory named `myproj', depending on the bos library and using inline tests along with ppx_inline_test:

      dune init project myproj --libs bos --ppx ppx_inline_test --inline-tests

2.

Configure an executable component named `myexe' in a dune file in the current directory:

      dune init executable myexe

3.

Configure a library component named `mylib' in a dune file in the ./src directory depending on the core and cmdliner libraries, the ppx_let and ppx_inline_test preprocessors, and declared as using inline tests:

      dune init library mylib src --libs core,cmdliner --ppx ppx_let,ppx_inline_test --inline-tests

4.

Configure a test component named `mytest' in a dune file in the ./test directory that depends on `mylib':

      dune init test mytest test --libs mylib

5.

Write the standard `start/dune` helper file:

      dune init start-file

SEE ALSO

dune(1)

History

--always-show-command-line until Debian 12 (Bookworm); --auto-promote until Debian 12 (Bookworm); --build-info until Debian 12 (Bookworm); --config-file until Debian 12 (Bookworm); --debug-artifact-substitution until Debian 12 (Bookworm); --debug-backtraces until Debian 12 (Bookworm); --debug-dependency-path until Debian 12 (Bookworm); --debug-findlib until Debian 12 (Bookworm); --diff-command until Debian 12 (Bookworm); --display until Debian 12 (Bookworm); --for-release-of-packages until Debian 11 (Bullseye); --force until Debian 12 (Bookworm); --ignore-promoted-rules until Debian 12 (Bookworm); --inline-tests until Debian 12 (Bookworm); --kind until Debian 12 (Bookworm); --libs until Debian 12 (Bookworm); --no-buffer until Debian 12 (Bookworm); --no-config until Debian 12 (Bookworm); --no-print-directory until Debian 12 (Bookworm); --only-packages until Debian 12 (Bookworm); --pkg until Debian 12 (Bookworm); --ppx until Debian 12 (Bookworm); --promote-install-files until Debian 11 (Bullseye); --release until Debian 12 (Bookworm); --root until Debian 12 (Bookworm); --terminal-persistence until Debian 12 (Bookworm); --trace-file until Debian 12 (Bookworm); --verbose until Debian 12 (Bookworm); --watch until Debian 12 (Bookworm); -f until Debian 12 (Bookworm); -j until Debian 12 (Bookworm); -p until Debian 11 (Bullseye); -w until Debian 12 (Bookworm); -x until Debian 12 (Bookworm).