packages feed

Z-Botan-0.3.0.0: Z-Botan.cabal

cabal-version:      2.4
name:               Z-Botan
version:            0.3.0.0
synopsis:           Crypto for Haskell
description:        Crypto for Haskell, based on <http://botan.randombit.net/ Botan>
license:            BSD-3-Clause
license-file:       LICENSE
author:             Z.Haskell Contributors
maintainer:         winterland1989@gmail.com
copyright:          (c) Z.Haskell Contributors, 2017-2020
category:           Data
build-type:         Custom
homepage:           https://github.com/ZHaskell/z-botan
bug-reports:        https://github.com/ZHaskell/z-botan/issues
extra-source-files:
  ChangeLog.md
  LICENSE
  README.md
  third_party/botan/configure.py
  third_party/botan/src/**/*.cpp
  third_party/botan/src/**/*.h
  third_party/botan/src/**/*.in
  third_party/botan/src/**/*.txt
  third_party/botan/src/**/*.json
  third_party/botan/doc/**/*.txt
  third_party/botan/doc/**/*.rst
  third_party/botan/build/include/external/cabal.placeholder
  third_party/cacert.md
  third_party/cacert.pem

-- https://curl.se/docs/caextract.html
data-files:         third_party/cacert.pem

custom-setup
  setup-depends:
    , base       >=4.5     && <5.0
    , Cabal      >=2.4.0.0 && <4
    , directory  >=1.2.3.0
    , filepath

source-repository head
  type:     git
  location: git://github.com/haskell-Z/z-botan.git

library
  exposed-modules:
    Z.Botan.Errno
    Z.Botan.Exception
    Z.Botan.FFI
    Z.Crypto.Cipher
    Z.Crypto.FPE
    Z.Crypto.Hash
    Z.Crypto.KDF
    Z.Crypto.KeyWrap
    Z.Crypto.MAC
    Z.Crypto.MPI
    Z.Crypto.OTP
    Z.Crypto.PubKey
    Z.Crypto.PwdHash
    Z.Crypto.RNG
    Z.Crypto.X509
  other-modules:    Paths_Z_Botan
  autogen-modules:  Paths_Z_Botan

  build-depends:
    , base         >=4.12  && <5.0
    , ghc-prim     >=0.5.3
    , integer-gmp  >=1     && <2
    , scientific   ^>=0.3
    , stm          ^>=2.5
    , time         == 1.11.*
    , Z-Data       >=0.8.2 && < 0.9
    , Z-IO         >=0.8 && < 0.9

  include-dirs:
    include third_party/botan third_party/botan/build/include
    third_party/botan/build/include/external

  includes:           hs_botan.h
  install-includes:   hs_botan.h
  c-sources:          cbits/hs_botan.c
  cc-options:         -march=native
  cxx-sources:        third_party/botan/botan_all.cpp

  if os(windows)
    extra-libraries:
      Ws2_32
      crypt32

    cxx-options:
      -std=c++11 -march=native -ffixed-xmm16 -ffixed-xmm17 -ffixed-xmm18
      -ffixed-xmm19 -ffixed-xmm20 -ffixed-xmm21 -ffixed-xmm22
      -ffixed-xmm23 -ffixed-xmm24 -ffixed-xmm25 -ffixed-xmm26
      -ffixed-xmm27 -ffixed-xmm28 -ffixed-xmm29 -ffixed-xmm30
      -ffixed-xmm31

  else
    cxx-options: -std=c++11 -march=native

  if os(osx)
    extra-libraries: c++

  else
    extra-libraries: stdc++

  default-language:   Haskell2010
  default-extensions:
    BangPatterns
    CApiFFI
    CPP
    ConstraintKinds
    DataKinds
    DefaultSignatures
    DeriveAnyClass
    DeriveGeneric
    DerivingStrategies
    ExistentialQuantification
    FlexibleContexts
    FlexibleInstances
    GADTs
    GeneralizedNewtypeDeriving
    KindSignatures
    LambdaCase
    MagicHash
    MultiParamTypeClasses
    MultiWayIf
    OverloadedStrings
    PartialTypeSignatures
    PatternSynonyms
    PolyKinds
    QuantifiedConstraints
    QuasiQuotes
    RankNTypes
    RecordWildCards
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    TemplateHaskell
    TupleSections
    TypeApplications
    TypeFamilies
    TypeFamilyDependencies
    TypeOperators
    UnboxedTuples
    UnliftedFFITypes
    ViewPatterns

  build-tool-depends: hsc2hs:hsc2hs -any, hspec-discover:hspec-discover -any
  ghc-options:        -Wall

test-suite Z-Botan-Test
  type:             exitcode-stdio-1.0
  main-is:          Spec.hs
  hs-source-dirs:   test/
  build-depends:
    , base
    , hspec                 >=2.5.4
    , HUnit
    , QuickCheck            >=2.10
    , quickcheck-instances
    , Z-Botan
    , Z-Data
    , Z-IO

  other-modules:
    Utils
    Z.Crypto.CipherSpec
    Z.Crypto.HashSpec
    Z.Crypto.KDFSpec
    Z.Crypto.KeyWrapSpec
    Z.Crypto.MACSpec
    Z.Crypto.PwdHashSpec

  ghc-options:      -threaded
  default-language: Haskell2010