packages feed

yi-0.4: yi.cabal

name:           yi
version:        0.4
category:       Editor
synopsis:       The Haskell-Scriptable Editor
description:
  Yi is a text editor written in Haskell and extensible in Haskell. The goal of the Yi project is
  to provide a flexible, powerful, and correct editor for haskell hacking.
license:        GPL
license-file:   LICENSE
author:         AUTHORS
maintainer:     yi-devel@googlegroups.com
homepage:       http://haskell.org/haskellwiki/Yi

cabal-Version:  >= 1.4
tested-with:    GHC==6.8.3
build-type:     Simple
data-files:
  art/yi+lambda-fat.pdf
  art/yi+lambda-fat.32.png
  art/dependencies.png
  art/plain-folder.png
  art/hs-source-folder.png
  art/exposed-module.png
  art/hidden-module.png
  art/exposed-file-module.png
  art/hidden-file-module.png
  art/package.png
  art/project.png
  art/c-source.png
  art/h-source.png
  art/text-file.png
  art/license-file.png
  art/setup-script.png
  art/setup-script.png
extra-source-files: Yi/Lexer/alex.hsinc

flag ghcAPI
  Description: Enable linking with GHC API for advanced features.
  Default: False
  -- Can be useful to disable; ghc package is difficult to rebuild;
  --  * normally not available for profiling.      
  --  * links against old/new version of bytestring
  --  * links against old version of Cabal
  -- ...

flag vty
  Description: Provide Vty UI

flag gtk
  Description: Provide GTK UI

flag pango
  Description: Provide Pango UI

flag cocoa
  Description: Provide experimental Cocoa UI

flag testing
  Description: bake-in the self-checks

library
    exposed-modules:
           Yi
           Yi.Prelude
           Yi.Boot
           Yi.Config
           Yi.Keymap.Keys
           Yi.Keymap.Emacs
           Yi.Keymap.Vim
           Yi.Keymap.Cua
           Yi.Keymap.Users.Ertai
           Yi.Keymap.Users.JP
           Yi.Misc
           Yi.Modes
           Yi.Mode.Compilation
           Yi.Mode.Haskell
           Yi.Buffer
           Yi.UI.Common
    extensions: CPP, DeriveDataTypeable, FlexibleContexts, FlexibleInstances,
                GADTs, GeneralizedNewtypeDeriving, Rank2Types, TypeSynonymInstances
    include-dirs:   Yi/Lexer
    if flag (vty)
       build-depends: vty>=3.0.0
       cpp-options: -DFRONTEND_VTY
       exposed-modules: Yi.UI.Vty
       
    if flag (gtk)
      cpp-options: -DFRONTEND_GTK
      exposed-modules: Yi.UI.Gtk
      other-modules: Yi.UI.Gtk.ProjectTree
                     Yi.UI.Gtk.Utils

    if flag (pango)
      cpp-options: -DFRONTEND_PANGO
      exposed-modules: Yi.UI.Pango
      other-modules: Yi.UI.Gtk.ProjectTree
                     Yi.UI.Gtk.Utils


    if flag (cocoa)
      cpp-options: -DFRONTEND_COCOA
      exposed-modules: Yi.UI.Cocoa

    if flag (ghcAPI)
      cpp-options: -DGHC_API

      exposed-modules:  Yi.Mode.Shim
      other-modules:
        Shim.SHM, Shim.SessionMonad, Shim.Hsinfo, Shim.GhcCompat,
        Shim.ExprSearch, Yi.GHC

    other-modules:
        Paths_yi,
        Yi.Lexer.Alex
        Yi.Lexer.Compilation
        Yi.Lexer.Cplusplus
        Yi.Lexer.Haskell
        Yi.Lexer.LiterateHaskell
        Yi.Lexer.Latex 
        Yi.Lexer.Srmc
        Yi.Lexer.Cabal
        Yi.Lexer.OCaml

        Yi.Syntax
        Yi.Syntax.Layout
        Yi.Syntax.Paren
        Yi.Syntax.Fractal
        Yi.Syntax.Linear

        Yi.Accessor
        Yi.Interpreter
        Yi.Buffer.Basic
        System.FriendlyPath
        Yi.Region
        Yi.Regex
        Yi.Buffer.HighLevel, Yi.Buffer.Implementation,
        Yi.Buffer.Normal, Yi.Buffer.Region, Yi.Completion, Yi.Core,
        Yi.Debug, Yi.Dired, Yi.Dynamic, Yi.Editor, Yi.Eval, Yi.Event, Yi.FingerString, Yi.History,
        Yi.Indent, Yi.Interact, Yi.Keymap, Yi.Keymap.Completion,
        Yi.Keymap.Emacs.Keys, Yi.Keymap.Emacs.KillRing, Yi.Keymap.Emacs.UnivArgument,
        Yi.Keymap.Emacs.Utils, Yi.Main, Yi.MkTemp, Yi.Monad, Yi.Process,
        Yi.Search, Yi.String, Yi.Style, Yi.Templates, Yi.TextCompletion,
        Yi.Undo, Yi.Window, Yi.WindowSet
        Yi.MiniBuffer
        Yi.File
        Yi.KillRing
        Yi.IncrementalParse
        Yi.UI.Utils
        HConf
        -- Should probably be split out to another package.
        Data.Tree.Zipper
        Data.DelayList
        Shim.CabalInfo
        Shim.Utils 
        Shim.ProjectContent
