name: llvm-general
version: 0.1
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
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/Instruction.h
src/LLVM/General/Internal/FFI/Value.h
src/LLVM/General/Internal/FFI/SMDiagnostic.h
src/LLVM/General/Internal/FFI/InlineAssembly.h
src/LLVM/General/Internal/FFI/Target.h
src/LLVM/General/Internal/FFI/Function.h
src/LLVM/General/Internal/FFI/GlobalValue.h
src/LLVM/General/Internal/FFI/Type.h
source-repository head
type: git
location: git://github.com/bscarlet/llvm-general.git
library
build-tools: llvm-config
ghc-options: -fwarn-unused-imports
build-depends:
base >= 3 && < 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.5.0.0,
parsec >= 3.1.3,
array >= 0.4.0.1,
setenv >= 0.1.0
extra-libraries: LLVM-3.2svn stdc++
hs-source-dirs: src
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.CodeGenOpt
LLVM.General.CodeModel
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.Phased
Control.Monad.Phased.Class
Control.Monad.Trans.Phased
Control.Monad.AnyCont
Control.Monad.AnyCont.Class
Control.Monad.Trans.AnyCont
LLVM.General.Internal.Atomicity
LLVM.General.Internal.Attribute
LLVM.General.Internal.BasicBlock
LLVM.General.Internal.CallingConvention
LLVM.General.Internal.Coding
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.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.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/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
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.5.0.0
hs-source-dirs: test
main-is: Test.hs
other-modules:
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