7. Cabal file format changelog¶
7.1. Changes in 2.4¶
- Wildcard matching has been expanded. All previous wildcard
expressions are still valid; some will match strictly more files
than before. Specifically:
- Double-star (
**) wildcards are now accepted for recursive matching immediately before the final slash; they must be followed by a filename wildcard (e.g.,
foo/**/bar.htmlare all invalid). As
**was an error in globs before, this does not affect any existing
.cabalfiles that previously worked.
- Wildcards now match when the pattern’s extensions form a suffix of
the candidate file’s extension, rather than requiring strict
equality (e.g., previously
*.htmldid not match
foo.en.html, but now it does).
- Double-star (
- License fields use identifiers from SPDX License List version
cxx-optionsfields added for suppporting bundled foreign routines implemented in C++.
asm-optionsfields added for suppporting bundled foreign routines implemented in assembler.
extra-bundled-librariesfield for specifying additional custom library objects to be installed.
ifcontrol structure with support for
- Changed default rules of
build-typefield to infer “build-type:” for “Simple”/”Custom” automatically.
licensefield syntax changed to require SPDX expression syntax (using SPDX license list version
- Allow redundant leading or trailing commas in package fields (which
require commas) such as
mixinsfields added for supporting Backpack_.
build-tool-dependsfield added for adding build-time dependencies of executable components.
custom-setup:autogen-modulesfield added for declaring modules which are generated at build time.
- Support for new PVP caret-style version operator (
^>=) added to
- Add support for new
- Add support for internal library stanzas.
- New CPP Macro
custom-setup:setup-dependsfield added for specifying dependencies of custom
- CPP Macros
MIN_VERSION_$pkgnameare now also generated for the current package.
- New CPP Macros
extra-framework-dirsfield added for specifying extra locations to find OS X frameworks.
this needs to be researched; there were only few changes between 1.12 and 1.18;