Welcome to dune’s documentation!¶
- Overview
- Quickstart
- Building a hello world program
- Building a hello world program using Lwt
- Building a hello world program using Core and Jane Street PPXs
- Defining a library using Lwt and ocaml-re
- Building a hello world program in byte-code
- Setting the OCaml compilation flags globally
- Using cppo
- Defining a library with C stubs
- Defining a library with C stubs using pkg-config
- Using a custom code generator
- Defining tests
- Building a custom toplevel
- Command-line interface
- Stanza reference
- dune-project
- dune
- jbuild_version
- library
- foreign_library
- deprecated_library_name
- executable
- executables
- rule
- ocamllex
- ocamlyacc
- menhir
- cinaps
- documentation
- alias
- install
- copy_files
- include
- tests
- test
- env
- dirs (since 1.6)
- data_only_dirs (since 1.6)
- ignored_subdirs (deprecated in 1.6)
- vendored_dirs (since 1.11)
- include_subdirs
- toplevel
- subdir
- external_variant
- coq.theory
- coq.pp
- coq.extraction
- mdx (since 2.4)
- dune-workspace
- General concepts
- Writing and running tests
- Dealing with foreign libraries
- Generating documentation
- JavaScript compilation
- OPAM integration
- Virtual libraries & variants
- Automatic formatting
- Cross compilation
- Dune libraries
- Other topics
- Lexical conventions
- FAQ
- Why do many dune projects contain a Makefile?
- How to add a configure step to a dune project?
- Can I use topkg with dune?
- How do I publish my packages with dune?
- Where can I find some examples of projects using dune?
- What is Jenga?
- How to make warnings non-fatal?
- How to display the output of commands as they run?
- Known Issues
- Migration
- Caching
- Toplevel integration