packages feed

interprocess-0.2.0.0: interprocess.cabal

name:                interprocess
version:             0.2.0.0
synopsis:            Shared memory and control structures for IPC
description:         Provides portable shared memory allocator and some synchronization primitives.
                     Can be used for interprocess communication.
                     Refer to README.md for further information.
homepage:            https://github.com/achirkin/interprocess
license:             BSD3
license-file:        LICENSE
author:              Artem Chirkin
maintainer:          chirkin@arch.ethz.ch
copyright:           (c) 2018 Artem Chirkin
category:            system
build-type:          Simple
cabal-version:       >=1.10
extra-source-files:
    README.md
    cbits/SharedObjectName.c
    include/SharedObjectName.h
    include/SharedPtr.h
    src/Control/Concurrent/Process/StoredMVar.c
    src/Control/Concurrent/Process/QSem.c
    src/Foreign/SharedPtrPosix.c
    src/Foreign/SharedPtrWin32.c

flag examples
    description:
      Build example-test programs
    default: False

flag dev
    description:
      Development build with debugging and with no optimization
    default: False

library
    hs-source-dirs:    src
    exposed-modules:   Foreign.SharedPtr
                       Foreign.SharedObjectName
                       Foreign.SharedObjectName.Internal
                       Foreign.SharedPtr.C
                       Control.Concurrent.Process.QSem
                       Control.Concurrent.Process.StoredMVar
    build-depends:     base >= 4.8 && < 5
    default-language:  Haskell2010
    ghc-options:       -Wall
    include-dirs:      include
    c-sources:         cbits/SharedObjectName.c
                       src/Control/Concurrent/Process/StoredMVar.c
                       src/Control/Concurrent/Process/QSem.c
                       src/Foreign/SharedPtr.c
    if os(windows)
      c-sources:       src/Foreign/SharedPtrWin32.c
    else
      c-sources:       src/Foreign/SharedPtrPosix.c
    if flag(dev)
        ghc-options:   -O0
    else
        cpp-options:   -DNDEBUG
        cc-options:    -DNDEBUG
        ghc-options:   -O2


executable concurrent-malloc
    if !flag(examples)
      buildable:         False
    hs-source-dirs:      examples
    main-is:             concurrent-malloc.hs
    default-language:    Haskell2010
    build-depends:       base
                       , typed-process >= 0.2
                       , interprocess
    ghc-options:         -threaded -Wall

executable wait-qsem
    if !flag(examples)
      buildable:         False
    hs-source-dirs:      examples
    main-is:             wait-qsem.hs
    default-language:    Haskell2010
    build-depends:       base
                       , typed-process >= 0.2
                       , interprocess
    ghc-options:         -threaded -Wall

executable wait-mvar
    if !flag(examples)
      buildable:         False
    hs-source-dirs:      examples
    main-is:             wait-mvar.hs
    default-language:    Haskell2010
    build-depends:       base
                       , typed-process >= 0.2
                       , interprocess
    ghc-options:         -threaded -Wall

test-suite StoredMVar
    type:                exitcode-stdio-1.0
    main-is:             StoredMVar.hs
    default-language:    Haskell2010
    hs-source-dirs:      test
    build-depends:       base
                       , typed-process >= 0.2
                       , interprocess
    ghc-options:         -threaded -Wall