forked from cau-placc/haskell-src-transformation
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhaskell-src-transformations.cabal
More file actions
160 lines (145 loc) · 6.3 KB
/
Copy pathhaskell-src-transformations.cabal
File metadata and controls
160 lines (145 loc) · 6.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
cabal-version: 2.4
-- Package name, version and description.
name: haskell-src-transformations
version: 0.2.0.0
category: Language
-- synopsis: TODO A short (one-line) description of the package.
-- description:
-- TODO A longer description of the package.
-- Copyright information.
license: BSD-3-Clause
license-file: LICENSE
copyright: (c) 2019, Kiel University
author: Malte Clement <stu204333@mail.uni-kiel.de>
, Jan Christiansen <jan.christiansen@hs-flensburg.de>
maintainer: jan.christiansen@hs-flensburg.de
-- Build configuration.
build-type: Simple
-- A flag that controls whether the Polysemy plugin should be enabled or not.
-- The plugin is disabled by the `./tool/make-docs.sh` script since Haddock
-- does not support plugins.
flag PolysemyPluginEnabled {
Description: Enable polysemy plugin
Default: True
Manual: False
}
-- Common settings and dependencies that are used by all stanzas below.
common deps
build-depends: base >= 4.12 && < 4.13
, containers >= 0.6 && < 0.7
, composition >= 1.0 && < 1.1
, directory >= 1.3 && < 1.4
, extra >= 1.7 && < 1.8
, ghc-lib-parser >= 8.10 && < 8.11
, ghc-lib-parser-ex >= 8.10.0.15 && < 8.10.0.17
, haskell-src-exts >= 1.23 && < 1.24
, mtl >= 2.2 && < 2.3
, ordered-containers >= 0.2.2 && < 0.3
, polysemy >= 1.3 && < 1.4
, polysemy-plugin >= 0.2.5 && < 0.2.6
-- Base language which the package is written in.
--
-- Polysemy needs a lot of language extensions. The language extensions
-- which are required in every computation that uses Polysemy effects
-- are enabled by default. Language extensions such as `TemplateHaskell`
-- which are needed for the definition of custom effects only are enabled
-- for individual files and are listed as `other-extensions`.
default-language: Haskell2010
default-extensions: DataKinds
, FlexibleContexts
, GADTs
, PolyKinds
, TypeOperators
other-extensions: BlockArguments
, FlexibleContexts
, LambdaCase
, RankNTypes
, ScopedTypeVariables
, StandaloneDeriving
, TemplateHaskell
, TupleSections
, TypeApplications
, TypeFamilies
ghc-options: -Wall
-- The Polysemy plugin is currently not supported by Haddock. Thus, the
-- plugin needs to be disabled when building the documentation. The
-- resulting type errors have to be ignored.
if flag(PolysemyPluginEnabled)
ghc-options: -fplugin=Polysemy.Plugin
else
ghc-options: -fdefer-type-errors
-fno-warn-deferred-type-errors
-- Build configuration for the actual `haskell-src-transformations` library.
library
import: deps
hs-source-dirs: src/lib
exposed-modules: HST.Application
, HST.CoreAlgorithm
, HST.Effect.Cancel
, HST.Effect.Env
, HST.Effect.Fresh
, HST.Effect.GetOpt
, HST.Effect.InputFile
, HST.Effect.InputModule
, HST.Effect.Report
, HST.Effect.WithFrontend
, HST.Environment
, HST.Environment.LookupOrReport
, HST.Environment.Prelude
, HST.Feature.CaseCompletion
, HST.Feature.GuardElimination
, HST.Feature.Optimization
, HST.Frontend.GHC.Config
, HST.Frontend.GHC.From
, HST.Frontend.GHC.To
, HST.Frontend.GHC.Util.AnyMatch
, HST.Frontend.HSE.Config
, HST.Frontend.HSE.From
, HST.Frontend.HSE.To
, HST.Frontend.Parser
, HST.Frontend.PrettyPrinter
, HST.Frontend.Syntax
, HST.Frontend.Transformer
, HST.Frontend.Transformer.Messages
, HST.Options
, HST.Util.FreeVars
, HST.Util.Messages
, HST.Util.PatternMatching
, HST.Util.Predicates
, HST.Util.PrettyName
, HST.Util.Selectors
, HST.Util.Subst
-- Build configuration for the command line interface.
executable haskell-src-transformations
import: deps
-- The @Main@ module is currently the only module of the command
-- line interface.
main-is: Main.hs
hs-source-dirs: src/exe
build-depends: filepath >= 1.4 && < 1.5
, haskell-src-transformations
-- Build configuration for the unit tests of the library.
test-suite haskell-src-transformations-unit-tests
import: deps
type: exitcode-stdio-1.0
hs-source-dirs: src/test
main-is: Spec.hs
ghc-options: -main-is Spec
other-modules: HST.ApplicationTests
, HST.CoreAlgorithmTests
, HST.Effect.CancelTests
, HST.Effect.FreshTests
, HST.Effect.ReportTests
, HST.Effect.SetExpectation
, HST.EnvironmentTests
, HST.Test.Expectation
, HST.Test.Parser
, HST.Test.Runner
, HST.Util.FreeVarsTests
, HST.Util.MessagesTests
, HST.Util.SelectorsTests
, HST.Util.SubstTests
build-depends: haskell-src-transformations
, HUnit >= 1.6 && < 1.7
, hspec >= 2.7 && < 2.8
, QuickCheck >= 2.14 && < 2.15