It’s kitchen-sink time! Change-Id: Ieb4f9e642920c3e0619475095e19005bcaf558bc Reviewed-on: https://cl.tvl.fyi/c/depot/+/13265 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
85 lines
2 KiB
Text
85 lines
2 KiB
Text
cabal-version: 3.0
|
|
name: my-tools
|
|
version: 0.0.1.0
|
|
author: Profpatsch
|
|
maintainer: mail@profpatsch.de
|
|
|
|
common common-options
|
|
ghc-options:
|
|
-Wall
|
|
-Wno-type-defaults
|
|
-Wunused-packages
|
|
-Wredundant-constraints
|
|
-fwarn-missing-deriving-strategies
|
|
|
|
-- See https://downloads.haskell.org/ghc/latest/docs/users_guide/exts.html
|
|
-- for a description of all these extensions
|
|
default-extensions:
|
|
-- Infer Applicative instead of Monad where possible
|
|
ApplicativeDo
|
|
|
|
-- Allow literal strings to be Text
|
|
OverloadedStrings
|
|
|
|
-- Syntactic sugar improvements
|
|
LambdaCase
|
|
MultiWayIf
|
|
|
|
-- Makes the (deprecated) usage of * instead of Data.Kind.Type an error
|
|
NoStarIsType
|
|
|
|
-- Convenient and crucial to deal with ambiguous field names, commonly
|
|
-- known as RecordDotSyntax
|
|
OverloadedRecordDot
|
|
|
|
-- Make #labels available
|
|
OverloadedLabels
|
|
|
|
-- does not export record fields as functions, use OverloadedRecordDot to access instead
|
|
NoFieldSelectors
|
|
|
|
-- Allow the same record field name to be declared twice per module.
|
|
-- This works, because we use `OverloadedRecordDot` everywhere (enforced by `NoFieldSelectors`).
|
|
DuplicateRecordFields
|
|
|
|
-- Record punning
|
|
RecordWildCards
|
|
|
|
-- Improved Deriving
|
|
DerivingStrategies
|
|
DerivingVia
|
|
|
|
-- Type-level strings
|
|
DataKinds
|
|
|
|
-- to enable the `type` keyword in import lists (ormolu uses this automatically)
|
|
ExplicitNamespaces
|
|
|
|
-- allows defining pattern synonyms, but also the `import Foo (pattern FooPattern)` import syntax
|
|
PatternSynonyms
|
|
default-language: GHC2021
|
|
|
|
|
|
library
|
|
import: common-options
|
|
hs-source-dirs: src
|
|
exposed-modules:
|
|
MyTools
|
|
|
|
build-depends:
|
|
base >=4.15 && <5
|
|
, my-prelude
|
|
, filepath
|
|
, directory
|
|
, process
|
|
, optparse-simple
|
|
, optparse-applicative
|
|
|
|
|
|
executable copy
|
|
import: common-options
|
|
hs-source-dirs: exe
|
|
build-depends:
|
|
base,
|
|
my-tools
|
|
main-is: Copy.hs
|