packages feed

bindings-portaudio-0.2: bindings-portaudio.cabal

name:         bindings-portaudio
version:      0.2
category:     Sound

author:       Fumiaki Kinoshita <fumiexcel@gmail.com>
maintainer:   Fumiaki Kinoshita <fumiexcel@gmail.com>

license:      BSD3
license-file: LICENSE

synopsis:     Low-level bindings to portaudio library
description:
cabal-version: >= 1.10
build-type:    Simple

extra-source-files:
  portaudio/include/*.h
  portaudio/src/common/*.c
  portaudio/src/common/*.h
  portaudio/src/hostapi/wmme/*.c
  portaudio/src/hostapi/wdmks/*.c
  portaudio/src/hostapi/wasapi/*.c
  portaudio/src/hostapi/wasapi/mingw-include/*.h
  portaudio/src/os/win/*.c
  portaudio/src/os/win/*.h
  extra.c
  LICENSE
  README.md
  example/*.hs
  example/example-portaudio.cabal
  example/LICENSE

--------------------------------------------------------------------------------

flag WASAPI
  default: False

flag DirectSound
  default: False

flag WMME
  default: False

flag WDMKS
  default: False

flag Bundle
  default: False
  description: Use bundled C sources. It is unstable due to the GHC bug.

library
  default-language: Haskell2010

  ghc-options: -Wall -O2
  if impl(ghc >= 6.8)
    ghc-options: -fwarn-tabs

  exposed-modules:
    Bindings.PortAudio
    System.PortAudio

  build-tools:
    hsc2hs

  build-depends:
    base          < 5, bindings-DSL == 1.0.*, vector

  cc-options: -g

  if os(linux) || os(freebsd) || os(darwin) || !flag(Bundle)
    pkgconfig-depends: portaudio-2.0

  if os(mingw32) && flag(Bundle)
    include-dirs:
      portaudio/src/os/win
      portaudio/include
      portaudio/src/common
    c-sources:
      portaudio/src/os/win/pa_win_coinitialize.c
      portaudio/src/os/win/pa_win_hostapis.c
      portaudio/src/os/win/pa_win_util.c
      portaudio/src/os/win/pa_win_waveformat.c
      portaudio/src/os/win/pa_win_wdmks_utils.c
      portaudio/src/common/pa_allocation.c
      portaudio/src/common/pa_converters.c
      portaudio/src/common/pa_cpuload.c
      portaudio/src/common/pa_debugprint.c
      portaudio/src/common/pa_dither.c
      portaudio/src/common/pa_front.c
      portaudio/src/common/pa_process.c
      portaudio/src/common/pa_ringbuffer.c
      portaudio/src/common/pa_stream.c
      portaudio/src/common/pa_trace.c
      -- portaudio/src/os/win/pa_x86_plain_converters.c
    extra-libraries: winmm ole32
    cc-options: -mthreads
      -DHAVE_INTTYPES_H=1
      -DHAVE_MEMORY_H=1
      -DHAVE_STDINT_H=1
      -DHAVE_STDLIB_H=1
      -DHAVE_STRING_H=1
      -DHAVE_STRINGS_H=1
      -DHAVE_SYS_STAT_H=1
      -DHAVE_SYS_TYPES_H=1
      -DHAVE_UNISTD_H=1
      -DPA_LITTLE_ENDIAN
      -DSIZEOF_INT=4
      -DSIZEOF_LONG=4
      -DSIZEOF_SHORT=2
      -DSTDC_HEADERS=1

    if flag(WASAPI)
      include-dirs:
        portaudio/src/hostapi/wasapi/mingw-include
      c-sources:
        portaudio/src/hostapi/wasapi/pa_win_wasapi.c
      cc-options: -DPA_USE_WASAPI=1

    if flag(DirectSound)
      include-dirs:
        portaudio/src/hostapi/dsound
      c-sources:
        portaudio/src/hostapi/dsound/pa_win_ds.c
        portaudio/src/hostapi/dsound/pa_win_ds_dynlink.c
      cc-options: -DPA_USE_DS=1

    if flag(WMME)
      c-sources:
        portaudio/src/hostapi/wmme/pa_win_wmme.c
        extra.c
      cc-options: -DPA_USE_WMME=1

    if flag(WDMKS)
      c-sources:
        portaudio/src/hostapi/wdmks/pa_win_wdmks.c
      cc-options: -DPA_USE_WDMKS=1
      extra-libraries: Setupapi

source-repository head
  type:     git
  location: https://github.com/fumieval/bindings-portaudio.git