packages feed

llvm-general-3.2.4.2: llvm-general.cabal

name: llvm-general
version: 3.2.4.2
license: BSD3
license-file: LICENSE
author: Benjamin S.Scarlet <fgthb0@greynode.net>
maintainer: Benjamin S. Scarlet <fgthb0@greynode.net>
copyright: Benjamin S. Scarlet 2013
build-type: Custom
stability: experimental
cabal-version: >= 1.8
category: Compilers/Interpreters, Code Generation
synopsis: General purpose LLVM bindings
description:
  llvm-general is a set of Haskell bindings for LLVM <http://llvm.org/>. Unlike other current Haskell bindings,
	it uses an ADT to represent LLVM IR (<http://llvm.org/docs/LangRef.html>), and so offers two advantages: it
	handles almost all of the stateful complexities of using the LLVM API to build IR; and it supports moving IR not
	only from Haskell into LLVM C++ objects, but the other direction - from LLVM C++ into Haskell.
extra-source-files:
  src/LLVM/General/Internal/FFI/Analysis.h
  src/LLVM/General/Internal/FFI/Function.h
  src/LLVM/General/Internal/FFI/GlobalValue.h
  src/LLVM/General/Internal/FFI/InlineAssembly.h
  src/LLVM/General/Internal/FFI/Instruction.h
  src/LLVM/General/Internal/FFI/SMDiagnostic.h
  src/LLVM/General/Internal/FFI/Target.h
  src/LLVM/General/Internal/FFI/Type.h
  src/LLVM/General/Internal/FFI/Value.h
   
source-repository head
  type: git
  location: git://github.com/bscarlet/llvm-general.git

source-repository this
  type: git
  location: git://github.com/bscarlet/llvm-general.git
  branch: llvm-3.2
  tag: v3.2.4.2

flag shared-llvm
  description: link against llvm shared rather than static library
  default: False

flag debug
  description: compile C(++) shims with debug info for ease of troubleshooting
  default: False

library
  build-tools: llvm-config
  ghc-options: -fwarn-unused-imports
  build-depends: 
    base >= 4.5.0.0 && < 5,
    text >= 0.11.2.1,
    bytestring >= 0.9.1.10,
    transformers >= 0.3.0.0,
    mtl >= 2.0.1.0,
    template-haskell >= 2.5.0.0,
    containers >= 0.4.2.1,
    parsec >= 3.1.3,
    array >= 0.4.0.0,
    setenv >= 0.1.0
  extra-libraries: stdc++
  hs-source-dirs: src
  extensions:
    TupleSections
    DeriveDataTypeable
    EmptyDataDecls
    FlexibleContexts
    FlexibleInstances
    StandaloneDeriving
  exposed-modules:
    LLVM.General
    LLVM.General.AST
    LLVM.General.AST.AddrSpace
    LLVM.General.AST.InlineAssembly
    LLVM.General.AST.Attribute
    LLVM.General.AST.CallingConvention
    LLVM.General.AST.Constant
    LLVM.General.AST.DataLayout
    LLVM.General.AST.Float
    LLVM.General.AST.FloatingPointPredicate
    LLVM.General.AST.Global
    LLVM.General.AST.Instruction
    LLVM.General.AST.IntegerPredicate
    LLVM.General.AST.Linkage
    LLVM.General.AST.Name
    LLVM.General.AST.Operand
    LLVM.General.AST.RMWOperation
    LLVM.General.AST.Type
    LLVM.General.AST.Visibility
    LLVM.General.Analysis
    LLVM.General.CodeGenOpt
    LLVM.General.CodeModel
    LLVM.General.CommandLine
    LLVM.General.Context
    LLVM.General.Diagnostic
    LLVM.General.ExecutionEngine
    LLVM.General.Module
    LLVM.General.PassManager
    LLVM.General.Relocation
    LLVM.General.Target
    LLVM.General.Target.Options
    LLVM.General.Transforms

  other-modules:
    Control.Monad.AnyCont
    Control.Monad.AnyCont.Class
    Control.Monad.Trans.AnyCont
    LLVM.General.Internal.Analysis
    LLVM.General.Internal.Atomicity
    LLVM.General.Internal.Attribute
    LLVM.General.Internal.BasicBlock
    LLVM.General.Internal.CallingConvention
    LLVM.General.Internal.Coding
    LLVM.General.Internal.CommandLine
    LLVM.General.Internal.Constant
    LLVM.General.Internal.Context
    LLVM.General.Internal.DataLayout
    LLVM.General.Internal.DecodeAST
    LLVM.General.Internal.Diagnostic
    LLVM.General.Internal.EncodeAST
    LLVM.General.Internal.ExecutionEngine
    LLVM.General.Internal.FloatingPointPredicate
    LLVM.General.Internal.Function
    LLVM.General.Internal.Global
    LLVM.General.Internal.InlineAssembly
    LLVM.General.Internal.Instruction
    LLVM.General.Internal.InstructionDefs
    LLVM.General.Internal.IntegerPredicate
    LLVM.General.Internal.Metadata
    LLVM.General.Internal.Module
    LLVM.General.Internal.Operand
    LLVM.General.Internal.PassManager
    LLVM.General.Internal.RMWOperation
    LLVM.General.Internal.String
    LLVM.General.Internal.Target
    LLVM.General.Internal.Type
    LLVM.General.Internal.Value
    LLVM.General.Internal.FFI.Analysis
    LLVM.General.Internal.FFI.Assembly
    LLVM.General.Internal.FFI.BasicBlock
    LLVM.General.Internal.FFI.BinaryOperator
    LLVM.General.Internal.FFI.Builder
    LLVM.General.Internal.FFI.Cleanup
    LLVM.General.Internal.FFI.CommandLine
    LLVM.General.Internal.FFI.Constant
    LLVM.General.Internal.FFI.Context
    LLVM.General.Internal.FFI.ExecutionEngine
    LLVM.General.Internal.FFI.Function
    LLVM.General.Internal.FFI.GlobalAlias
    LLVM.General.Internal.FFI.GlobalValue
    LLVM.General.Internal.FFI.GlobalVariable
    LLVM.General.Internal.FFI.InlineAssembly
    LLVM.General.Internal.FFI.Instruction
    LLVM.General.Internal.FFI.InstructionDefs
    LLVM.General.Internal.FFI.Iterate
    LLVM.General.Internal.FFI.LLVMCTypes
    LLVM.General.Internal.FFI.Metadata
    LLVM.General.Internal.FFI.Module
    LLVM.General.Internal.FFI.PassManager
    LLVM.General.Internal.FFI.PtrHierarchy
    LLVM.General.Internal.FFI.SMDiagnostic
    LLVM.General.Internal.FFI.Target
    LLVM.General.Internal.FFI.Transforms
    LLVM.General.Internal.FFI.Type
    LLVM.General.Internal.FFI.User
    LLVM.General.Internal.FFI.Value

  include-dirs: src
  c-sources: 
    src/LLVM/General/Internal/FFI/AssemblyC.cpp
    src/LLVM/General/Internal/FFI/BuilderC.cpp
    src/LLVM/General/Internal/FFI/CommandLineC.cpp
    src/LLVM/General/Internal/FFI/ConstantC.cpp
    src/LLVM/General/Internal/FFI/FunctionC.cpp
    src/LLVM/General/Internal/FFI/GlobalAliasC.cpp
    src/LLVM/General/Internal/FFI/GlobalValueC.cpp
    src/LLVM/General/Internal/FFI/InlineAssemblyC.cpp
    src/LLVM/General/Internal/FFI/InstructionC.cpp
    src/LLVM/General/Internal/FFI/MetadataC.cpp
    src/LLVM/General/Internal/FFI/ModuleC.cpp
    src/LLVM/General/Internal/FFI/PassManagerC.cpp
    src/LLVM/General/Internal/FFI/SMDiagnosticC.cpp
    src/LLVM/General/Internal/FFI/TargetC.cpp
    src/LLVM/General/Internal/FFI/TypeC.cpp
    src/LLVM/General/Internal/FFI/ValueC.cpp

  if flag(debug)
    cc-options: -g

test-suite test
  type: exitcode-stdio-1.0
  build-depends:  
    base >= 3 && < 5,
    test-framework >= 0.5,
    test-framework-hunit >= 0.2.7,
    HUnit >= 1.2.4.2,
    test-framework-quickcheck2 >= 0.3.0.1,
    QuickCheck >= 2.5.1.1,
    llvm-general >= 0.1,
    containers >= 0.4.2.1,
    mtl >= 2.0.1.0
  hs-source-dirs: test
  extensions:
    TupleSections
    FlexibleInstances
    FlexibleContexts
  main-is: Test.hs
  other-modules:
    LLVM.General.Test.Analysis
    LLVM.General.Test.Constants
    LLVM.General.Test.DataLayout
    LLVM.General.Test.ExecutionEngine
    LLVM.General.Test.Global
    LLVM.General.Test.InlineAssembly
    LLVM.General.Test.Instructions
    LLVM.General.Test.Metadata
    LLVM.General.Test.Module
    LLVM.General.Test.Optimization
    LLVM.General.Test.Support
    LLVM.General.Test.Target
    LLVM.General.Test.Tests