packages feed

hix-0.8.0: lib/Hix/Managed/Cabal/Mock.hs

{-# language CPP #-}

module Hix.Managed.Cabal.Mock where

import Distribution.Simple (buildCompilerId, unknownCompilerInfo)
import Distribution.Simple.Compiler (AbiTag (NoAbiTag))
import Distribution.Solver.Types.PkgConfigDb (PkgConfigDb (..))
import Distribution.System (Arch (X86_64), OS (Linux), Platform (Platform))

import qualified Hix.Managed.Cabal.Data.Packages
import Hix.Managed.Cabal.Data.Packages (GhcPackages (GhcPackages))
import qualified Hix.Managed.Cabal.Data.SolveResources
import Hix.Managed.Cabal.Data.SolveResources (SolveResources (SolveResources))
import Hix.Managed.Cabal.Init (emptySolveFlags)
import Hix.Managed.Cabal.Mock.InstalledPackage (mockInstalledPackageIndex)
import qualified Hix.Managed.Cabal.Mock.SourcePackage as SourcePackage
import Hix.Managed.Cabal.Mock.SourcePackage (mockSourcePackageDb)
import Hix.Managed.Data.ManagedPackage (ManagedPackage)
import Hix.Managed.Data.Packages (Packages)

mockSolveResources ::
  Packages ManagedPackage ->
  GhcPackages ->
  SolveResources
mockSolveResources packages GhcPackages {installed, available} = do
  SolveResources {
    conf = def,
    flags = emptySolveFlags,
    platform = Platform X86_64 Linux,
    compiler = unknownCompilerInfo buildCompilerId NoAbiTag,
#if MIN_VERSION_Cabal(3,14,0)
    pkgConfigDb = PkgConfigDb mempty,
#else
    pkgConfigDb = NoPkgConfigDb,
#endif
    installedPkgIndex = mockInstalledPackageIndex installed,
    sourcePkgDb = SourcePackage.dbWithManaged packages (mockSourcePackageDb available),
    solverParams = id
  }