packages feed

fudgets-0.18.3.1: fudgets.cabal

Name: fudgets
-- The version number also appears in hsrc/utils/FudVersion.hs
Version: 0.18.3.1
Cabal-Version: >=1.10
Synopsis: The Fudgets Library
Homepage: https://www.altocumulus.org/Fudgets/
Category: GUI, Network, Concurrency
          -- Graphics?, User Interfaces?

Description: <https://www.altocumulus.org/Fudgets/ Fudgets> is a Graphical
             User Interface Toolkit built in Haskell on top of the X11
             Windows system in the early 1990s. There is an
             <https://www.altocumulus.org/Fudgets/fpca93-abstract.html FPCA-93 paper>
             about it. Fudgets also makes it easy to create
             client/server applications that communicate via the Internet.
             .
             This package includes the Fudgets library and a few small
             examples and demo applications.

Author: Thomas Hallgren and Magnus Carlsson and others
Maintainer: Thomas Hallgren
Build-Type: Simple
License: OtherLicense
License-File: COPYRIGHT
Tested-With: GHC==7.4.1, GHC==7.6.3, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.3, GHC==8.8.2, GHC==8.10.2, GHC==8.10.7, GHC==9.0.2, GHC==9.2.2

Extra-Source-Files: README.md
                    ChangeLog.md
                    hsrc/exists.h
                    hsrc/defaults/defaults.h
                    hsrc/ghc-dialogue/asyncinput.h
                    hsrc/ghc-dialogue/ccalls.h
                    hsrc/ghc-dialogue/cfuns.h
                    hsrc/ghc-dialogue/cfundefs.h
                    hsrc/ghc-dialogue/cimports.h
                    hsrc/ghc-dialogue/csizes.h
                    hsrc/ghc-dialogue/newstructfuns.h
                    hsrc/ghc-dialogue/structs.h
                    xlib/socketlib/defs.h

Flag developer
  Description: Enable options useful for developers of this library
  Manual:      True
  Default:     False

Flag old-time
  Description: Use the old-time package
  Default:     True

Library
  --Exposed: False
  Exposed-modules: AllFudgets Fudgets ContribFudgets
    TreeBrowser HyperGraphicsF2 SuperMenuF ConnectF TypedSockets
    ReactiveF ReactionM DialogueIO DoRequest
    IOUtil
    --NonStdTrace
    HbcUtils
    -- GhcFudgets

  Build-Depends: base>=4 && <5, process, directory>=1.2.3,
               --packedstring,
                 containers, array, time,
                 unix

  if flag(old-time)
    Build-Depends: old-time

  Hs-source-dirs: Contrib hsrc
    hsrc/utils hsrc/sp hsrc/types hsrc/xtypes hsrc/combinators hsrc/containers
    hsrc/drawing hsrc/filters hsrc/fudgets hsrc/defaults hsrc/internals
    hsrc/kernelutils hsrc/layout hsrc/infix hsrc/lowlevel hsrc/io hsrc/debug
    hsrc/ghc-dialogue hsrc/ghc
    -- The only module used from hbc_library is FudUTF8
    hsrc/hbc_library

  Default-language: Haskell98
  Default-extensions: ForeignFunctionInterface Rank2Types
                      ExistentialQuantification
                      MultiParamTypeClasses FunctionalDependencies
                      FlexibleInstances FlexibleContexts TypeSynonymInstances

--if impl(ghc>=8.6) && impl(ghc<8.8)
--  Default-extensions: NoMonadFailDesugaring

  Include-dirs: hsrc hsrc/ghc-dialogue hsrc/defaults

  if os(darwin)
    Extra-lib-dirs: /opt/X11/lib 
    Include-dirs: /opt/X11/include
    -- Run 'brew install gcc', then you should have gcc-11 and cpp-11, or
    -- possibly another version, in which case you need to adapt the line below:
    if impl(ghc<8.10.3)
      -- Use the -pgmP in ghc<8.10.3
      ghc-options: -pgmP cpp-11 -optP -traditional
    --else
      -- Unfortunately -pgmP doesn't work in ghc>=8.10.3, so you need to
      -- change a line in $PREFIX/lib/ghc-*/lib/settings insead:
      -- ,("Haskell CPP command", "gcc-11")

  Extra-Libraries: X11 Xext

  ghc-options: -fno-warn-tabs
  
  if flag(developer)
    ghc-options: -fwarn-unused-imports
    ghc-prof-options: -fprof-auto

  if impl(ghc>=8.6)
    ghc-options: -haddock

  c-sources: hsrc/ghc-dialogue/cfuns.c xlib/fdzero.c xlib/socketlib/inet.c
  cc-options: "-DVERSION=\"SOCKET Version 1.3\"" -DHAS_H_ERRNO

  -- Sigh. Why can't Cabal fill this in?
  -- ghc --make has no problem finding all the reqired modules.
  Other-Modules:
    AlignP
    Alignment
