snix/users/Profpatsch/my-tools/my-tools.cabal
Profpatsch b21d538a27 feat(users/Profpatsch/my-tools): init
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
2025-03-15 16:32:01 +00:00

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