Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 12 additions & 8 deletions Setup.hs
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
#!/usr/bin/runhaskell
#!/usr/bin/runhaskell
module Main where

import Control.Monad
import Data.Char
import Data.List
import Data.Maybe
import Data.String

import qualified Distribution.InstalledPackageInfo as I
import qualified Distribution.ModuleName as ModuleName
Expand All @@ -13,6 +14,7 @@ import Distribution.Simple
import Distribution.Simple.BuildPaths
import Distribution.Simple.Compiler
import Distribution.Simple.LocalBuildInfo
import Distribution.Simple.PreProcess
import Distribution.Simple.Program
import Distribution.Simple.Program.Ar
import Distribution.Simple.Program.Ld
Expand Down Expand Up @@ -183,7 +185,9 @@ buildGHCiFix verb pkgDesc lbi lib =
hsObjs = map ((bDir </>) . (<.> "o")) ms
lname = getHSLibraryName $ componentUnitId clbi
stubObjs <- fmap catMaybes $
mapM (findFileWithExtension ["o"] [bDir]) $ map (++ "_stub") ms
-- fromString is for compatibility between String (Cabal-3.10)
-- and Suffix (Cabal-3.12)
mapM (findFileWithExtension [fromString "o"] [bDir]) $ map (++ "_stub") ms
case os of
"mingw32" -> do
createArLibArchive verb lbi (bDir </> lname <.> "a") (stubObjs ++ hsObjs)
Expand Down Expand Up @@ -232,7 +236,7 @@ copyWithQt pkgDesc lbi hooks flags = do
-- Stack looks in the non-dyn lib directory
installOrdinaryFile verb (bDir </> file) (libdir instDirs </> file)

regWithQt ::
regWithQt ::
PackageDescription -> LocalBuildInfo -> UserHooks -> RegisterFlags -> IO ()
regWithQt pkg@PackageDescription { library = Just lib } lbi _ flags = do
let verb = fromFlag $ regVerbosity flags
Expand Down Expand Up @@ -266,7 +270,7 @@ regWithQt pkg@PackageDescription { library = Just lib } lbi _ flags = do
opts = defaultRegisterOptions
in registerPackage verb comp progs pkgDb instPkgInfo' opts
regWithQt pkgDesc _ _ flags =
setupMessage (fromFlag $ regVerbosity flags)
setupMessage (fromFlag $ regVerbosity flags)
"Package contains no library to register:" (packageId pkgDesc)

instWithQt ::
Expand All @@ -289,16 +293,16 @@ class HasBuildInfo a where
mapBI :: (BuildInfo -> BuildInfo) -> a -> a

instance HasBuildInfo Library where
mapBI f x = x {libBuildInfo = f $ libBuildInfo x}
mapBI f x = x {libBuildInfo = f $ libBuildInfo x}

instance HasBuildInfo Executable where
mapBI f x = x {buildInfo = f $ buildInfo x}
mapBI f x = x {buildInfo = f $ buildInfo x}

instance HasBuildInfo TestSuite where
mapBI f x = x {testBuildInfo = f $ testBuildInfo x}
mapBI f x = x {testBuildInfo = f $ testBuildInfo x}

instance HasBuildInfo Benchmark where
mapBI f x = x {benchmarkBuildInfo = f $ benchmarkBuildInfo x}
mapBI f x = x {benchmarkBuildInfo = f $ benchmarkBuildInfo x}

maybeMapM :: (Monad m) => (a -> m b) -> (Maybe a) -> m (Maybe b)
maybeMapM f = maybe (return Nothing) $ liftM Just . f
Expand Down
3 changes: 1 addition & 2 deletions hsqml.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,7 @@ Custom-Setup
Setup-depends:
base == 4.*,
template-haskell == 2.*,
Cabal >= 3.8 && < 3.12,
-- Cabal 3.12 changes type of 'findFileWithExtension'
Cabal >= 3.8,
filepath >= 1.4.300 && < 1.5

common extensions
Expand Down
Loading