packages feed

fltkhs-0.7.0.0: fltkhs.cabal

name : fltkhs
version : 0.7.0.0
synopsis : FLTK bindings
description: Low level bindings for the FLTK GUI toolkit. For installation and quick start instruction please scroll all the way down to the README.
license : MIT
license-file : LICENSE
tested-with: GHC >=7.8.1
author : Aditya Siram
maintainer: aditya.siram@gmail.com
homepage: http://github.com/deech/fltkhs
bug-reports: https://github.com/deech/fltkhs/issues
copyright: © 2017 Aditya Siram All Rights Reserved
category: UI,Graphics,GUI,User Interfaces

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

build-type: Custom
cabal-version: >=2.0
  -- for custom-setup

source-repository head
  type: git
  location: http://github.com/deech/fltkhs

----------------------------------------
-- by default,
--
-- * no OpenGL support
-- * the system `fltk` package is used (not the bundled tarball)
--

Flag bundled
   Description: Use the bundled FLTK library.
   Manual:  True
   Default: False

Flag demos
   Description: Build the demo apps (`fltkhs-buttons` and `fltkhs-example-opengl`).
   Manual:  True
   Default: True

Flag opengl
   Description: Enable OpenGL support.
   Manual:  True
   Default: False

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

custom-setup
  setup-depends:
    Cabal >= 2.2.0.0 && < 3,
    filepath,
    directory >= 1.2.3.0,
    base >= 4.5 && < 4.13

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

