forked from Yehowshua/RiscV-Formal
134 lines
3.1 KiB
Plaintext
134 lines
3.1 KiB
Plaintext
cabal-version: 2.4
|
|
name: rvFormal
|
|
version: 0.1
|
|
license: BSD-2-Clause
|
|
author: John Smith <john@example.com>
|
|
maintainer: John Smith <john@example.com>
|
|
|
|
common common-options
|
|
default-extensions:
|
|
NumericUnderscores
|
|
DeriveDataTypeable
|
|
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
|
|
FlexibleContexts
|
|
MagicHash
|
|
|
|
-- 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
|
|
build-depends:
|
|
base,
|
|
Cabal,
|
|
|
|
-- clash-prelude will set suitable version bounds for the plugins
|
|
clash-prelude >= 1.6.4 && < 1.10,
|
|
ghc-typelits-natnormalise,
|
|
ghc-typelits-extra,
|
|
ghc-typelits-knownnat,
|
|
binary,
|
|
bytestring,
|
|
mtl,
|
|
pretty-show
|
|
|
|
custom-setup
|
|
setup-depends:
|
|
base >= 4.11,
|
|
Cabal >= 2.4,
|
|
cabal-doctest >= 1.0.1 && <1.1
|
|
|
|
library
|
|
import: common-options
|
|
hs-source-dirs: hs
|
|
exposed-modules:
|
|
Simulation
|
|
other-modules:
|
|
Isa.Decode,
|
|
Isa.Forms,
|
|
Peripherals.Ram,
|
|
Peripherals.UartCFFI,
|
|
Peripherals.Setup,
|
|
Peripherals.Teardown,
|
|
Types,
|
|
Machine,
|
|
RegFiles,
|
|
Fetch,
|
|
Util
|
|
c-sources: c/uart_sim_device.c
|
|
include-dirs: c
|
|
default-language: Haskell2010
|
|
|
|
-- Builds the executable 'clash', with rvFormal project in scope
|
|
executable clash
|
|
main-is: bin/Clash.hs
|
|
default-language: Haskell2010
|
|
Build-Depends: base, clash-ghc, rvFormal
|
|
if !os(Windows)
|
|
ghc-options: -dynamic
|
|
|
|
-- Builds the executable 'clashi', with rvFormal project in scope
|
|
executable clashi
|
|
main-is: bin/Clashi.hs
|
|
default-language: Haskell2010
|
|
if !os(Windows)
|
|
ghc-options: -dynamic
|
|
build-depends: base, clash-ghc, rvFormal
|
|
|
|
executable main
|
|
import: common-options
|
|
main-is: bin/Main.hs
|
|
-- hs-source-dirs: hs
|
|
default-language: Haskell2010
|
|
build-depends:
|
|
base,
|
|
clash-ghc,
|
|
rvFormal
|
|
c-sources: c/uart_sim_device.c
|
|
include-dirs: c
|
|
if !os(Windows)
|
|
ghc-options: -dynamic
|