packages feed

cfuture-2.0: cfuture.cabal

cabal-version:      3.0
name:               cfuture
version:            2.0
synopsis: A Future type that is interruptible anytime and exportable to C/C++.
description:
   A module similar to the "future" package of Chris Kuklewicz,
   but having a Future that is interruptible anytime,
   and easy to represent and handle
   in C/C++.

   It uses two threads,
   the first of which kills the calculation
   if triggered by filling an MVar,
   and the second of which calculating the result
   and writing it into another MVar.
   However, the library can be used
   without manipulating the MVars directly.

license:            BSD-3-Clause
license-file:       LICENSE
author:             Viktor Csimma
maintainer:         csimmaviktor03@gmail.com
category:           Concurrency
build-type:         Simple
extra-doc-files:    CHANGELOG.md
common warnings
    ghc-options: -Wall
source-repository head
  type:     git
  location: https://github.com/viktorcsimma/cfuture.git

library
    import:           warnings
    exposed-modules:  Control.Concurrent.CFuture
    build-depends:    base >=4.17.2 && < 5,
                      base-prelude >= 1.4 && < 1.7
    default-language: Haskell2010
    hs-source-dirs:   src
    c-sources:        csrc/CFuture.c
    include-dirs:     include
    install-includes: CFuture.h


foreign-library cfuture
    type:             native-shared

    other-modules:    Control.Concurrent.CFuture
    build-depends:    base >=4.17.2 && < 5,
                      base-prelude >= 1.4 && < 1.7,
                      cfuture >= 2.0 && < 3

    hs-source-dirs:   src
    c-sources:        csrc/CFuture.c
    include-dirs:     include
    install-includes: CFuture.h

    default-language: Haskell2010
    include-dirs:     include
    install-includes: CFuture.h


test-suite cfuture-test
    import:           warnings
    default-language: Haskell2010
    other-modules:    OurTasks, HsTestCase
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test
    main-is:          main.c
    build-depends:    base, base-prelude, cfuture