cabal-version:       3.0
name:                MicroHs
version:             0.9.11.0
synopsis:            A compiler for Haskell
license:             Apache-2.0
license-file:        LICENSE
copyright:           2023,2024 Lennart Augustsson
category:            language
author:              lennart@augustsson.net
maintainer:          lennart@augustsson.net
stability:           experimental
description:         A compiler for an extended subset of Haskell-2010.
                     The compiler translates to combinators and can compile itself.
build-type:          Simple

extra-source-files:
      LICENSE
      Example.hs
      Makefile
      README.md
      Tools/convertX.sh
      Tools/Addcombs.hs
      Tools/Compress.hs
      generated/mhs.c
      ghc/**/*.hs
      lib/**/*.hs
      src/runtime/*.c
      src/runtime/*.h
      tests/Makefile
      tests/*.hs
      tests/*.ref

data-files:
      lib/**/*.hs

source-repository head
    type:     git
    location: https://github.com/augustss/MicroHs

executable mhs
  default-language:    Haskell98
  ghc-options:         -Wall -Wno-unrecognised-warning-flags -Wno-x-partial -main-is MicroHs.Main
                       -fwrite-ide-info -Wno-deprecated -Wno-deprecations
  main-is:             MicroHs/Main.hs
  default-extensions:  ScopedTypeVariables PatternGuards TypeSynonymInstances MultiParamTypeClasses
                       FlexibleInstances BangPatterns
  other-modules:       MicroHs.Abstract
                       MicroHs.Compile
                       MicroHs.CompileCache
                       MicroHs.Deriving
                       MicroHs.Desugar
                       MicroHs.EncodeData
                       MicroHs.Exp
                       MicroHs.ExpPrint
                       MicroHs.Expr
                       MicroHs.FFI
                       MicroHs.Flags
                       MicroHs.Fixity
                       MicroHs.Graph
                       MicroHs.Ident
                       MicroHs.IdentMap
                       MicroHs.Instances
                       MicroHs.Interactive
                       MicroHs.Lex
                       MicroHs.List
                       MicroHs.MakeCArray
                       MicroHs.Package
                       MicroHs.Parse
                       MicroHs.StateIO
                       MicroHs.SymTab
                       MicroHs.TCMonad
                       MicroHs.Translate
                       MicroHs.TypeCheck
                       MicroHs.TargetConfig
                       Text.ParserComb
                       System.Console.SimpleReadline
                       Data.Double
                       Data.Integer
                       Compat
                       PrimTable
                       System.IO.MD5
                       System.IO.Serialize
                       System.IO.TimeMilli
                       System.Compress
                       Paths_MicroHs
  autogen-modules:     Paths_MicroHs
  if impl(ghc)
    hs-source-dirs:    ghc src
    build-depends:     base         >= 4.10 && < 4.22,
                       containers   >= 0.5 && < 0.8,
                       deepseq      >= 1.1 && < 1.6,
                       ghc-prim     >= 0.5 && < 0.12,
                       haskeline    >= 0.8 && < 0.9,
                       mtl          >= 2.0 && < 2.4,
                       time         >= 1.1 && < 1.15,
                       pretty       >= 1.0 && < 1.2,
                       process      >= 1.6 && < 1.8,
                       directory    >= 1.2 && < 1.5,
-- Cabal does not recognize mhs as a valid compiler
-- (there is a pull request from Apr 9 to make it so).
--  if impl(mhs)
--    hs-source-dirs:    src lib lib/simple-readline