packages feed

hLLVM-0.5.0.0: hLLVM.cabal

name:  hLLVM
version: 0.5.0.0
license: BSD3
license-file: LICENSE
author: Ning Wang <email@ningwang.org>
maintainer: Ning Wang <email@ningwang.org>
build-Type: Simple
cabal-Version: >= 1.10
stability: 0.5
synopsis: A library for processing LLVM assembly codes
category: Compilers/Interpreters
description:  A pure Haskell library for analyzing and transforming LLVM assembly codes. 
              It includes:
              1) a parser to parse LLVM code in its text form
              2) an internal IR that can be feed into Hoopl
              3) a set of utility functions to convert LLVM AST to and from the internal IR 
              4) a set of utility functions to query the IR

extra-source-files:  README.md, LICENSE, CHANGES, TODO

source-repository head
  type:     git
  location: https://github.com/mlite/hLLVM.git



flag debug {
  description: Enable debug support
  default:     False
}

flag testcoverage {
  description: Enable test coverage report
  default: False
}

library {
  default-language:  Haskell2010
  build-depends:     base >= 3 && < 5,
                     containers,
                     array,
                     bytestring,
                     mtl,
                     filepath,
                     directory,
                     hooplext == 3.10.0.2,
                     parsec >=3.1.2 && <3.2,
                     cmdargs >=0.10 && <0.11,
                     transformers >= 0.3.0.0,
                     pretty >= 1.1.1.1,
                     data-dword == 0.3,
                     template-haskell >= 2.9.0.0
  hs-source-dirs:    src
  exposed-modules:   Llvm.Data.Ast,
                     Llvm.Data.Type,
                     Llvm.Data.CoreIr,
                     Llvm.Data.Ir,
                     Llvm.Data.IrType,
                     Llvm.Data.Shared,
                     Llvm.Data.Shared.AtomicEntity,
                     Llvm.Data.Shared.SimpleConst,
                     Llvm.Data.Shared.DataLayout,
                     Llvm.Data.Shared.Util,
                     Llvm.Data.Conversion,
                     Llvm.Data.Conversion.AstSimplification,
                     Llvm.Data.Conversion.AstIrConversion,
                     Llvm.Data.Conversion.AstScanner,
                     Llvm.Data.Conversion.IrAstConversion,
                     Llvm.Data.Conversion.TypeConversion,
                     Llvm.Data.Conversion.LabelMapM,
                     Llvm.Util.Mapping,
                     Llvm.Util.Monadic,
                     Llvm.Query.TypeConstValue,
                     Llvm.Query.Qerror,
                     Llvm.Query.Conversion,
                     Llvm.Query.IrCxt,
                     Llvm.Query.TypeDef,
                     Llvm.Syntax.Printer.Common,
                     Llvm.Syntax.Printer.SharedEntityPrint,
                     Llvm.Syntax.Printer.IrPrint,
                     Llvm.Syntax.Printer.LlvmPrint,
                     Llvm.Syntax.Parser.Basic,
                     Llvm.Syntax.Parser.Block,
                     Llvm.Syntax.Parser.Const,
                     Llvm.Syntax.Parser.DataLayout,
                     Llvm.Syntax.Parser.Instruction,
                     Llvm.Syntax.Parser.Module,
                     Llvm.Syntax.Parser.Rhs,
                     Llvm.Syntax.Parser.Type,
                     Llvm.Pass.Dominator,
                     Llvm.Pass.Liveness,
                     Llvm.Pass.Mem2Reg,
                     Llvm.Pass.NormalGraph,
                     Llvm.Pass.Optimizer,
                     Llvm.Pass.PassManager,
                     Llvm.Pass.PhiFixUp,
                     Llvm.Pass.Rewriter,
                     Llvm.Pass.Uda,
                     Llvm.Pass.PassTester,
                     ParserTester
  if flag(debug) {
     if !os(windows) {
        cc-options: -DDEBUG
     } else {
        cc-options: -DNDEBUG
    }
  } 
  if flag(testcoverage) {
    ghc-options: 
  }
  other-extensions: CPP
}

executable llvm-test
  default-language:  Haskell2010
  main-is:           LlvmTest.hs
  hs-source-dirs:    src
  build-depends:     base >= 3 && < 5,
                     containers,
                     array,
                     bytestring,
                     mtl,
                     filepath,
                     directory,
                     template-haskell >= 2.9.0.0,
                     hooplext == 3.10.0.2,
                     parsec >=3.1.2 && <3.2,
                     cmdargs >=0.10 && <0.11,
                     transformers >= 0.3.0.0,
                     pretty >= 1.1.1.1,
                     data-dword == 0.3
  if flag(testcoverage) {
    ghc-options:
  }