mirror of
https://github.com/marcosh/crem.git
synced 2024-10-26 11:52:20 +03:00
179 lines
6.2 KiB
YAML
179 lines
6.2 KiB
YAML
name: crem
|
|
version: 0.1.0.0
|
|
author: Marco Perone
|
|
maintainer: marco.perone@tweag.io
|
|
copyright: 2022 Tweag I/O
|
|
license: MIT
|
|
description:
|
|
"`crem` stands for __c__ompositional __r__epresentable __e__xecutable
|
|
__m__achines.
|
|
It allows creating state machines (Mealy machines in fact), compose them to
|
|
build bigger machines out of smaller ones and then run them and draw their
|
|
flow and their state space."
|
|
|
|
when:
|
|
- condition: impl(ghc >= 9.2)
|
|
then:
|
|
# https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/control.html?highlight=ghc2021#extension-GHC2021
|
|
language: GHC2021
|
|
ghc-options:
|
|
# https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wmissing-kind-signatures
|
|
- -Wno-missing-kind-signatures
|
|
else:
|
|
default-extensions:
|
|
- BangPatterns
|
|
- BinaryLiterals
|
|
- ConstrainedClassMethods
|
|
- ConstraintKinds
|
|
- DeriveDataTypeable
|
|
- DeriveFoldable
|
|
- DeriveFunctor
|
|
- DeriveGeneric
|
|
- DeriveLift
|
|
- DeriveTraversable
|
|
- DoAndIfThenElse
|
|
- EmptyCase
|
|
- EmptyDataDecls
|
|
- EmptyDataDeriving
|
|
- ExistentialQuantification
|
|
- ExplicitForAll
|
|
- FlexibleContexts
|
|
- FlexibleInstances
|
|
- ForeignFunctionInterface
|
|
- GADTSyntax
|
|
- GeneralisedNewtypeDeriving
|
|
- HexFloatLiterals
|
|
- ImplicitPrelude
|
|
- ImportQualifiedPost
|
|
- InstanceSigs
|
|
- KindSignatures
|
|
- MonomorphismRestriction
|
|
- MultiParamTypeClasses
|
|
- NamedFieldPuns
|
|
- NamedWildCards
|
|
- NumericUnderscores
|
|
- PatternGuards
|
|
- PolyKinds
|
|
- PostfixOperators
|
|
- RankNTypes
|
|
- RelaxedPolyRec
|
|
- ScopedTypeVariables
|
|
- StandaloneDeriving
|
|
- StandaloneKindSignatures
|
|
- StarIsType
|
|
- TraditionalRecordSyntax
|
|
- TupleSections
|
|
- TypeApplications
|
|
- TypeOperators
|
|
- TypeSynonymInstances
|
|
|
|
default-extensions:
|
|
- DerivingStrategies # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/deriving_strategies.html#extension-DerivingStrategies
|
|
- LambdaCase # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/lambda_case.html#extension-LambdaCase
|
|
- PackageImports # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/package_qualified_imports.html#extension-PackageImports
|
|
|
|
# Options inspired by: https://medium.com/mercury-bank/enable-all-the-warnings-a0517bc081c3
|
|
ghc-options:
|
|
# Enable every warning GHC supports
|
|
- -Weverything # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Weverything
|
|
|
|
# Turn every warning into an error
|
|
- -Werror # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Werror
|
|
|
|
# Turn off the warnings we don't care about.
|
|
- -Wno-safe # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/safe_haskell.html#ghc-flag--Wsafe
|
|
- -Wno-unsafe # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/safe_haskell.html#ghc-flag--Wunsafe
|
|
- -Wno-missing-safe-haskell-mode # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/safe_haskell.html#ghc-flag--Wmissing-safe-haskell-mode
|
|
- -Wno-implicit-prelude # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wimplicit-prelude
|
|
- -Wno-missing-export-lists # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wmissing-export-lists
|
|
- -Wno-missing-home-modules # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wmissing-home-modules
|
|
- -Wno-missing-import-lists # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wmissing-import-lists
|
|
# - -Wno-unused-type-patterns
|
|
- -Wno-all-missed-specialisations # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wall-missed-specialisations
|
|
# - -Wno-orphans
|
|
# TODO: do we still need these?
|
|
# - -fwrite-ide-info
|
|
# - -hiedir=.hie
|
|
|
|
dependencies:
|
|
- base
|
|
|
|
library:
|
|
source-dirs: src
|
|
dependencies:
|
|
- profunctors
|
|
- singletons-base
|
|
- text
|
|
# Disable adding Paths_crem to other-modules, because it does not conform to our style guide.
|
|
# https://github.com/sol/hpack#handling-of-paths_-modules
|
|
when:
|
|
- condition: false
|
|
other-modules: Paths_crem
|
|
|
|
internal-libraries:
|
|
crem-examples:
|
|
source-dirs: examples
|
|
dependencies:
|
|
- crem
|
|
- profunctors
|
|
- singletons-base
|
|
- text
|
|
# Disable adding Paths_crem to other-modules, because it does not conform to our style guide.
|
|
# https://github.com/sol/hpack#handling-of-paths_-modules
|
|
when:
|
|
- condition: false
|
|
other-modules: Paths_crem
|
|
|
|
tests:
|
|
crem-spec:
|
|
main: Spec.hs
|
|
source-dirs: spec
|
|
dependencies:
|
|
- crem
|
|
- crem-examples
|
|
- hspec
|
|
- profunctors
|
|
- singletons-base
|
|
when:
|
|
- condition: false
|
|
other-modules: Paths_crem
|
|
|
|
crem-doctests:
|
|
source-dirs: doctest
|
|
main: Main.hs
|
|
ghc-options:
|
|
- -threaded
|
|
- -Wno-unused-packages
|
|
dependencies:
|
|
- crem
|
|
- doctest-parallel
|
|
when:
|
|
- condition: false
|
|
other-modules: Paths_crem
|
|
|
|
executables:
|
|
hobbit-game:
|
|
source-dirs: hobbit-game
|
|
main: Main.hs
|
|
dependencies:
|
|
- crem
|
|
- crem-examples
|
|
# Disable adding Paths_crem to other-modules, because it does not conform to our style guide.
|
|
# https://github.com/sol/hpack#handling-of-paths_-modules
|
|
when:
|
|
- condition: false
|
|
other-modules: Paths_crem
|
|
|
|
hobbit-map:
|
|
source-dirs: hobbit-map
|
|
main: Main.hs
|
|
dependencies:
|
|
- crem
|
|
- crem-examples
|
|
- text
|
|
# Disable adding Paths_crem to other-modules, because it does not conform to our style guide.
|
|
# https://github.com/sol/hpack#handling-of-paths_-modules
|
|
when:
|
|
- condition: false
|
|
other-modules: Paths_crem
|