cabal-install-3.14.2.0: The command-line interface for Cabal and Hackage.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Distribution.Client.DistDirLayout

Description

The layout of the ./dist/ directory where cabal keeps all of its state and build artifacts.

Synopsis

DistDirLayout

data DistDirLayout Source #

The layout of the project state directory. Traditionally this has been called the dist directory.

Constructors

DistDirLayout 

Fields

data DistDirParams Source #

Information which can be used to construct the path to the build directory of a build. This is LESS fine-grained than what goes into the hashed InstalledPackageId, and for good reason: we don't want this path to change if the user, say, adds a dependency to their project.

defaultDistDirLayout Source #

Arguments

:: ProjectRoot

the project root

-> Maybe FilePath

the dist directory (relative to package root)

-> Maybe FilePath

the documentation directory

-> DistDirLayout 

Make the default DistDirLayout based on the project root dir and optional overrides for the location of the dist directory, the cabal.project file and the documentation directory.

ProjectRoot

data ProjectRoot Source #

Information about the root directory of the project.

It can either be an implicit project root in the current dir if no cabal.project file is found, or an explicit root if either the file is found or the project root directory was specified.

Constructors

ProjectRootImplicit FilePath

An implicit project root. It contains the absolute project root dir.

ProjectRootExplicit FilePath FilePath

An explicit project root. It contains the absolute project root dir and the relative cabal.project file (or explicit override)

ProjectRootExplicitAbsolute FilePath FilePath

An explicit, absolute project root dir and an explicit, absolute cabal.project file.

Instances

Instances details
Show ProjectRoot Source # 
Instance details

Defined in Distribution.Client.DistDirLayout

Eq ProjectRoot Source # 
Instance details

Defined in Distribution.Client.DistDirLayout

StoreDirLayout

CabalDirLayout

data CabalDirLayout Source #

The layout of the user-wide cabal directory, that is the ~/.cabal dir on unix, and equivalents on other systems.

At the moment this is just a partial specification, but the idea is eventually to cover it all.

mkCabalDirLayout Source #

Arguments

:: Maybe FilePath

Store directory. Must be absolute

-> Maybe FilePath

Log directory

-> IO CabalDirLayout