library

     build-tools: c2hs
     if !os(darwin) && !os(windows)
       build-tools: pkg-config
  --
  -- extra-libraries: jpeg
  --     -- from the `libjpeg` system package
  --
  -- if !flag(bundled)
  --    -- when `bundled`, we don't need a system `fltk`, since we build it ourself
  --    extra-libraries: fltk
  --    build-tools: fltk-config
  --       -- the `fltk` system package provides the `fltk-config` executable
  --
  -- if flag(opengl)
  --    extra-libraries: GL, GLU
  --        -- e.g. from the `mesa` and `freeglut` system packages (respectively)

  if flag(opengl)
     exposed-modules:
                   Graphics.UI.FLTK.LowLevel.Gl
                   Graphics.UI.FLTK.LowLevel.Glut
                   Graphics.UI.FLTK.LowLevel.GlWindow
     cpp-options: -DGLSUPPORT
  exposed-modules:
                   Graphics.UI.FLTK.LowLevel.Adjuster
                   Graphics.UI.FLTK.LowLevel.Ask
                   Graphics.UI.FLTK.LowLevel.BMPImage
                   Graphics.UI.FLTK.LowLevel.Bitmap
                   Graphics.UI.FLTK.LowLevel.Box
                   Graphics.UI.FLTK.LowLevel.Browser
                   Graphics.UI.FLTK.LowLevel.Button
                   Graphics.UI.FLTK.LowLevel.CheckButton
                   Graphics.UI.FLTK.LowLevel.Choice
                   Graphics.UI.FLTK.LowLevel.Clock
                   Graphics.UI.FLTK.LowLevel.ColorChooser
                   Graphics.UI.FLTK.LowLevel.CopySurface
                   Graphics.UI.FLTK.LowLevel.Counter
                   Graphics.UI.FLTK.LowLevel.Dial
                   Graphics.UI.FLTK.LowLevel.Dispatch
                   Graphics.UI.FLTK.LowLevel.DoubleWindow
                   Graphics.UI.FLTK.LowLevel.Draw
                   Graphics.UI.FLTK.LowLevel.FL
                   Graphics.UI.FLTK.LowLevel.FLTKHS
                   Graphics.UI.FLTK.LowLevel.FileBrowser
                   Graphics.UI.FLTK.LowLevel.FileInput
                   Graphics.UI.FLTK.LowLevel.FillDial
                   Graphics.UI.FLTK.LowLevel.FillSlider
                   Graphics.UI.FLTK.LowLevel.Fl_Enumerations
                   Graphics.UI.FLTK.LowLevel.Fl_Types
                   Graphics.UI.FLTK.LowLevel.GIFImage
                   Graphics.UI.FLTK.LowLevel.Group
                   Graphics.UI.FLTK.LowLevel.Hierarchy
                   Graphics.UI.FLTK.LowLevel.HorFillSlider
                   Graphics.UI.FLTK.LowLevel.HorNiceSlider
                   Graphics.UI.FLTK.LowLevel.HorSlider
                   Graphics.UI.FLTK.LowLevel.HorValueSlider
                   Graphics.UI.FLTK.LowLevel.Image
                   Graphics.UI.FLTK.LowLevel.ImageSurface
                   Graphics.UI.FLTK.LowLevel.Input
                   Graphics.UI.FLTK.LowLevel.JPEGImage
                   Graphics.UI.FLTK.LowLevel.LightButton
                   Graphics.UI.FLTK.LowLevel.LineDial
                   Graphics.UI.FLTK.LowLevel.MenuBar
                   Graphics.UI.FLTK.LowLevel.MenuButton
                   Graphics.UI.FLTK.LowLevel.MenuItem
                   Graphics.UI.FLTK.LowLevel.MenuPrim
                   Graphics.UI.FLTK.LowLevel.MultiLabel
                   Graphics.UI.FLTK.LowLevel.NativeFileChooser
                   Graphics.UI.FLTK.LowLevel.NiceSlider
                   Graphics.UI.FLTK.LowLevel.Output
                   Graphics.UI.FLTK.LowLevel.OverlayWindow
                   Graphics.UI.FLTK.LowLevel.PNGImage
                   Graphics.UI.FLTK.LowLevel.PNMImage
                   Graphics.UI.FLTK.LowLevel.Pack
                   Graphics.UI.FLTK.LowLevel.Pixmap
                   Graphics.UI.FLTK.LowLevel.Positioner
                   Graphics.UI.FLTK.LowLevel.Progress
                   Graphics.UI.FLTK.LowLevel.RGBImage
                   Graphics.UI.FLTK.LowLevel.RadioLightButton
                   Graphics.UI.FLTK.LowLevel.RepeatButton
                   Graphics.UI.FLTK.LowLevel.ReturnButton
                   Graphics.UI.FLTK.LowLevel.Roller
                   Graphics.UI.FLTK.LowLevel.RoundButton
                   Graphics.UI.FLTK.LowLevel.Scrollbar
                   Graphics.UI.FLTK.LowLevel.Scrolled
                   Graphics.UI.FLTK.LowLevel.SelectBrowser
                   Graphics.UI.FLTK.LowLevel.SingleWindow
                   Graphics.UI.FLTK.LowLevel.Slider
                   Graphics.UI.FLTK.LowLevel.Spinner
                   Graphics.UI.FLTK.LowLevel.SysMenuBar
                   Graphics.UI.FLTK.LowLevel.Table
                   Graphics.UI.FLTK.LowLevel.TableRow
                   Graphics.UI.FLTK.LowLevel.Tabs
                   Graphics.UI.FLTK.LowLevel.TextBuffer
                   Graphics.UI.FLTK.LowLevel.TextDisplay
                   Graphics.UI.FLTK.LowLevel.TextEditor
                   Graphics.UI.FLTK.LowLevel.TextSelection
                   Graphics.UI.FLTK.LowLevel.Tile
                   Graphics.UI.FLTK.LowLevel.ToggleButton
                   Graphics.UI.FLTK.LowLevel.Tree
                   Graphics.UI.FLTK.LowLevel.TreeItem
                   Graphics.UI.FLTK.LowLevel.TreePrefs
                   Graphics.UI.FLTK.LowLevel.Utils
                   Graphics.UI.FLTK.LowLevel.Valuator
                   Graphics.UI.FLTK.LowLevel.ValueInput
                   Graphics.UI.FLTK.LowLevel.ValueOutput
                   Graphics.UI.FLTK.LowLevel.ValueSlider
                   Graphics.UI.FLTK.LowLevel.Widget
                   Graphics.UI.FLTK.LowLevel.Window
                   Graphics.UI.FLTK.LowLevel.Wizard
                   Graphics.UI.FLTK.LowLevel.X
                   Graphics.UI.FLTK.LowLevel.XBMImage
                   Graphics.UI.FLTK.LowLevel.XPMImage
                   Graphics.UI.FLTK.LowLevel.SVGImage
                   Graphics.UI.FLTK.LowLevel.SimpleTerminal
                   Graphics.UI.FLTK.LowLevel.Tooltip

  other-modules: C2HS

  build-depends:
                base == 4.*,
                bytestring,
                text >= 0.2 && < 1.3,
                vector >= 0.12.0.1

  hs-source-dirs: src

  default-extensions: GADTs
  default-language: Haskell2010
  ghc-options: -Wall -fno-warn-name-shadowing -fno-warn-orphans -fno-warn-unused-matches -fno-warn-dodgy-exports -fno-warn-unused-top-binds

  if impl(ghc >= 8.0.1)
     cpp-options: -DHASCALLSTACK_AVAILABLE
     cpp-options: -DCUSTOM_TYPE_ERRORS
  else
     if impl(ghc >= 7.10.2)
       cpp-options: -DCALLSTACK_AVAILABLE
  if impl(ghc >= 7.10)
     cpp-options: -DOVERLAPPING_INSTANCES_DEPRECATED

  if os(darwin)
     cc-options: -U__BLOCKS__ -D_Nonnull=

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

