-
Notifications
You must be signed in to change notification settings - Fork 3
/
clash-systolic.cabal
144 lines (116 loc) · 3.13 KB
/
clash-systolic.cabal
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
cabal-version: 2.4
name: clash-systolic
version: 0.1.0
license: BSD-3-Clause
author: Alex McKenna <alex@qbaylogic.com>
maintainer: alex@qbaylogic.com
build-type: Simple
common common-options
default-language: Haskell2010
default-extensions:
BangPatterns
ConstraintKinds
DataKinds
DeriveFoldable
DeriveFunctor
DeriveGeneric
DeriveTraversable
DerivingStrategies
FlexibleContexts
FlexibleInstances
GADTs
LambdaCase
NoImplicitPrelude
NumericUnderscores
ScopedTypeVariables
StandaloneDeriving
TypeApplications
TypeFamilyDependencies
TypeOperators
ghc-options:
-Wall
-Wcompat
-Werror
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wredundant-constraints
-- Plugins to support type-level constraint solving on naturals
-fplugin=GHC.TypeLits.Extra.Solver
-fplugin=GHC.TypeLits.KnownNat.Solver
-fplugin=GHC.TypeLits.Normalise
-- Clash needs access to the source code in compiled modules
-fexpose-all-unfoldings
-- Worker wrappers introduce unstable names for functions that might have
-- blackboxes attached for them. You can disable this, but be sure to add
-- a no-specialize pragma to every function with a blackbox.
-fno-worker-wrapper
if impl(ghc >= 8.2)
ghc-options:
-fhide-source-paths
if impl(ghc >= 8.4)
ghc-options:
-Wmissing-export-lists
-Wpartial-fields
if impl(ghc >= 8.6)
default-extensions:
NoStarIsType
build-depends:
base >= 4.13 && < 5,
clash-prelude >= 1.2 && < 1.8,
ghc-typelits-extra >= 0.4.3 && < 0.5,
ghc-typelits-knownnat >= 0.7.6 && < 0.8,
ghc-typelits-natnormalise >= 0.7.6 && < 0.8,
library
import: common-options
hs-source-dirs: src
exposed-modules:
Clash.Systolic
Clash.Systolic.Cell
Clash.Systolic.Network
Clash.Systolic.Network.Pipeline
Clash.Systolic.Network.Rectangle
test-suite doctests
import: common-options
hs-source-dirs: tests
type: exitcode-stdio-1.0
main-is: Doctests.hs
if impl(ghc >= 8.4)
ghc-options:
-- Build_doctests has no explicit export list
-Wno-missing-export-lists
x-doctest-options:
-fplugin=GHC.TypeLits.Extra.Solver
-fplugin=GHC.TypeLits.KnownNat.Solver
-fplugin=GHC.TypeLits.Normalise
build-depends:
doctest-parallel >= 0.2 && < 0.3,
filepath,
clash-systolic,
test-suite test-library
import: common-options
hs-source-dirs: tests
type: exitcode-stdio-1.0
main-is: TestLibrary.hs
build-depends:
hedgehog,
tasty,
tasty-hedgehog,
clash-systolic,
-- Builds the executable 'clash' with the project in scope
executable clash
default-language: Haskell2010
main-is: bin/Clash.hs
build-Depends:
base >= 4.13 && < 5,
clash-ghc >= 1.2 && < 1.8,
clash-systolic,
-- Builds the executable 'clashi' with the project in scope
executable clashi
default-language: Haskell2010
main-is: bin/Clashi.hs
if !os(Windows)
ghc-options: -dynamic
build-depends:
base >= 4.13 && < 5,
clash-ghc >= 1.2 && < 1.8,
clash-systolic,