--  Ap
    AppStorage
    AsyncInput
    AsyncTransmitter
    AutoLayout
    AutoPlacer
    AuxShellF
    AuxTypes
    BellF
    BgF
    BitmapDrawing
    BitmapF
    Border3dF
    BranchF
    BubbleF
    ButtonBorderF
    ButtonF
    ButtonGroupF
    CSizes
    CString16
    CmdLineEnv
    Color
    Combinators
    Command
    CompF
    CompFfun
    CompOps
    CompSP
    CompiledGraphics
    CompletionStringF
    CondLayout
    Cont
    ContDynF
    Containers
    ContinuationIO
    Convgc
    Cursor
    DButtonF
    DDisplayF
    DFudIO
    DLValue
    DRadioF
    DShellF
    DStringF
    DToggleButtonF
    Debug
    DefaultParams
    Defaults
    DialogF
    DialogueSpIO
    Direction
    Display
    Dlayout
    DoXCommand
    DoXRequest
    DoubleClickF
    DragF
    DrawCompiledGraphics
    DrawCompiledGraphics1
    DrawInPixmap
    DrawInWindow
    DrawTypes
    Drawcmd
    Drawing
    DrawingModules
    DrawingOps
    DrawingUtils
    DynListF
    DynListLF
    DynRadioGroupF
    DynSpacerF
    Dynforkmerge
    Edit
    Editfield
    Editor
    Edtypes
    EitherUtils
    EncodeEvent
    EndButtonsF
    Event
    EventMask
    Expose
    FDefaults
    FRequest
    FilePaths
    FilePickF
    FilePickPopupF
    FileShellF
    Filters
    FixedDrawing
    FlexibleDrawing
    FocusMgr
    Font
    FontProperty
    FreeGroupF
    FudIO
    FudUTF8
    FudUtilities
    FudVersion
    Fudget
    FudgetIO
    GCAttrs
    GCtx
    Gc
    GcWarningF
    Geometry
    GetModificationTime
    GetTime
    GetVisual
    GetWindowProperty
    Graphic
    Graphic2Pixmap
    GraphicsF
    GreyBgF
    GuiElems
    HandleF
    HaskellIO
--  HbcLibrary
    HbcWord
    HelpBubbleF
    HorizontalAlignP
    HyperGraphicsF
    IdempotSP
    Image
    InOut
    InfixOps
    InputEditorF
    InputF
    InputMsg
    InputSP
    IntMemo
    InternAtom
    IoF
    IsRequest
    KernelUtils
    KeyGfx
--  LA
    LabelF
    Layout
    LayoutDir
    LayoutDoNow
    LayoutF
    LayoutHints
    LayoutOps
    LayoutRequest
    LayoutSP
    Layoutspec
    LinearSplitP
    List2
    ListF
    ListRequest
    LoadFont
    Loop
    LoopCompF
    LoopLow
    Loops
    Loopthrough
    LowLevel
    MGOps
    MapstateK
    MapstateMsg
    Maptrace
    Marshall
    MatrixP
    MeasuredGraphics
    MenuBarF
    MenuButtonF
    MenuF
    MenuPopupF
    Message
    MeterF
    MoreF
    MoreFileF
    MyForeign
    NameLayout
    NewCache
    NullF
    OldLayoutOps
    OnOffDispF
    OpenSocket
    PQueue
    P_IO_data
    PackedString
    ParF
    ParK
    ParSP
    ParagraphP
    Path
    PathTree
    Pixmap
    PixmapGen
    Placer
    Placers
    Placers2
    PopupF
    PopupGroupF
    PopupMenuF
    Popupmsg
    PosPopupShellF
    Process
    ProdF
    PushButtonF
    QueryPointer
    QueryTree
    Queue
    QuitButtonF
    QuitF
    QuitK
    RadioF
    ReadFileF
    Rects
    ResourceIds
    RootWindowF
    Route
    SP
    SPmonad
    SPstateMonad
    ScrollF
    SelectionF
    SerCompF
    ShapeGroupMgr
    ShapeK
    ShapedButtonsF
    Shells
    ShowCommandF
    ShowFailure
    ShowFun
    SimpleF
    Sizing
    SizingF
    SmileyF
    SocketServer
    Socketio
    Sockets
    SpEither
    SpIO
    Spacer
    Spacers
    Spinterp
    SplitF
    Spops
    SpyF
    Srequest
    StateMonads
    StdIoUtil
    StreamProc
    StreamProcIO
    StringEdit
    StringF
    StringUtils
    StructFuns
    Table
    TableP
    Tables
    Tables2
    TagEvents
    TerminalF
    TextExtents
    TextF
    TimerF
    TitleShellF
    ToggleButtonF
    ToggleGroupF
    TransCoord
    Transceivers
    Tree234
    TreeF
    TryLayout
    Types
    UndoStack
    UnsafeGetDLValue
    UnsafePerformIO
    UserLayoutF
    Utils
    Visual
    WindowF
    WriteFile
    XCallTypes
    XDraw
    XStuff
    XTypesModules
    Xcommand
    Xlib
    Xrequest
    Xtypes

