RiscV-Formal/rv_formal.cabal

134 lines
3.1 KiB
Plaintext
Raw Permalink Normal View History

2025-02-13 04:54:15 +00:00
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:
2025-02-19 06:21:02 +00:00
Isa.Decode,
Isa.Forms,
2025-02-13 04:54:15 +00:00
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