module Hix.Managed.Cabal.Mock where import Distribution.Simple (buildCompilerId, unknownCompilerInfo) import Distribution.Simple.Compiler (AbiTag (NoAbiTag)) import Distribution.Solver.Types.PkgConfigDb (PkgConfigDb (NoPkgConfigDb)) import Distribution.System (Arch (X86_64), OS (Linux), Platform (Platform)) import Hix.Managed.Data.ManagedPackage (ManagedPackage) import Hix.Managed.Data.Packages (Packages) 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) mockSolveResources :: Packages ManagedPackage -> GhcPackages -> SolveResources mockSolveResources :: Packages ManagedPackage -> GhcPackages -> SolveResources mockSolveResources Packages ManagedPackage packages GhcPackages {InstalledPackages installed :: InstalledPackages installed :: GhcPackages -> InstalledPackages installed, SourcePackages available :: SourcePackages available :: GhcPackages -> SourcePackages available} = do SolveResources { conf :: SolveConfig conf = SolveConfig forall a. Default a => a def, flags :: SolveFlags flags = SolveFlags emptySolveFlags, platform :: Platform platform = Arch -> OS -> Platform Platform Arch X86_64 OS Linux, compiler :: CompilerInfo compiler = CompilerId -> AbiTag -> CompilerInfo unknownCompilerInfo CompilerId buildCompilerId AbiTag NoAbiTag, pkgConfigDb :: PkgConfigDb pkgConfigDb = PkgConfigDb NoPkgConfigDb, installedPkgIndex :: InstalledPackageIndex installedPkgIndex = InstalledPackages -> InstalledPackageIndex mockInstalledPackageIndex InstalledPackages installed, sourcePkgDb :: SourcePackageDb sourcePkgDb = Packages ManagedPackage -> SourcePackageDb -> SourcePackageDb SourcePackage.dbWithManaged Packages ManagedPackage packages (SourcePackages -> SourcePackageDb mockSourcePackageDb SourcePackages available), solverParams :: DepResolverParams -> DepResolverParams solverParams = DepResolverParams -> DepResolverParams forall a. a -> a id }