packages feed

llvm-pretty-bc-parser-0.4.2.0: llvm-pretty-bc-parser.cabal

cabal-version:       2.4
Name:                llvm-pretty-bc-parser
Version:             0.4.2.0
License:             BSD-3-Clause
License-file:        LICENSE
Author:              Trevor Elliott <trevor@galois.com>
Maintainer:          Ryan Scott <rscott@galois.com>
                   , Kevin Quick <kquick@galois.com>
                   , Langston Barrett <langston@galois.com>
Category:            Text
Build-type:          Simple
Synopsis:            LLVM bitcode parsing library
Tested-with:         GHC==9.4, GHC==9.6, GHC==9.8

Description:
  A parser for the LLVM bitcode file format, yielding a Module from the
  llvm-pretty package.

Extra-source-files:  disasm-test/tests/*.ll

extra-doc-files: CHANGELOG.md, README.md

Flag fuzz
  Description:         Enable fuzzing harness
  Default:             False

Flag regressions
  Description:         Enable regression testing build
  Default:             False

Source-repository head
  type:                git
  location:            https://github.com/galoisinc/llvm-pretty-bc-parser

Library
  Hs-source-dirs:      src
  Exposed-modules:     Data.LLVM.CFG,
                       Data.LLVM.BitCode,
                       -- for testing:
                       Data.LLVM.Internal

  Default-language:    Haskell2010

  Other-modules:       Data.LLVM.BitCode.Assert,
                       Data.LLVM.BitCode.BitString,
                       Data.LLVM.BitCode.Bitstream,
                       Data.LLVM.BitCode.GetBits,
                       Data.LLVM.BitCode.IR,
                       Data.LLVM.BitCode.IR.Attrs
                       Data.LLVM.BitCode.IR.Blocks,
                       Data.LLVM.BitCode.IR.Constants,
                       Data.LLVM.BitCode.IR.Function,
                       Data.LLVM.BitCode.IR.Globals,
                       Data.LLVM.BitCode.IR.Metadata,
                       Data.LLVM.BitCode.IR.Module,
                       Data.LLVM.BitCode.IR.Types,
                       Data.LLVM.BitCode.IR.Values,
                       Data.LLVM.BitCode.Match,
                       Data.LLVM.BitCode.Parse,
                       Data.LLVM.BitCode.Record

  Ghc-options:         -Wall
                       -Wunbanged-strict-patterns
                       -Wcompat
                       -Wincomplete-uni-patterns
                       -Wsimplifiable-class-constraints
                       -Wpartial-fields
                       -O2
                       -funbox-strict-fields
                       -fhide-source-paths

  Build-depends:       array       >= 0.3,
                       base        >= 4.8 && < 5,
                       binary      >= 0.8,
                       bytestring  >= 0.10,
                       containers  >= 0.4,
                       fgl         >= 5.5,
                       llvm-pretty >= 0.12.1.0 && < 0.13,
                       mtl         >= 2.2.2,
                       pretty      >= 1.0.1,
                       uniplate    >= 1.6,
                       utf8-string >= 1.0

Executable llvm-disasm
  Main-is:             LLVMDis.hs
  Default-language:    Haskell2010
  Ghc-options:         -Wall
                       -Wunbanged-strict-patterns
                       -O2
                       -funbox-strict-fields
  Hs-source-dirs:      llvm-disasm
  Build-depends:       array                 >= 0.3,
                       base,
                       binary                >= 0.8,
                       bytestring,
                       containers            >= 0.4,
                       fgl                   >= 5.5,
                       fgl-visualize         >= 0.1,
                       llvm-pretty-bc-parser,
                       llvm-pretty,
                       monadLib              >= 3.7.2,
                       pretty                >= 1.0.1,
                       pretty-show           >= 1.6

test-suite unit-test
    type:                exitcode-stdio-1.0
    main-is:             Main.hs
    other-modules:       Tests.Instances,
                         Tests.ExpressionInstances,
                         Tests.FuncDataInstances,
                         Tests.PrimInstances,
                         Tests.StmtInstances,
                         Tests.TripleInstances,
                         Tests.Metadata
    hs-source-dirs:      unit-test
    default-language:    Haskell2010
    ghc-options:         -W -Wcompat
                         -Wunrecognised-warning-flags
                         -threaded
    -- other-extensions:    OverloadedStrings, ...
    build-depends: base -any,
                   containers >= 0.4,
                   HUnit -any,
                   QuickCheck -any,
                   generic-random -any,
                   tasty -any,
                   tasty-hunit -any,
                   tasty-quickcheck -any,
                   llvm-pretty -any,
                   llvm-pretty-bc-parser

Test-suite disasm-test
  type:                exitcode-stdio-1.0
  Main-is:             Main.hs
  Default-language:    Haskell2010
  hs-source-dirs:      disasm-test
  Ghc-options:         -Wall
  build-depends:       base,
                       containers,
                       process,
                       directory,
                       bytestring,
                       exceptions >= 0.10 && < 0.11,
                       filepath,
                       lens,
                       optparse-applicative >= 0.18.1.0,
                       pretty-show>= 1.6,
                       prettyprinter >= 1.7 && < 1.8,
                       string-interpolate >= 0.3 && < 0.4,
                       syb >= 0.7,
                       tasty >= 1.3,
                       tasty-expected-failure >= 0.12 && < 0.13,
                       tasty-hunit,
                       tasty-sugar >= 2.2 && < 2.3,
                       transformers >= 0.5 && < 0.7,
                       terminal-size >= 0.3 && < 0.4,
                       text,
                       versions < 7,
                       llvm-pretty,
                       llvm-pretty-bc-parser

Executable regression-test
  Main-is:             Main.hs
  Default-language:    Haskell2010
  hs-source-dirs:      regression-test
  Ghc-options:         -Wall
  build-depends:       base,
                       directory,
                       filepath,
                       foldl,
                       text,
                       turtle >= 1.6,
                       llvm-pretty,
                       llvm-pretty-bc-parser
  if flag(regressions)
      Buildable:       True
  else
      Buildable:       False

Executable fuzz-llvm-disasm
  Main-is:             Main.hs
  Default-language:    Haskell2010
  hs-source-dirs:      fuzzing
  Ghc-options:         -Wall -threaded -O2
  build-depends:       base,
                       process,
                       directory,
                       bytestring,
                       filepath,
                       temporary,
                       random,
                       containers,
                       xml,
                       time,
                       deepseq,
                       transformers,
                       llvm-pretty,
                       llvm-pretty-bc-parser
  if flag(fuzz)
      Buildable:       True
  else
      Buildable:       False