summary refs log tree commit diff
path: root/blinker.cabal
diff options
context:
space:
mode:
authortzlil <tzlils@protonmail.com>2024-02-26 18:53:34 +0200
committertzlil <tzlils@protonmail.com>2024-02-26 18:53:34 +0200
commitc596dd198c36cd4c9e82cfbc93d0dd003fdc4b4c (patch)
treea9bdb3672c1541399f25b5de0d355cf3218084a4 /blinker.cabal
parent2d3e55c69d8ff08af0bc0363dd70879b8b6dc873 (diff)
add I2C
Diffstat (limited to 'blinker.cabal')
-rw-r--r--blinker.cabal87
1 files changed, 87 insertions, 0 deletions
diff --git a/blinker.cabal b/blinker.cabal
new file mode 100644
index 0000000..35e0781
--- /dev/null
+++ b/blinker.cabal
@@ -0,0 +1,87 @@
+cabal-version:       2.4
+name:                Blinker
+version:             0.1
+license:             BSD-2-Clause
+author:              John Smith <john@example.com>
+maintainer:          John Smith <john@example.com>
+
+common common-options
+  default-extensions:
+    BangPatterns
+    BinaryLiterals
+    ConstraintKinds
+    DataKinds
+    DefaultSignatures
+    DeriveAnyClass
+    DeriveDataTypeable
+    DeriveFoldable
+    DeriveFunctor
+    DeriveGeneric
+    DeriveLift
+    DeriveTraversable
+    DerivingStrategies
+    InstanceSigs
+    KindSignatures
+    LambdaCase
+    NoStarIsType
+    PolyKinds
+    RankNTypes
+    ScopedTypeVariables
+    StandaloneDeriving
+    TupleSections
+    TypeApplications
+    TypeFamilies
+    TypeOperators
+    ViewPatterns
+
+    -- TemplateHaskell is used to support convenience functions such as
+    -- 'listToVecTH' and 'bLit'.
+    TemplateHaskell
+    QuasiQuotes
+
+    -- Prelude isn't imported by default as Clash offers Clash.Prelude
+    NoImplicitPrelude
+  ghc-options:
+    -Wall -Wcompat
+    -haddock
+
+    -- Plugins to support type-level constraint solving on naturals
+    -fplugin GHC.TypeLits.Extra.Solver
+    -fplugin GHC.TypeLits.Normalise
+    -fplugin GHC.TypeLits.KnownNat.Solver
+
+    -- 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
+
+    -- Strict annotations - while sometimes preventing space leaks - trigger
+    -- optimizations Clash can't deal with. See:
+    --
+    --    https://github.com/clash-lang/clash-compiler/issues/2361
+    --
+    -- These flags disables these optimizations. Note that the fields will
+    -- remain strict.
+    -fno-unbox-small-strict-fields
+    -fno-unbox-strict-fields
+  build-depends:
+    base,
+    Cabal,
+    mtl,
+    transformers,
+
+    -- clash-prelude will set suitable version bounds for the plugins
+    clash-prelude >= 1.8.1 && < 1.10,
+    clash-cores,
+    ghc-typelits-natnormalise,
+    ghc-typelits-extra,
+    ghc-typelits-knownnat
+
+library
+  import: common-options
+  hs-source-dirs: src
+  exposed-modules: Blinker
+  default-language: Haskell2010
\ No newline at end of file