Executable fltkhs-fluidtohs

  Main-Is:        Main.hs
  Hs-Source-Dirs: src/Fluid

  Other-modules:
                Generate
                Lookup
                Parser
                Types
                Utils

  Build-Depends:
    base == 4.*,
    filepath,
    fltkhs,
    parsec >= 3.1.6,
    directory >= 1.2.1.0,
    mtl

  default-language: Haskell2010
  ghc-Options: -Wall -Wdodgy-imports -threaded

  if os(windows) && arch(x86_64)
     cpp-options: -DWIN64
  if os(windows)
   ghc-Options: -optl-mwindows
   ghc-Options: -pgml g++ "-optl-Wl,--allow-multiple-definition" "-optl-Wl,--whole-archive" "-optl-Wl,-Bstatic" "-optl-Wl,-lfltkc" "-optl-Wl,-Bdynamic" "-optl-Wl,--no-whole-archive"
  if os(darwin)
   ghc-Options: "-optl-Wl,-lfltkc"
  if !os(darwin) && !os(windows)
   ghc-Options: -pgml g++ "-optl-Wl,--allow-multiple-definition" "-optl-Wl,--whole-archive" "-optl-Wl,-Bstatic" "-optl-Wl,-lfltkc" "-optl-Wl,-Bdynamic" "-optl-Wl,--no-whole-archive"

----------------------------------------
-- Demos

-- simple example of different fltk button widgets
Executable fltkhs-buttons
  if !flag(demos)
     buildable: False

  Main-Is:        Buttons.hs
  Hs-Source-Dirs: src/TestPrograms

  Build-Depends:
    base == 4.*,
    fltkhs

  default-language: Haskell2010
  ghc-Options: -Wall -threaded

  if os(windows)
    ghc-Options: -optl-mwindows
    ghc-Options: -pgml g++ "-optl-Wl,--allow-multiple-definition" "-optl-Wl,--whole-archive" "-optl-Wl,-Bstatic" "-optl-Wl,-lfltkc" "-optl-Wl,-Bdynamic" "-optl-Wl,--no-whole-archive"

  if os(darwin)
    ghc-Options: "-optl-Wl,-lfltkc"

  if !os(darwin) && !os(windows)
   ghc-Options: -pgml g++ "-optl-Wl,--allow-multiple-definition" "-optl-Wl,--whole-archive" "-optl-Wl,-Bstatic" "-optl-Wl,-lfltkc" "-optl-Wl,-Bdynamic" "-optl-Wl,--no-whole-archive"

-- example of fltk OpenGL support
--
-- requires the `opengl` flag, e.g.:
--
--     stack build --flag fltkhs:opengl
--     cabal configure -fopengl && cabal build
--
Executable fltkhs-example-opengl
  if !(flag(demos) && flag(opengl))
     buildable: False

  Main-Is:        OpenGL.hs
  Hs-Source-Dirs: src/TestPrograms

  Build-Depends:
    base == 4.*,
    fltkhs,
    text >= 1.2.2.0,
    OpenGLRaw >= 3 && < 3.4

  default-language: Haskell2010
  ghc-Options: -Wall -threaded

  if os(windows)
    ghc-Options: -optl-mwindows
    ghc-Options: -pgml g++ "-optl-Wl,--allow-multiple-definition" "-optl-Wl,--whole-archive" "-optl-Wl,-Bstatic" "-optl-Wl,-lfltkc" "-optl-Wl,-Bdynamic" "-optl-Wl,--no-whole-archive"

  if os(darwin)
    ghc-Options: "-optl-Wl,-lfltkc"

  if !os(darwin) && !os(windows)
   ghc-Options: -pgml g++ "-optl-Wl,--allow-multiple-definition" "-optl-Wl,--whole-archive" "-optl-Wl,-Bstatic" "-optl-Wl,-lfltkc" "-optl-Wl,-Bdynamic" "-optl-Wl,--no-whole-archive"

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