cabal-version: 3.4
name: fedi
version: 0.1.0.0
license: MPL-2.0
license-file: LICENSE
author: campxfire
maintainer: me@campxfire.space
category: Web
build-type: Simple
extra-doc-files: readme.md
-- extra-source-files:

common warnings
  ghc-options: -Wall -fno-warn-type-defaults

library
  import: warnings
  exposed-modules:
    Fedi
    Fedi.Requests
    Fedi.Helpers
    Fedi.Types
    Fedi.Types.Helpers
    Fedi.UserDetails
    Fedi.Webfinger
    Fedi.Crypto
    Fedi.Signature.Types
    Fedi.Signature.Check
    Fedi.Signature.Sign

    Fedi.Routes
    Fedi.Routes.Helpers
    Fedi.Routes.User
    Fedi.Routes.Inbox
    Fedi.Routes.Outbox
    Fedi.Routes.Notes
    Fedi.Routes.Follow
  -- other-modules:
  -- other-extensions:
  build-depends:
      aeson
    , base
    , bytestring
    , cmark-gfm
    , unordered-containers
    , containers
    , directory
    , filepath
    , htoml-megaparsec
    , process
    , text >= 2.0.1
    , twain
    , mime-types
    , time
    , wai
    , exceptions
    , req
    , modern-uri
    , base64
    , memory
    , crypton
    , crypton-x509
    , cryptostore
    , raw-strings-qq
    , case-insensitive
    , http-types

  hs-source-dirs: src
  default-language: GHC2021
  default-extensions:
    BlockArguments
    LambdaCase
    OverloadedRecordDot
    OverloadedStrings
    QuasiQuotes
    DerivingVia
    GeneralizedNewtypeDeriving
    DeriveAnyClass
    DerivingStrategies
    DuplicateRecordFields
    NoFieldSelectors

executable fedi
  import: warnings
  main-is: Main.hs
  other-modules:
    DB
    Html
    Css
    Routes
  -- other-extensions:
  build-depends:
      aeson
    , async
    , base
    , fedi
    , wai-extra
    , warp
    , twain
    , text
    , sqlite-easy
    , raw-strings-qq
    , securemem
    , lucid2

  hs-source-dirs: app
  default-language: GHC2021
  default-extensions:
    BlockArguments
    LambdaCase
    OverloadedRecordDot
    OverloadedStrings
    QuasiQuotes
    ViewPatterns
    DuplicateRecordFields
    NoFieldSelectors
  ghc-options: -Wall -O -threaded -rtsopts -with-rtsopts=-N