Cabal Syntax Quicklinks
cabal.project fields | ||
Specifying the local packages | ||
packages | Project packages. | |
optional-packages | Optional project packages. | |
extra-packages | Adds external packages as local | |
Taking a dependency from a source code repository | ||
type | ||
location | ||
branch | ||
tag | ||
subdir | ||
post-checkout-command | ||
Global configuration options | ||
verbose | Build verbosity level. | |
jobs | Number of builds running in parallel. | |
semaphore | Use GHC's support for semaphore based parallelism. | |
keep-going | Try to continue building on failure. | |
package-dbs (since version: 3.7) | PackageDB stack manipulation | |
Solver configuration options | ||
constraints | Extra dependencies constraints. | |
preferences | Preferred dependency versions. | |
allow-newer | Lift dependencies upper bound constraints. | |
allow-older (since version: 2.0) | Lift dependency lower bound constraints. | |
index-state (since version: 2.0) | Use source package index state as it existed at a previous time. | |
active-repositories | ||
reject-unconstrained-dependencies | Restrict the solver to packages that have constraints on them. | |
Package configuration options | ||
package | ||
flags | Enable or disable package flags. | |
with-compiler | Path to compiler executable. | |
with-hc-pkg | Path to package tool. | |
optimization | Build with optimization. | |
configure-options | Options to pass to configure script. | |
compiler | Compiler to build with. | |
tests | Build tests. | |
benchmarks | Build benchmarks. | |
extra-prog-path (since version: 1.18) | Add directories to program search path. | |
run-tests | Run package test suite during installation. | |
Object code options | ||
debug-info (since version: 1.22) | Build with debug info enabled. | |
split-sections (since version: 2.2) | Use GHC's split sections feature. | |
split-objs | Use GHC's split objects feature. | |
executable-stripping | Strip installed programs. | |
library-stripping (since version: 1.20) | Strip installed libraries. | |
Executable options | ||
program-prefix | Prepend prefix to program names. | |
program-suffix | Append refix to program names. | |
Dynamic linking options | ||
shared | Build shared library. | |
executable-dynamic | Link executables dynamically. | |
library-for-ghci | Build libraries suitable for use with GHCi. | |
relocatable (since version: 1.22) | Build relocatable package. | |
Static linking options | ||
static | Build static library. | |
executable-static | Build fully static executables. | |
Foreign function interface options | ||
extra-include-dirs | Adds C header search path. | |
extra-lib-dirs | Adds library search directory. | |
extra-framework-dirs | Adds framework search directory (OS X only). | |
Profiling options | ||
profiling (since version: 1.22) | Enable profiling builds. | |
profiling-detail (since version: 1.24) | Profiling detail level. | |
library-profiling-detail (since version: 1.24) | Libraries profiling detail level. | |
library-vanilla | Build libraries without profiling. | |
library-profiling (since version: 1.22) | Build libraries with profiling enabled. | |
executable-profiling (since version: 1.22) | Build executables with profiling enabled. | |
Coverage options | ||
coverage (since version: 1.22) | Build with coverage enabled. | |
library-coverage (deprecated) | ||
Haddock options | ||
documentation | Enable building of documentation. | |
doc-index-file | Path to haddock templates. | |
haddock-hoogle | Generate Hoogle file. | |
haddock-html | Build HTML documentation. | |
haddock-quickjump | Generate Quickjump file. | |
haddock-html-location | Location of HTML documentation for prerequisite packages. | |
haddock-executables | Generate documentation for executables. | |
haddock-tests | Generate documentation for tests. | |
haddock-benchmarks | Generate documentation for benchmarks. | |
haddock-internal | Generate documentation for internal modules | |
haddock-all | Generate documentation for everything | |
haddock-css | Location of Haddock CSS file. | |
haddock-hyperlink-source | Generate hyperlinked source code for documentation | |
haddock-hscolour-css | Location of CSS file for HsColour | |
haddock-contents-location | URL for contents page. | |
haddock-keep-temp-files | Keep temporary Haddock files. | |
haddock-output-dir | Generate haddock documentation into this directory. | |
haddock-use-unicode | Pass --use-unicode option to haddock. | |
haddock-resources-dir | Location of Haddock's static/auxiliary files. | |
open | Open generated documentation in-browser. | |
Program options | ||
program-options | ||
Advanced global configuration options | ||
write-ghc-environment-files | Whether a ``.ghc.environment`` should be created after a successful build. | |
build-info | Whether build information for each individual component should be written in a machine readable format. | |
http-transport | Transport to use with http(s) requests. | |
ignore-expiry | Ignore Hackage expiration dates. | |
remote-repo-cache | Location of packages cache. | |
logs-dir | Directory to store build logs. | |
build-summary | Build summaries location. | |
Advanced solver options | ||
solver | Which solver to use. | |
max-backjumps | Maximum number of solver backjumps. | |
reorder-goals | Allow solver to reorder goals. | |
count-conflicts | Solver prefers versions with less conflicts. | |
fine-grained-conflicts | Skip a version of a package if it does not resolve any conflicts encountered in the last version (solver optimization). | |
minimize-conflict-set | Try to improve the solver error message when there is no solution. | |
strong-flags | Do not defer flag choices when solving. | |
allow-boot-library-installs | Allow cabal to install or upgrade any package. | |
cabal-lib-version | Version of Cabal library used to build package. | |
prefer-oldest (since version: 3.10) | Prefer the oldest versions of packages available. | |
cabal project flags | ||
Global configuration options | ||
-v[n] | Build verbosity level. | |
-j[NUM] | Number of builds running in parallel. | |
--semaphore | Use GHC's support for semaphore based parallelism. | |
--no-semaphore | Use GHC's support for semaphore based parallelism. | |
--keep-going | Try to continue building on failure. | |
--package-db (since version: 3.7) | PackageDB stack manipulation | |
Solver configuration options | ||
-c | Extra dependencies constraints. | |
--constraint | Extra dependencies constraints. | |
--preference | Preferred dependency versions. | |
--allow-newer | Lift dependencies upper bound constraints. | |
--allow-older (since version: 2.0) | Lift dependency lower bound constraints. | |
--reject-unconstrained-dependencies | Restrict the solver to packages that have constraints on them. | |
Package configuration options | ||
package | ||
-f | Enable or disable package flags. | |
--flags | Enable or disable package flags. | |
-w | Path to compiler executable. | |
--with-hc-pkg | Path to package tool. | |
-O[n] | Build with optimization. | |
--disable-optimization | Build with optimization. | |
--configure-option | Options to pass to configure script. | |
--compiler | Compiler to build with. | |
--enable-tests | Build tests. | |
--disable-tests | Build tests. | |
--enable-benchmarks | Build benchmarks. | |
--disable-benchmarks | Build benchmarks. | |
--extra-prog-path (since version: 1.18) | Add directories to program search path. | |
--run-tests | Run package test suite during installation. | |
Object code options | ||
--enable-debug-info[ (since version: 1.22) | Build with debug info enabled. | |
--disable-debug-info (since version: 1.22) | Build with debug info enabled. | |
--enable-split-sections (since version: 2.2) | Use GHC's split sections feature. | |
--disable-split-sections (since version: 2.2) | Use GHC's split sections feature. | |
--enable-split-objs | Use GHC's split objects feature. | |
--disable-split-objs | Use GHC's split objects feature. | |
--enable-executable-stripping | Strip installed programs. | |
--disable-executable-stripping | Strip installed programs. | |
--enable-library-stripping (since version: 1.20) | Strip installed libraries. | |
--disable-library-stripping (since version: 1.20) | Strip installed libraries. | |
Executable options | ||
--program-prefix | Prepend prefix to program names. | |
--program-suffix | Append refix to program names. | |
Dynamic linking options | ||
--enable-shared | Build shared library. | |
--disable-shared | Build shared library. | |
--enable-executable-dynamic | Link executables dynamically. | |
--disable-executable-dynamic | Link executables dynamically. | |
--enable-library-for-ghci | Build libraries suitable for use with GHCi. | |
--disable-library-for-ghci | Build libraries suitable for use with GHCi. | |
--relocatable (since version: 1.22) | Build relocatable package. | |
Static linking options | ||
--enable-static | Build static library. | |
--disable-static | Build static library. | |
--enable-executable-static | Build fully static executables. | |
--disable-executable-static | Build fully static executables. | |
Foreign function interface options | ||
--extra-include-dirs | Adds C header search path. | |
--extra-lib-dirs | Adds library search directory. | |
--extra-framework-dirs | Adds framework search directory (OS X only). | |
Profiling options | ||
--enable-profiling (since version: 1.22) | Enable profiling builds. | |
--disable-profiling (since version: 1.22) | Enable profiling builds. | |
--profiling-detail (since version: 1.24) | Profiling detail level. | |
--library-profiling-detail (since version: 1.24) | Libraries profiling detail level. | |
--enable-library-vanilla | Build libraries without profiling. | |
--disable-library-vanilla | Build libraries without profiling. | |
--enable-library-profiling (since version: 1.22) | Build libraries with profiling enabled. | |
--disable-library-profiling (since version: 1.22) | Build libraries with profiling enabled. | |
--enable-executable-profiling (since version: 1.22) | Build executables with profiling enabled. | |
--disable-executable-profiling (since version: 1.22) | Build executables with profiling enabled. | |
Coverage options | ||
--enable-coverage (since version: 1.22) | Build with coverage enabled. | |
--disable-coverage (since version: 1.22) | Build with coverage enabled. | |
--enable-library-coverage (deprecated) | ||
--disable-library-coverage (deprecated) | ||
Haddock options | ||
--enable-documentation | Enable building of documentation. | |
--disable-documentation | Enable building of documentation. | |
--doc-index-file | Path to haddock templates. | |
--haddock-hoogle | Generate Hoogle file. | |
--haddock-html | Build HTML documentation. | |
--haddock-quickjump | Generate Quickjump file. | |
--haddock-html-location | Location of HTML documentation for prerequisite packages. | |
--haddock-executables | Generate documentation for executables. | |
--haddock-tests | Generate documentation for tests. | |
--haddock-benchmarks | Generate documentation for benchmarks. | |
--haddock-internal | Generate documentation for internal modules | |
--haddock-all | Generate documentation for everything | |
--haddock-css | Location of Haddock CSS file. | |
--haddock-hyperlink-source | Generate hyperlinked source code for documentation | |
--haddock-hscolour-css | Location of CSS file for HsColour | |
--haddock-contents-location | URL for contents page. | |
--haddock-output-dir | Generate haddock documentation into this directory. | |
--haddock-use-unicode | Pass --use-unicode option to haddock. | |
--haddock-resources-dir | Location of Haddock's static/auxiliary files. | |
--open | Open generated documentation in-browser. | |
Program options | ||
program-options | ||
Advanced global configuration options | ||
--write-ghc-environment-files | Whether a ``.ghc.environment`` should be created after a successful build. | |
--enable-build-info | Whether build information for each individual component should be written in a machine readable format. | |
--disable-build-info | Whether build information for each individual component should be written in a machine readable format. | |
--http-transport | Transport to use with http(s) requests. | |
--ignore-expiry | Ignore Hackage expiration dates. | |
--remote-repo-cache | Location of packages cache. | |
--logs-dir | Directory to store build logs. | |
--build-summary | Build summaries location. | |
Advanced solver options | ||
--solver | Which solver to use. | |
--max-backjumps | Maximum number of solver backjumps. | |
--reorder-goals | Allow solver to reorder goals. | |
--no-reorder-goals | Allow solver to reorder goals. | |
--count-conflicts | Solver prefers versions with less conflicts. | |
--no-count-conflicts | Solver prefers versions with less conflicts. | |
--fine-grained-conflicts | Skip a version of a package if it does not resolve any conflicts encountered in the last version (solver optimization). | |
--no-fine-grained-conflicts | Skip a version of a package if it does not resolve any conflicts encountered in the last version (solver optimization). | |
--minimize-conflict-set | Try to improve the solver error message when there is no solution. | |
--no-minimize-conflict-set | Try to improve the solver error message when there is no solution. | |
--strong-flags | Do not defer flag choices when solving. | |
--no-strong-flags | Do not defer flag choices when solving. | |
--allow-boot-library-installs | Allow cabal to install or upgrade any package. | |
--no-allow-boot-library-installs | Allow cabal to install or upgrade any package. | |
--cabal-lib-version | Version of Cabal library used to build package. | |
--prefer-oldest (since version: 3.10) | Prefer the oldest versions of packages available. | |
--no-prefer-oldest (since version: 3.10) | Prefer the oldest versions of packages available. | |
package.cabal fields | ||
Package properties | ||
name | ||
version | ||
cabal-version | ||
build-type | ||
license | ||
license-file | ||
license-files (since version: 1.20) | ||
copyright | ||
author | ||
maintainer | ||
stability | ||
homepage | ||
bug-reports | ||
package-url | ||
synopsis | ||
description | ||
category | ||
tested-with | ||
data-files | ||
data-dir | ||
extra-source-files | ||
extra-doc-files (since version: 1.18) | ||
extra-tmp-files | ||
extra-files | ||
Library | ||
library | Library build information. | |
visibility | ||
exposed-modules | ||
virtual-modules (since version: 2.2) | ||
exposed | ||
reexported-modules (since version: 1.22) | ||
signatures (since version: 2.0) | ||
Executables | ||
executable | Executable build info section. | |
main-is | ||
scope (since version: 2.0) | ||
Test suites | ||
test-suite | Test suite build information. | |
type | ||
main-is | Module containing tests main function. | |
test-module | ||
code-generators | ||
Benchmarks | ||
benchmark (since version: 1.9.2) | Benchmark build information. | |
type | ||
main-is | ||
Build information | ||
build-depends | ||
other-modules | ||
hs-source-dir (removed in: 3.0; deprecated since: 2.0) | ||
hs-source-dirs | ||
default-extensions (since version: 1.12) | ||
other-extensions (since version: 1.12) | ||
default-language (since version: 1.12) | ||
other-languages (since version: 1.12) | ||
extensions (removed in: 3.0; deprecated since: 1.12) | ||
build-tool-depends (since version: 2.0) | ||
build-tools (removed in: 3.0; deprecated since: 2.0) | ||
buildable | ||
ghc-options | ||
ghc-prof-options | ||
ghc-shared-options | ||
ghc-prof-shared-options | ||
ghcjs-options | ||
ghcjs-prof-options | ||
ghcjs-shared-options | ||
ghcjs-prof-shared-options | ||
includes (deprecated since: 2.0) | ||
install-includes | ||
include-dirs | ||
c-sources | ||
cxx-sources (since version: 2.2) | ||
asm-sources (since version: 3.0) | ||
cmm-sources (since version: 3.0) | ||
js-sources | ||
extra-libraries | ||
extra-libraries-static | ||
extra-ghci-libraries | ||
extra-bundled-libraries (since version: 2.2) | ||
extra-lib-dirs | ||
extra-lib-dirs-static | ||
extra-library-flavours | ||
extra-dynamic-library-flavours | ||
cc-options | ||
cpp-options | ||
cxx-options (since version: 2.2) | ||
cmm-options (since version: 3.0) | ||
asm-options (since version: 3.0) | ||
ld-options | ||
hsc2hs-options (since version: 3.6) | ||
pkgconfig-depends | ||
frameworks | ||
extra-framework-dirs (since version: 1.24) | ||
mixins (since version: 2.0) | ||
Foreign libraries | ||
foreign-library (since version: 2.0) | Foreign library build information. | |
type | ||
options | ||
mod-def-file | ||
lib-version-info | ||
lib-version-linux | ||
Configuration Flags | ||
flag | Flag declaration. | |
description | ||
default | ||
manual | ||
Common stanzas | ||
common (since version: 2.2) | Common build info section | |
import | ||
Source code repository marker | ||
source-repository (since version: 1.6) | ||
type | ||
location | ||
module | ||
branch | ||
tag | ||
subdir | ||
Custom setup scripts | ||
custom-setup (since version: 1.24) | Build information for ``Custom`` and ``Hooks`` build types | |
setup-depends (since version: 1.24) | ||
Autogenerated modules and includes | ||
autogen-modules (since version: 2.0) | ||
autogen-includes (since version: 3.0) |