packages feed

interprocess-0.1.0.0: interprocess.cabal

name:                interprocess
version:             0.1.0.0
synopsis:            Shared memory and control structures for IPC
description:         Provides portable shared memory allocator and semaphores.
                     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/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
    build-depends:     base >= 4.7 && < 5
    default-language:  Haskell2010
    ghc-options:       -Wall
    include-dirs:      include
    c-sources:         cbits/SharedObjectName.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)
        cpp-options:   -DSTDOUT_SYSCALL_DEBUG
        ghc-options:   -O0
    else
        cpp-options:   -DNDEBUG
        ghc-options:   -O2


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

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