packages feed

jni-0.7.0: jni.cabal

name:                jni
version:             0.7.0
synopsis:            Complete JNI raw bindings.
description:         Please see README.md.
homepage:            https://github.com/tweag/inline-java/tree/master/jni#readme
license:             BSD3
license-file:        LICENSE
author:              Tweag I/O
maintainer:          m@tweag.io
copyright:           2015-2016 EURL Tweag.
category:            FFI, JVM, Java
build-type:          Simple
cabal-version:       >=1.10
extra-source-files:  README.md

source-repository head
  type: git
  location: https://github.com/tweag/inline-java
  subdir: jni

flag linear-types
  description: Build the linear types interface.
  default: False

library
  hs-source-dirs: src/common
  cc-options: -std=c11
  if os(darwin)
    -- XXX pgmP directive should be redundant. But necessary to workaround
    -- https://github.com/haskell/cabal/issues/4278.
    -- Needed for Foreign.JNI.
    -- XXX we use an auxiliary script here that passes --cpp to cpphs.
    -- Otherwise we hit https://gitlab.haskell.org/ghc/ghc/-/issues/17185
    ghc-options: -pgmP./cpphs-cpp
  extra-libraries: jvm
  exposed-modules:
    Foreign.JNI
    Foreign.JNI.Types
    Foreign.JNI.String
    Foreign.JNI.Internal
    Foreign.JNI.Unsafe
  other-modules:
    Foreign.JNI.NativeMethod
  build-depends:
    base >=4.14 && <5,
    bytestring >=0.10,
    choice >=0.2.0,
    containers >=0.5,
    constraints >=0.8,
    deepseq >=1.4.2,
    inline-c >=0.6
  if flag(linear-types)
    hs-source-dirs: src/linear-types
    build-depends:
      linear-base ==0.1.0.0
    exposed-modules:
      Data.Singletons
      Foreign.JNI.Safe
      Foreign.JNI.Types.Safe
  else
    build-depends:
      singletons >=2.6
  build-tools: cpphs
  default-language: Haskell2010

test-suite spec
  type:
    exitcode-stdio-1.0
  hs-source-dirs: tests
  main-is: Main.hs
  other-modules:
    Foreign.JNISpec
    Spec
  build-depends:
    base,
    hspec,
    jni
  if !flag(linear-types)
    build-depends:
      singletons
  default-language: Haskell2010
  extra-libraries: pthread
  ghc-options: -threaded
  cpp-options: -DHSPEC_DISCOVER=hspec-discover