File language-c.cabal of Package ghc-language-c

Name:           language-c
Version:        0.9.0.1
x-revision: 1
Cabal-Version:  >= 1.10
Build-Type:     Simple
License:        BSD3
License-File:   LICENSE
Copyright:      LICENSE
Author:         AUTHORS
Maintainer:     language.c@monoid.al
Stability:      experimental
Homepage:       http://visq.github.io/language-c/
Bug-reports:    https://github.com/visq/language-c/issues/

Synopsis:       Analysis and generation of C code
Description:    Language C is a haskell library for the analysis and generation of C code.
                It features a complete, well tested parser and pretty printer for all of C99 and a large
                set of C11 and clang/GNU extensions.
Category:       Language
Tested-With:    GHC == 8.0.*, GHC == 8.2.*, GHC == 8.4.*, GHC == 8.6.*, GHC == 8.8.*, GHC == 8.10.*

Extra-Source-Files: AUTHORS AUTHORS.c2hs ChangeLog README
                    src/Language/C/Parser/Lexer.x
                    src/Language/C/Parser/Parser.y

Source-Repository head
  type:     git
  location: https://github.com/visq/language-c.git

Flag useByteStrings
    Description: Use ByteString as InputStream datatype
    Default: True
Flag allWarnings
    Description: Turn on all warnings for building (development)
    Default: False
Flag iecFpExtension
    Description: Support IEC 60559 floating point extension (defines _Float128)
    Default: True
Library
    default-extensions: CPP, DeriveDataTypeable, DeriveGeneric, PatternGuards, BangPatterns, ExistentialQuantification, GeneralizedNewtypeDeriving, ScopedTypeVariables
    Build-Depends: base >= 4.8 && < 5,
                   array,
                   containers >= 0.3,
                   deepseq >= 1.4.0.0 && < 1.5,
                   directory,
                   filepath,
                   mtl,
                   pretty < 1.2.0,
                   process
    if flag(allWarnings)
        if impl(ghc >= 8.0)
          ghc-options:     -Wall -Wno-redundant-constraints
        else
          ghc-options:     -Wall

    Build-Depends:
      base >=4 && <5

    if flag(useByteStrings)
        Build-Depends: bytestring >= 0.9.0
    else
        cpp-options: -DNO_BYTESTRING

    if flag(iecFpExtension)
        cpp-options: -DIEC_60559_TYPES_EXT

     -- GHC.Generics lived in `ghc-prim` for GHC 7.2 & GHC 7.4
    if impl(ghc == 7.4.*)
        build-depends: ghc-prim == 0.2.*

    Build-Tools:    happy, alex

    Hs-Source-Dirs: src
    Exposed-Modules:
                      -- top-level
                      Language.C
                      -- data
                      Language.C.Data
                      Language.C.Data.Position
                      Language.C.Data.Ident
                      Language.C.Data.Error
                      Language.C.Data.Name
                      Language.C.Data.Node
                      Language.C.Data.InputStream
                      -- syntax
                      Language.C.Syntax
                      Language.C.Syntax.AST
                      Language.C.Syntax.Constants
                      Language.C.Syntax.Ops
                      Language.C.Syntax.Utils
                      -- parser
                      Language.C.Parser
                      -- pretty printer
                      Language.C.Pretty
                      -- system
                      Language.C.System.Preprocess
                      Language.C.System.GCC
                      -- analysis [experimental]
                      Language.C.Analysis
                      Language.C.Analysis.ConstEval
                      Language.C.Analysis.Builtins
                      Language.C.Analysis.SemError
                      Language.C.Analysis.SemRep
                      Language.C.Analysis.DefTable
                      Language.C.Analysis.TravMonad
                      Language.C.Analysis.AstAnalysis
                      Language.C.Analysis.DeclAnalysis
                      Language.C.Analysis.Debug
                      Language.C.Analysis.TypeCheck
                      Language.C.Analysis.TypeConversions
                      Language.C.Analysis.TypeUtils
                      Language.C.Analysis.NameSpaceMap
                      Language.C.Analysis.MachineDescs
                      -- semrep -> code [alpha]
                      Language.C.Analysis.Export
    Other-Modules:
                      Language.C.Data.RList
                      -- parser implementation
                      Language.C.Parser.Builtin
                      Language.C.Parser.Lexer
                      Language.C.Parser.ParserMonad
                      Language.C.Parser.Tokens
                      Language.C.Parser.Parser
  default-language: Haskell2010

-- test description
Test-Suite language-c-harness
    type:       exitcode-stdio-1.0
    main-is:    test/harness/run-harness.hs
    build-depends: base, directory, process, filepath
    default-language: Haskell2010
openSUSE Build Service is sponsored by