packages feed

ipldm-1.0.0.0: ipldm.cabal

cabal-version:   3.0
version:         1.0.0.0
name:            ipldm
build-type:      Simple
author:          Zoey McBride
maintainer:      zoeymcbride@mailbox.org
license:         AGPL-3.0-or-later
license-file:    LICENSE.txt
extra-doc-files: README.md, CHANGELOG.md
category:        Network
synopsis:        The InterPlanetary Linked Data Model and codec formats.
description:
    Provides the IPLD data model in an abstract form with the different IPLD
    data kinds. Also codecs for decoding these kinds from serialized formats
    such as DAG-CBOR, and encoding the abstract data model back into binary
    formats.
tested-with:
    GHC == 9.6.7

source-repository head {
    type: git
    location: https://git.sr.ht/~z0/ipldm
}


common HaskellConfig {
    hs-source-dirs: ipld dagcbor
    default-language: GHC2021
    default-extensions: StrictData PatternSynonyms
}

common Depends {
    build-depends:
        base >= 4.18 && < 5,
        xcodec ^>= 1.1,
        basesystems ^>= 1.2,
        mfmts ^>= 1.2,
        array ^>= 0.5,
        bytestring ^>= 0.12,
        containers ^>= 0.7,
        text ^>= 2.1,
        parallel ^>= 3.3,
        deepseq ^>= 1.4
}

common BuildUser {
    import: Depends
    ghc-options: -Wall -Wextra -Wno-unused-top-binds -threaded
}

common BuildCI {
    import: Depends
    ghc-options: -Wall -Wextra -Werror -Wno-unused-top-binds -threaded
}

flag CI {
    Description: CI Build options
    Default: False
    Manual: True
}

library {
    import: HaskellConfig
    if flag(CI) { import: BuildCI }
    else { import: BuildUser }
    exposed-modules:
        -- * Provides sum-type for different data model kinds
        IPLD.DM
        -- * Type-class of IPLD data model encoders
        IPLD.DM.Encoder
        -- * Type-class of IPLD data model decoders
        IPLD.DM.Decoder
        -- * NOTE: changing file
        IPLD.DagCBOR
        -- * Implements DM.Decoder for DAG-CBOR
        IPLD.DagCBOR.Decoder
        IPLD.DagCBOR.Decoder.Errors
        IPLD.DagCBOR.Decoder.Arguments
        IPLD.DagCBOR.Decoder.Objects
        IPLD.DagCBOR.Decoder.MajorTypes
        IPLD.DagCBOR.Decoder.Supplemental
        -- * Implements DM.Encoder for DAG-CBOR
        IPLD.DagCBOR.Encoder
        IPLD.DagCBOR.Encoder.Arguments
        IPLD.DagCBOR.Encoder.Errors
        IPLD.DagCBOR.Encoder.Strings
        IPLD.DagCBOR.Encoder.Floats
        IPLD.DagCBOR.Encoder.Ints
        IPLD.DagCBOR.Encoder.CID
        IPLD.DagCBOR.Encoder.SimpleTypes
}