1-----------------------------------------------------------------------------
2-- |
3-- Module      :  Distribution.PackageDescription
4-- Copyright   :  Isaac Jones 2003-2005
5-- License     :  BSD3
6--
7-- Maintainer  :  cabal-devel@haskell.org
8-- Portability :  portable
9--
10-- Backwards compatibility reexport of everything you need to know
11-- about @.cabal@ files.
12
13module Distribution.PackageDescription (
14        -- * Package descriptions
15        PackageDescription(..),
16        emptyPackageDescription,
17        specVersion,
18        buildType,
19        license,
20        BuildType(..),
21        knownBuildTypes,
22        allLibraries,
23
24        -- ** Renaming (syntactic)
25        ModuleRenaming(..),
26        defaultRenaming,
27
28        -- ** Libraries
29        Library(..),
30        ModuleReexport(..),
31        emptyLibrary,
32        withLib,
33        hasPublicLib,
34        hasLibs,
35        explicitLibModules,
36        libModulesAutogen,
37
38        -- ** Executables
39        Executable(..),
40        emptyExecutable,
41        withExe,
42        hasExes,
43        exeModules,
44        exeModulesAutogen,
45
46        -- * Tests
47        TestSuite(..),
48        TestSuiteInterface(..),
49        TestType(..),
50        testType,
51        knownTestTypes,
52        emptyTestSuite,
53        hasTests,
54        withTest,
55        testModules,
56        testModulesAutogen,
57
58        -- * Benchmarks
59        Benchmark(..),
60        BenchmarkInterface(..),
61        BenchmarkType(..),
62        benchmarkType,
63        knownBenchmarkTypes,
64        emptyBenchmark,
65        hasBenchmarks,
66        withBenchmark,
67        benchmarkModules,
68        benchmarkModulesAutogen,
69
70        -- * Build information
71        BuildInfo(..),
72        emptyBuildInfo,
73        allBuildInfo,
74        allLanguages,
75        allExtensions,
76        usedExtensions,
77        usesTemplateHaskellOrQQ,
78        hcOptions,
79        hcProfOptions,
80        hcSharedOptions,
81        hcStaticOptions,
82
83        -- ** Supplementary build information
84        allBuildDepends,
85        enabledBuildDepends,
86        ComponentName(..),
87        LibraryName(..),
88        defaultLibName,
89        HookedBuildInfo,
90        emptyHookedBuildInfo,
91        updatePackageDescription,
92
93        -- * package configuration
94        GenericPackageDescription(..),
95        Flag(..), emptyFlag,
96        FlagName, mkFlagName, unFlagName,
97        FlagAssignment, mkFlagAssignment, unFlagAssignment,
98        nullFlagAssignment, showFlagValue,
99        diffFlagAssignment, lookupFlagAssignment, insertFlagAssignment,
100        dispFlagAssignment, parsecFlagAssignment,
101        findDuplicateFlagAssignments,
102        CondTree(..), ConfVar(..), Condition(..),
103        cNot, cAnd, cOr,
104
105        -- * Source repositories
106        SourceRepo(..),
107        RepoKind(..),
108        RepoType(..),
109        knownRepoTypes,
110        emptySourceRepo,
111
112        -- * Custom setup build information
113        SetupBuildInfo(..),
114  ) where
115
116import Prelude ()
117--import Distribution.Compat.Prelude
118
119import Distribution.Types.Library
120import Distribution.Types.TestSuite
121import Distribution.Types.Executable
122import Distribution.Types.Benchmark
123import Distribution.Types.TestType
124import Distribution.Types.TestSuiteInterface
125import Distribution.Types.BenchmarkType
126import Distribution.Types.BenchmarkInterface
127import Distribution.Types.ModuleRenaming
128import Distribution.Types.ModuleReexport
129import Distribution.Types.BuildInfo
130import Distribution.Types.SetupBuildInfo
131import Distribution.Types.BuildType
132import Distribution.Types.GenericPackageDescription
133import Distribution.Types.CondTree
134import Distribution.Types.Condition
135import Distribution.Types.PackageDescription
136import Distribution.Types.ComponentName
137import Distribution.Types.LibraryName
138import Distribution.Types.HookedBuildInfo
139import Distribution.Types.SourceRepo
140