-- Initial generic-storable-plugin.cabal generated by cabal init.  For 
-- further documentation, see http://haskell.org/cabal/users-guide/

name:                derive-storable-plugin
version:             0.2.2.0
synopsis:            GHC core plugin supporting the derive-storable package.
description:         The package helps derive-storable package in forcing compile time evaluation of
                     sizes, alignments and offsets.
homepage:            https://www.github.com/mkloczko/derive-storable-plugin/
license:             MIT
license-file:        LICENSE
author:              Mateusz Kłoczko
maintainer:          mateusz.p.kloczko@gmail.com
-- copyright:           
category:            Foreign
build-type:          Simple
extra-source-files:  ChangeLog.md README.md
cabal-version:       >=1.10
tested-with:         GHC==8.0.1, GHC==8.0.2, GHC==8.2.1, GHC==8.4.1, GHC==8.6.1

source-repository head
  type:     git
  location: https://www.github.com/mkloczko/derive-storable-plugin/

library
  exposed-modules:       Foreign.Storable.Generic.Plugin
                       , Foreign.Storable.Generic.Plugin.Internal
                       , Foreign.Storable.Generic.Plugin.Internal.Error
                       , Foreign.Storable.Generic.Plugin.Internal.Compile
                       , Foreign.Storable.Generic.Plugin.Internal.GroupTypes
                       , Foreign.Storable.Generic.Plugin.Internal.Helpers
                       , Foreign.Storable.Generic.Plugin.Internal.Predicates
                       , Foreign.Storable.Generic.Plugin.Internal.Types
  -- other-modules:       
  other-extensions:    DeriveGeneric, DeriveAnyClass, PatternGuards
  build-depends:       base >=4.9 && <4.13, ghc >= 8.0 && <8.7, ghci >= 8.0 && <8.7, derive-storable >= 0.1.1 && < 0.2
  hs-source-dirs:      src
  default-language:    Haskell2010

benchmark plugin-benchmark
  type:                exitcode-stdio-1.0
  hs-source-dirs:      benchmark/
  default-language:    Haskell2010
  other-modules:       TestCases, TestCasesOptimized
  Main-is:             Main.hs
  build-depends:       base >= 4.9 && < 4.13, deepseq, criterion >= 1.1.0
                    ,  derive-storable, derive-storable-plugin
test-suite ids-concrete
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test/ids/Concrete
  default-language:    Haskell2010
  other-modules:       Types, Instances
  Main-is:             Main.hs
  build-depends:       base >= 4.9 && < 4.13, ghc >= 8.0 && <8.7, ghci >= 8.0 && <8.7, ghc-paths
                    ,  derive-storable, derive-storable-plugin, hspec >= 2.4, QuickCheck >= 2.10

test-suite ids-handwritten
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test/ids/Handwritten
  default-language:    Haskell2010
  other-modules:       Types, Instances
  Main-is:             Main.hs
  build-depends:       base >= 4.9 && < 4.13, ghc >= 8.0 && <8.7, ghci >= 8.0 && <8.7, ghc-paths
                    ,  derive-storable, derive-storable-plugin, hspec >= 2.4, QuickCheck >= 2.10

test-suite ids-newtype
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test/ids/NewType
  default-language:    Haskell2010
  other-modules:       Types, Instances
  Main-is:             Main.hs
  build-depends:       base >= 4.9 && < 4.13, ghc >= 8.0 && <8.7, ghci >= 8.0 && <8.7, ghc-paths
                    ,  derive-storable, derive-storable-plugin, hspec >= 2.4, QuickCheck >= 2.10

test-suite ids-parametrised-spec
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test/ids/ParametrisedSpec
  default-language:    Haskell2010
  other-modules:       Types, Instances, Usage
  Main-is:             Main.hs
  build-depends:       base >= 4.9 && < 4.13, ghc >= 8.0 && <8.7, ghci >= 8.0 && <8.7, ghc-paths
                    ,  derive-storable, derive-storable-plugin, hspec >= 2.4, QuickCheck >= 2.10

test-suite ids-typesynonym
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test/ids/TypeSynonym
  default-language:    Haskell2010
  other-modules:       Types, Instances
  Main-is:             Main.hs
  build-depends:       base >= 4.9 && < 4.13, ghc >= 8.0 && <8.7, ghci >= 8.0 && <8.7, ghc-paths
                    ,  derive-storable, derive-storable-plugin, hspec >= 2.4, QuickCheck >= 2.10