Executable Graph
  hs-source-dirs: Demos/graph
  main-is: Graph.hs
  Other-modules: Compat Diff Eval Exp ExpF Lex Ops Parser Parsop PlotF Root
                 Show Simp UserCoords ZoomF
  build-depends: base, fudgets
  Default-language: Haskell98

  ghc-options: -fno-warn-tabs
  if impl(ghc>=7.0)
    ghc-options: -rtsopts

Executable fudgetclock
  hs-source-dirs: Demos/clock
  main-is: fudgetclock.hs
  Other-modules: ClockF
  Default-language: Haskell98
  build-depends: base, fudgets
  if flag(old-time)
    Build-Depends: old-time
  else
    Build-Depends: time

  ghc-options: -fno-warn-tabs
  if impl(ghc>=7.0)
    ghc-options: -rtsopts

Executable StopWatch
  hs-source-dirs: Examples
  main-is: StopWatch.hs
  Default-language: Haskell98
  build-depends: base, fudgets

  ghc-options: -fno-warn-tabs
  if impl(ghc>=7.0)
    ghc-options: -rtsopts

Executable texteditor
  hs-source-dirs: Examples
  main-is: texteditor.hs
  Default-language: Haskell98
  build-depends: base, fudgets

  ghc-options: -fno-warn-tabs
  if impl(ghc>=7.0)
    ghc-options: -rtsopts

Executable FancyHello
  hs-source-dirs: Examples
  main-is: FancyHello.hs
  Default-language: Haskell98
  build-depends: base, fudgets

  ghc-options: -fno-warn-tabs
  if impl(ghc>=7.0)
    ghc-options: -rtsopts

Executable SpaceInvaders2
  hs-source-dirs: Demos/SpaceInvaders
  main-is: SpaceInvaders2.hs
  Other-modules: BitmapOps GUI InvaderTypes MainF Pics Pics1 ReadPic ScoreF WorldF Metrics
  Default-language: Haskell98
  build-depends: base, fudgets, random
--, split>=0.2

  ghc-options: -fno-warn-tabs
--if impl(ghc>=8.6)
--  Default-extensions: NoMonadFailDesugaring
  if impl(ghc>=7.0)
    ghc-options: -rtsopts

Executable Explore
  hs-source-dirs: Demos/Mandelbrot Demos/graph
  main-is: Explore.hs
  Other-modules: Mandelbrot UserCoords ZoomF
  Default-language: Haskell98
  ghc-options: -threaded
  build-depends: base, fudgets, array, parallel

  ghc-options: -fno-warn-tabs
  if impl(ghc>=7.0)
    ghc-options: -rtsopts -with-rtsopts=-N

Executable FudPaint
  hs-source-dirs: Demos/paint
  main-is: Paint.hs
  Other-modules: GraphF
  Default-language: Haskell98
  build-depends: base, fudgets

  ghc-options: -fno-warn-tabs
  if impl(ghc>=7.0)
    ghc-options: -rtsopts

Executable Life
  hs-source-dirs: Demos/life
  main-is: Main.hs
  other-modules: Generate Life Panel Timer Utils2
  Default-language: Haskell98
  build-depends: base, fudgets

  ghc-options: -fno-warn-tabs
  if impl(ghc>=7.0)
    ghc-options: -rtsopts

Executable Tiles
  hs-source-dirs: Demos/Tiles
  main-is: Main.hs
  Other-modules: BoardF ChoiceF DesignF DrawingF MyUtils RadioDrawF Tiles
                 ToggleDrawGroupF ToolsF
  Default-language: Haskell98
  build-depends: base, fudgets

  ghc-options: -fno-warn-tabs
  if impl(ghc>=7.0)
    ghc-options: -rtsopts

Executable XMine
  hs-source-dirs: Demos/mines
  main-is: XMine.hs
  Other-modules: Box FUtil MineField Pics
  Default-language: Haskell98
  build-depends: base, fudgets, array, random

  ghc-options: -fno-warn-tabs
  if impl(ghc>=7.0)
    ghc-options: -rtsopts

Executable doRequest
  main-is: hsrc/doRequestCmd.hs
  Default-language: Haskell98
  build-depends: base, fudgets

  ghc-options: -fno-warn-tabs
  if impl(ghc>=7.0)
    ghc-options: -rtsopts