cabal-version:  3.0

-- WARNING: ghc-boot.cabal is automatically generated from ghc-boot.cabal.in by
-- ../../configure.  Make sure you are editing ghc-boot.cabal.in, not
-- ghc-boot.cabal.

name:           ghc-boot
version:        9.10.1
license:        BSD-3-Clause
license-file:   LICENSE
category:       GHC
maintainer:     ghc-devs@haskell.org
bug-reports:    https://gitlab.haskell.org/ghc/ghc/issues/new
synopsis:       Shared functionality between GHC and its boot libraries
description:    This library is shared between GHC, ghc-pkg, and other boot
                libraries.
                .
                A note about "GHC.Unit.Database": it only deals with the subset of
                the package database that the compiler cares about: modules
                paths etc and not package metadata like description, authors
                etc. It is thus not a library interface to ghc-pkg and is *not*
                suitable for modifying GHC package databases.
                .
                The package database format and this library are constructed in
                such a way that while ghc-pkg depends on Cabal, the GHC library
                and program do not have to depend on Cabal.
build-type:     Custom
extra-source-files: changelog.md

custom-setup
    setup-depends: base >= 3 && < 5, Cabal >= 1.6 && <3.10, directory, filepath

source-repository head
    type:     git
    location: https://gitlab.haskell.org/ghc/ghc.git
    subdir:   libraries/ghc-boot

Library
    default-language: Haskell2010
    other-extensions: DeriveGeneric, RankNTypes, ScopedTypeVariables
    default-extensions: NoImplicitPrelude

    exposed-modules:
            GHC.BaseDir
            GHC.Data.ShortText
            GHC.Data.SizedSeq
            GHC.Utils.Encoding
            GHC.Utils.Encoding.UTF8
            GHC.LanguageExtensions
            GHC.Unit.Database
            GHC.Serialized
            GHC.ForeignSrcLang
            GHC.HandleEncoding
            GHC.Platform.Host
            GHC.Settings.Utils
            GHC.UniqueSubdir
            GHC.Version

    -- reexport modules from ghc-boot-th so that packages don't have to import
    -- both ghc-boot and ghc-boot-th. It makes the dependency graph easier to
    -- understand and to refactor.
    reexported-modules:
              GHC.LanguageExtensions.Type
            , GHC.ForeignSrcLang.Type
            , GHC.Lexeme

    -- reexport platform modules from ghc-platform
    reexported-modules:
              GHC.Platform.ArchOS

    -- but done by Hadrian
    autogen-modules:
            GHC.Version
            GHC.Platform.Host

    build-depends: base       >= 4.7 && < 4.21,
                   binary     == 0.8.*,
                   bytestring >= 0.10 && < 0.13,
                   containers >= 0.5 && < 0.8,
                   directory  >= 1.2 && < 1.4,
                   filepath   >= 1.3 && < 1.6,
                   deepseq    >= 1.4 && < 1.6,
                   ghc-platform >= 0.1,
                   ghc-boot-th == 9.10.1
    if !os(windows)
        build-depends:
                   unix       >= 2.7 && < 2.9