File unix-compat.cabal of Package ghc-unix-compat

name:           unix-compat
version:        0.6
x-revision: 1
synopsis:       Portable POSIX-compatibility layer.
description:    This package provides portable implementations of parts
                of the unix package. This package re-exports the unix
                package when available. When it isn't available,
                portable implementations are used.

homepage:       http://github.com/jacobstanley/unix-compat
license:        BSD3
license-file:   LICENSE
author:         Björn Bringert, Duncan Coutts, Jacob Stanley, Bryan O'Sullivan
maintainer:     Jacob Stanley <jacob@stanley.io>
category:       System
build-type:     Simple
cabal-version:  >= 1.10

extra-source-files:
  CHANGELOG.md

source-repository head
  type:     git
  location: git@github.com:jacobstanley/unix-compat.git

flag old-time
  description: build against old-time package
  default: False

Library
  default-language: Haskell2010
  hs-source-dirs: src
  ghc-options: -Wall
  build-depends: base == 4.*

  exposed-modules:
    System.PosixCompat
    System.PosixCompat.Extensions
    System.PosixCompat.Files
    System.PosixCompat.Temp
    System.PosixCompat.Time
    System.PosixCompat.Types
    System.PosixCompat.Unistd
    System.PosixCompat.User

  if os(windows)
    c-sources:
      cbits/HsUname.c
      cbits/mktemp.c

    extra-libraries: msvcrt
    build-depends: Win32 >= 2.5.0.0
    build-depends: filepath >= 1.0 && < 1.5

    if flag(old-time)
      build-depends: old-time >= 1.0.0.0 && < 1.2.0.0
      cpp-options: -DOLD_TIME

      if impl(ghc < 7)
        build-depends: directory == 1.0.*
        cpp-options: -DDIRECTORY_1_0
      else
        build-depends: directory == 1.1.*
    else
      build-depends: time >= 1.0 && < 1.13
      build-depends: directory >= 1.3.1 && < 1.4

    other-modules:
      System.PosixCompat.Internal.Time

  else
    build-depends: unix >= 2.6 && < 2.8
    include-dirs: include
    includes: HsUnixCompat.h
    install-includes: HsUnixCompat.h
    c-sources: cbits/HsUnixCompat.c
    if os(solaris)
      cc-options: -DSOLARIS

Test-Suite unix-compat-testsuite
  default-language: Haskell2010
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
  ghc-options: -Wall
  main-is: main.hs

  other-modules:
     MkstempSpec
     LinksSpec

  -- ghc-options:
  --   -Wall
  --   -fwarn-tabs
  --   -funbox-strict-fields
  --   -threaded
  --   -fno-warn-unused-do-bind
  --   -fno-warn-type-defaults

  -- extensions:
  --   OverloadedStrings
  --   ExtendedDefaultRules

  -- if flag(lifted)
  --    cpp-options: -DLIFTED

  build-depends:
      unix-compat
    , base == 4.*
    , monad-parallel
    , hspec
    , HUnit
    , directory
    , extra
    , temporary

  if os(windows)
    -- c-sources:
    --   cbits/HsUname.c
    --   cbits/mktemp.c

    -- extra-libraries: msvcrt
    -- build-depends: Win32 >= 2.5.0.0

    if flag(old-time)
      build-depends: old-time >= 1.0.0.0 && < 1.2.0.0
      cpp-options: -DOLD_TIME

      if impl(ghc < 7)
        build-depends: directory == 1.0.*
        cpp-options: -DDIRECTORY_1_0
      else
        build-depends: directory == 1.1.*
    else
      build-depends: time >= 1.0 && < 1.13
      build-depends: directory >= 1.3.1 && < 1.4

    -- other-modules:
    --   System.PosixCompat.Internal.Time

  else
    -- build-depends: unix >= 2.4 && < 2.9
    -- include-dirs: include
    -- includes: HsUnixCompat.h
    -- install-includes: HsUnixCompat.h
    -- c-sources: cbits/HsUnixCompat.c
    if os(solaris)
      cc-options: -DSOLARIS

    build-depends: directory >= 1.3.1 && < 1.4
openSUSE Build Service is sponsored by