packages feed

jsaddle-0.2.0.6: jsaddle.cabal

name: jsaddle
version: 0.2.0.6
cabal-version: >=1.10
license: MIT
license-file: LICENSE
maintainer: Hamish Mackenzie <Hamish.K.Mackenzie@googlemail.com>
synopsis: High level interface for webkit-javascriptcore
description: This package provides an EDSL for calling JavaScript code using
             the JavaScriptCore engine and low level Haskell bindings
             in the webkit-javascriptcore library <https://github.com/ghcjs/webkit-javascriptcore>.
author: Hamish Mackenzie
data-dir: ""
category: Web, Javascript
build-type: Simple

Source-Repository head
  type:         git
  location:     https://github.com/ghcjs/jsaddle

flag ghcjs
    description: Tell cabal we are using ghcjs (work around until hackage supports impl(ghcjs))
    default: True

flag gtk3
    Description: Use GTK3 rather than GTK2
    Default: True

flag jsffi
    description: Use JavaScriptFFI extension for GHCJS JavaScript output
    default: True

flag webkit
    description: Use WebKitGtk and JavaScriptCore for GHCJS output
    default: False

library
    -- Make sure ghcjs gets turned off if ghcjs-base is not avaialbe
    if flag(ghcjs)
        build-depends: ghcjs-base

--    if impl(ghcjs) && flag(jsffi)
    if flag(ghcjs) && flag(jsffi)
        cpp-options: -DUSE_JAVASCRIPTFFI
        build-depends: ghcjs-base

--    if !impl(ghcjs) || flag(webkit)
    if !flag(ghcjs) || flag(webkit)
        cpp-options: -DUSE_WEBKIT
        if flag(gtk3)
            build-depends: webkitgtk3 >=0.13.0.0 && <0.14,
                           webkitgtk3-javascriptcore >=0.13.0.0 && <0.14
        else
            build-depends: webkit >=0.13.0.0 && <0.14,
                           webkit-javascriptcore >=0.13.0.0 && <0.14

    build-depends: template-haskell -any, base <5, lens >=3.8.5 && <4.13,
                   text >=0.11.2.3 && <1.3, transformers >=0.3.0.0 && <0.5

    exposed-modules: Language.Javascript.JSaddle
                     Language.Javascript.JSaddle.Arguments Language.Javascript.JSaddle.Classes
                     Language.Javascript.JSaddle.Evaluate Language.Javascript.JSaddle.Exception
                     Language.Javascript.JSaddle.Monad
                     Language.Javascript.JSaddle.Object Language.Javascript.JSaddle.Properties
                     Language.Javascript.JSaddle.String Language.Javascript.JSaddle.Value
                     Language.Javascript.JSaddle.Types
    exposed: True
    buildable: True
    default-language: Haskell2010
    hs-source-dirs: src
    other-modules: Language.Javascript.JSaddle.PropRef

test-suite test-tool
    if flag(jsffi)
        buildable: False

--    if impl(ghcjs) && flag(jsffi)
    if flag(ghcjs) && flag(jsffi)
        cpp-options: -DUSE_JAVASCRIPTFFI
        build-depends: ghcjs-base

--    if !impl(ghcjs) || flag(webkit)
    if !flag(ghcjs) || flag(webkit)
        cpp-options: -DUSE_WEBKIT
        build-depends: glib
        if flag(gtk3)
            build-depends: gtk3, webkitgtk3, webkitgtk3-javascriptcore
        else
            build-depends: gtk, webkit, webkit-javascriptcore

    build-depends: template-haskell, base, lens, text,
                   transformers, hslogger, jsaddle
    type: exitcode-stdio-1.0
    main-is: TestJSaddle.hs
    default-language: Haskell2010
    hs-source-dirs: tests