--         Broken:
--                Yi.Keymap.Ee,
--                Yi.Keymap.Gwern,
--                Yi.Keymap.Joe,
--                Yi.Keymap.Mg,
--                Yi.Keymap.Nano,
--                Yi.Keymap.Vi,

--  extensions:   CPP, DeriveDataTypeable, FlexibleContexts, FlexibleInstances,
--                ForeignFunctionInterface, FunctionalDependencies, GADTs,
--                GeneralizedNewtypeDeriving, MagicHash, MultiParamTypeClasses,
--                ParallelListComp, PatternGuards, PatternSignatures, Rank2Types,
--                ScopedTypeVariables TypeSynonymInstances, UndecidableInstances



executable yi
        build-depends: Cabal >= 1.4 && < 1.5
        build-depends: array,  base,  containers,  directory,  filepath>=1.0,
                       mtl, process, old-locale, old-time, random

        build-tools:   alex >= 2.0.1 && < 3
        -- haddock >= 2.0,
        -- it seems harsh to require haddock 2.0 to even configure Yi
        build-depends: bytestring >=0.9.0.1 && <0.9.2
        build-depends: fingertree
        build-depends: utf8-string >= 0.3.1
        build-depends: pureMD5 >= 0.2.3
        build-depends: regex-base ==0.93.1
        build-depends: regex-tdfa ==0.94
        
        build-depends: parsec >=2.1

        ghc-options:   -Wall -optl-Wl,-s -threaded
-- ghc-options later on get appended to the original
        ghc-prof-options:   -prof -auto-all

        if !os(mingw32)
           build-depends: unix

        if flag (vty)
           build-depends: vty>=3.0.2
           cpp-options: -DFRONTEND_VTY

        if flag (gtk)
          build-depends: gtk>=0.9.13
          cpp-options: -DFRONTEND_GTK

        if flag (pango)
          build-depends: gtk>=0.9.13
          cpp-options: -DFRONTEND_PANGO
          other-modules: Yi.UI.Gtk.ProjectTree
                         Yi.UI.Gtk.Utils
                         Yi.UI.Pango

        if flag (cocoa)
          build-depends: HOC, HOC-AppKit, HOC-Foundation
          cpp-options: -DFRONTEND_COCOA

        if flag (ghcAPI)
          build-depends: ghc==6.8.3
          build-depends: haskell98
          cpp-options: -DGHC_API

        if !(flag(vty) || flag (gtk) || flag(cocoa))
         buildable: False

        main-is:        Main.hs

        other-modules:
           Yi
           Yi.Prelude
           Yi.Boot
           Yi.Keymap.Emacs
           Yi.Keymap.Vim
           Yi.Keymap.Users.Ertai
           Yi.Keymap.Users.JP
           Yi.Misc
           Yi.Modes
           Yi.Mode.Compilation
           Yi.Mode.Haskell
           Yi.Buffer
           Yi.Buffer.Basic
           Yi.Keymap.Keys
           Shim.CabalInfo
           Shim.Utils
           Shim.ProjectContent
           System.FriendlyPath
           Yi.UI.Common

           Paths_yi,
           Yi.GHC

           Yi.Lexer.Alex
           Yi.Lexer.Compilation
           Yi.Lexer.Cplusplus
           Yi.Lexer.Haskell
           Yi.Lexer.LiterateHaskell
           Yi.Lexer.Latex 
           Yi.Lexer.Srmc
           Yi.Lexer.Cabal
           Yi.Lexer.OCaml

           Yi.Syntax
           Yi.Syntax.Layout
           Yi.Syntax.Paren
           Yi.Syntax.Fractal
           Yi.Syntax.Linear

           Yi.Accessor, Yi.Interpreter,
           Yi.Buffer.HighLevel, Yi.Buffer.Implementation,
           Yi.Buffer.Normal, Yi.Buffer.Region, Yi.Completion, Yi.Core,
           Yi.Debug, Yi.Dired, Yi.Dynamic, Yi.Editor, Yi.Eval, Yi.Event, Yi.FingerString, Yi.History,
           Yi.Indent, Yi.Interact, Yi.Keymap, Yi.Keymap.Completion,
           Yi.Keymap.Emacs.Keys, Yi.Keymap.Emacs.KillRing, Yi.Keymap.Emacs.UnivArgument,
           Yi.Keymap.Emacs.Utils, Yi.Main, Yi.MkTemp, Yi.Monad, Yi.Process,
           Yi.Search, Yi.String, Yi.Style, Yi.Templates, Yi.TextCompletion,
           Yi.Undo, Yi.Window, Yi.WindowSet
           Yi.MiniBuffer
           Yi.File
           Yi.KillRing
           Yi.IncrementalParse
           Yi.UI.Utils
           HConf
           -- Should probably be split out to another package.
           Data.Tree.Zipper
           Data.DelayList

        include-dirs:   Yi/Lexer
        extensions: CPP, DeriveDataTypeable, FlexibleContexts, FlexibleInstances,
                    GADTs, GeneralizedNewtypeDeriving, Rank2Types, TypeSynonymInstances

        if flag(testing)
            cpp-options:    -DTESTING
            hs-source-dirs: . tests/
            other-modules:  Driver, TestSuite
            build-depends:  QuickCheck < 2