name: llvm-hs-pure
version: 5.0.0
license: BSD3
license-file: LICENSE
author: Anthony Cowley, Stephen Diehl, Moritz Kiefer <moritz.kiefer@purelyfunctional.org>, Benjamin S. Scarlet
maintainer: Anthony Cowley, Stephen Diehl, Moritz Kiefer <moritz.kiefer@purelyfunctional.org>
copyright: (c) 2013 Benjamin S. Scarlet and Google Inc.
homepage: http://github.com/llvm-hs/llvm-hs/
bug-reports: http://github.com/llvm-hs/llvm-hs/issues
build-type: Simple
stability: experimental
cabal-version: >= 1.8
category: Compilers/Interpreters, Code Generation
synopsis: Pure Haskell LLVM functionality (no FFI).
description:
  llvm-hs-pure is a set of pure Haskell types and functions for interacting with LLVM <http://llvm.org/>.
  It includes an ADT to represent LLVM IR (<http://llvm.org/docs/LangRef.html>). The llvm-hs package
  builds on this one with FFI bindings to LLVM, but llvm-hs-pure does not require LLVM to be available.
tested-with: GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2
extra-source-files: CHANGELOG.md

source-repository head
  type: git
  location: git://github.com/llvm-hs/llvm-hs.git
  branch: llvm-5

flag semigroups
  description: Add semigroups to build-depends for Data.List.NonEmpty. This will be selected automatically by cabal.
  default: False

library
  ghc-options: -Wall
  if flag(semigroups)
    build-depends:
      base >= 4.7 && < 4.9,
      semigroups >= 0.18 && < 0.19
  else
    build-depends:
      base >= 4.9 && < 5
  build-depends:
    attoparsec >= 0.13,
    bytestring >= 0.10 && < 0.11,
    transformers >= 0.3 && < 0.6,
    transformers-compat >= 0.4,
    mtl >= 2.1,
    template-haskell >= 2.5.0.0,
    containers >= 0.4.2.1
  hs-source-dirs: src
  extensions:
    NoImplicitPrelude
    TupleSections
    DeriveDataTypeable
    DeriveGeneric
    EmptyDataDecls
    FlexibleContexts
    FlexibleInstances
    StandaloneDeriving
    ConstraintKinds
  exposed-modules:
    LLVM.AST
    LLVM.AST.AddrSpace
    LLVM.AST.InlineAssembly
    LLVM.AST.Attribute
    LLVM.AST.ParameterAttribute
    LLVM.AST.FunctionAttribute
    LLVM.AST.CallingConvention
    LLVM.AST.Constant
    LLVM.AST.DataLayout
    LLVM.AST.Float
    LLVM.AST.FloatingPointPredicate
    LLVM.AST.Global
    LLVM.AST.Instruction
    LLVM.AST.IntegerPredicate
    LLVM.AST.Linkage
    LLVM.AST.Name
    LLVM.AST.Operand
    LLVM.AST.RMWOperation
    LLVM.AST.ThreadLocalStorage
    LLVM.AST.Type
    LLVM.AST.Visibility
    LLVM.AST.DLL
    LLVM.AST.COMDAT
    LLVM.DataLayout
    LLVM.Prelude
    LLVM.TH

test-suite test
  type: exitcode-stdio-1.0
  if flag(semigroups)
    build-depends:
      base >= 4.7 && < 4.9,
      semigroups >= 0.18 && < 0.19
  else
    build-depends:
      base >= 4.9 && < 5
  build-depends:
    tasty >= 0.11,
    tasty-hunit >= 0.9,
    tasty-quickcheck >= 0.8,
    llvm-hs-pure,
    transformers >= 0.3,
    transformers-compat >= 0.4,
    containers >= 0.4.2.1,
    mtl >= 2.1
  hs-source-dirs: test
  extensions:
    TupleSections
    FlexibleInstances
    FlexibleContexts
  main-is: Test.hs
  other-modules:
    LLVM.Test.DataLayout
    LLVM.Test.Tests