basesystems-1.0.0.1: basesystems.cabal
cabal-version: 3.0
version: 1.0.0.1
name: basesystems
build-type: Simple
author: Zoey McBride
maintainer: zoeymcbride@mailbox.org
license: BSD-3-Clause
license-file: LICENSE.txt
category: Numeric, Data, Serialization
synopsis: Implements encoders/decoders for basesystems
description:
This package implements encoder and decoder methods for numeric basesystems
and provides definitions for common basesystems like base16, base58btc,
base64, and more.
extra-doc-files:
README.md
CHANGE_LOG.md
source-repository head {
type: git
location: https://git.sr.ht/~z0/basesystems
}
-- | Sets flag for CI build toggle
flag CI {
Description: CI Build options
Default: False
Manual: True
}
-- | Sets flag for developer build toggle
flag Dev {
Description: Developer build options
Default: False
Manual: True
}
-- | These dependency versions are known to be compatable with mfmts
common Depends {
build-depends:
base >= 4.18 && < 5,
array ^>= 0.5,
bytestring ^>= 0.11,
containers ^>= 0.6,
text ^>= 2.0
}
-- | DefaultBuild: strict compilation + optimize for executable speed
common DefaultBuild {
import: Depends
ghc-options: -Wall -Wextra -Wno-unused-top-binds
}
-- | CIBuild: strict compilation + optimize for compile time
common CIBuild {
import: Depends
ghc-options: -Wall -Wextra -Werror -Wno-unused-top-binds
}
-- | Configures the Dev flag
common DevBuild {
import: Depends
ghc-options: -Wall -Wextra -Wno-unused-top-binds
}
-- | Configures basesystems
library {
default-extensions: StrictData
default-language: GHC2021
if flag(Dev) {
import: DevBuild
}
elif flag(CI) {
import: CIBuild
}
else {
import: DefaultBuild
}
exposed-modules:
-- * Defines basesystem interface
Data.BaseSystem,
-- * Defines basesystem implmentors
Data.BaseSystems,
-- * Defines alphabet interface
Data.BaseSystem.Alphabet,
-- * Defines alphabet implmentors
Data.BaseSystem.Alphabets,
-- * Provides common types and functions
Data.BaseSystem.Internal,
hs-source-dirs:
basesystems
}