packages feed

unix-compat-0.2.2: unix-compat.cabal

name:           unix-compat
version:        0.2.2
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/jystic/unix-compat
license:        BSD3
license-file:   LICENSE
author:         Björn Bringert, Duncan Coutts, Jacob Stanley
maintainer:     Jacob Stanley <jacob@stanley.io>
category:       System
build-type:     Simple
cabal-version:  >= 1.6

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

Flag portable
  default: False
  description: Force compiling in portable mode, useful for testing.

Library
  hs-source-dirs: src

  exposed-modules:
    System.PosixCompat
    System.PosixCompat.Extensions
    System.PosixCompat.Files
    System.PosixCompat.Time
    System.PosixCompat.Types
    System.PosixCompat.Unistd
    System.PosixCompat.User
  extensions: CPP
  ghc-options: -Wall
  build-depends: base == 4.*

  if flag(portable) || os(windows)
    build-depends: old-time == 1.0.*
    extensions: GeneralizedNewtypeDeriving

    if impl(ghc < 7)
      build-depends: directory == 1.0.*
      cpp-options: -DDIRECTORY_1_0
    else
      build-depends: directory == 1.1.*

    if os(windows)
      cpp-options: -DMISSING_POSIX_TYPES
      c-sources: cbits/HsUname.c
  else
    build-depends: unix == 2.4.*
    extensions: ForeignFunctionInterface
    cpp-options: -DUNIX_IMPL
    include-dirs: include
    includes: HsUnixCompat.h
    install-includes: HsUnixCompat.h
    c-sources: cbits/HsUnixCompat.c
    if os(solaris)
      cc-options: -DSOLARIS