packages feed

mcl-1.0.0: mcl.cabal

name:                mcl
version:             1.0.0
synopsis:            Bindings to mcl, a generic and fast pairing-based cryptography library
description:         Base library: https://github.com/herumi/mcl
license:             BSD3
license-file:        LICENSE
author:              Andrzej Rybczak
maintainer:          andrzej@well-typed.com
copyright:           2017 IOHK
category:            Crypto, Math

build-type:          Custom
cabal-version:       >=1.10
custom-setup
  setup-depends:     base < 5,
                     Cabal

source-repository head
  type:              git
  location:          https://github.com/arybczak/haskell-mcl

library
  exposed-modules:     MCL.Curves.Fp254BNb
                       MCL.Curves.Fp254BNb.Fp
                       MCL.Curves.Fp254BNb.Fp2
                       MCL.Curves.Fp254BNb.Fp12
                       MCL.Curves.Fp254BNb.Fr
                       MCL.Curves.Fp254BNb.G1
                       MCL.Curves.Fp254BNb.G2
                       MCL.Curves.Fp254BNb.GT
                       MCL.Curves.Fp254BNb.Pairing
                       MCL.Internal.Field
                       MCL.Internal.Group
                       MCL.Internal.Prim
                       MCL.Internal.Prim.Class
                       MCL.Internal.Prim.Pinned
                       MCL.Internal.Prim.Unpinned
                       MCL.Internal.Utils

  build-depends:       base < 5,
                       binary,
                       bytestring,
                       deepseq,
                       ghc-prim,
                       groups,
                       integer-gmp,
                       primitive

  hs-source-dirs:      src

  ghc-options:         -Wall
  if impl(ghc >= 8)
    ghc-options:       -Wredundant-constraints

  default-language:    Haskell2010

  cc-options:          -std=c++11 -Wall -Wextra

  c-sources:           cbits/mcl_fp254bnb.cpp

  extra-libraries:     crypto gmpxx mcl stdc++

Benchmark bench
  build-depends:       mcl,
                       base < 5,
                       binary,
                       bytestring,
                       criterion,
                       deepseq,
                       groups

  ghc-options:         -Wall -threaded -rtsopts
  if impl(ghc >= 8)
    ghc-options:       -Wredundant-constraints

  type:                exitcode-stdio-1.0
  main-is:             Main.hs

  hs-source-dirs:      benchmark
  default-language:    Haskell2010

test-suite tests
  build-depends:       mcl,
                       QuickCheck,
                       base < 5,
                       binary,
                       groups,
                       test-framework,
                       test-framework-quickcheck2

  ghc-options:         -Wall -threaded -rtsopts
  if impl(ghc >= 8)
    ghc-options:       -Wredundant-constraints


  type:                exitcode-stdio-1.0
  main-is:             Main.hs

  hs-source-dirs:      test
  default-language:    Haskell2010