Skip to content

Re #6540 Temporarily work around Cabal-3.11.0.0 in StackSetupShim.hs #6541

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 31, 2024
Merged
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
55 changes: 49 additions & 6 deletions src/setup-shim/StackSetupShim.hs
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,33 @@ module StackSetupShim where
import Main
#if defined(MIN_VERSION_Cabal)
#if MIN_VERSION_Cabal(3,8,1)
import Distribution.PackageDescription (PackageDescription, emptyHookedBuildInfo)
import Distribution.PackageDescription
( PackageDescription, emptyHookedBuildInfo )
#else
import "Cabal" Distribution.PackageDescription (PackageDescription, emptyHookedBuildInfo)
import "Cabal" Distribution.PackageDescription
( PackageDescription, emptyHookedBuildInfo )
#endif
#else
import Distribution.PackageDescription (PackageDescription, emptyHookedBuildInfo)
import Distribution.PackageDescription
( PackageDescription, emptyHookedBuildInfo )
#endif
import Distribution.Simple
import Distribution.Simple.Build
import Distribution.Simple.Setup (ReplFlags, fromFlag, replDistPref, replVerbosity)
import Distribution.Simple.LocalBuildInfo (LocalBuildInfo)
import System.Environment (getArgs)
import Distribution.Simple.Setup
( ReplFlags, fromFlag, replDistPref, replVerbosity )
import Distribution.Simple.LocalBuildInfo ( LocalBuildInfo )
-- | Temporary, can be removed if initialBuildSteps restored to Cabal's API.
#if defined(MIN_VERSION_Cabal)
#if MIN_VERSION_Cabal(3,11,0)
import Distribution.Simple.LocalBuildInfo
( ComponentLocalBuildInfo, componentBuildDir
, withAllComponentsInBuildOrder
)
import Distribution.Simple.Utils ( createDirectoryIfMissingVerbose )
import Distribution.Verbosity ( Verbosity )
#endif
#endif
import System.Environment ( getArgs )

mainOverride :: IO ()
mainOverride = do
Expand All @@ -39,3 +54,31 @@ stackReplHook pkg_descr lbi hooks flags args = do
| otherwise ->
fail "Misuse of running Setup.hs with stack-initial-build-steps, expected no arguments"
_ -> replHook simpleUserHooks pkg_descr lbi hooks flags args

-- | Temporary, can be removed if initialBuildSteps restored to Cabal's API.
#if defined(MIN_VERSION_Cabal)
#if MIN_VERSION_Cabal(3,11,0)
-- | Runs 'componentInitialBuildSteps' on every configured component.
initialBuildSteps ::
FilePath -- ^"dist" prefix
-> PackageDescription -- ^mostly information from the .cabal file
-> LocalBuildInfo -- ^Configuration information
-> Verbosity -- ^The verbosity to use
-> IO ()
initialBuildSteps distPref pkg_descr lbi verbosity =
withAllComponentsInBuildOrder pkg_descr lbi $ \_comp clbi ->
componentInitialBuildSteps distPref pkg_descr lbi clbi verbosity

-- | Creates the autogenerated files for a particular configured component.
componentInitialBuildSteps ::
FilePath -- ^"dist" prefix
-> PackageDescription -- ^mostly information from the .cabal file
-> LocalBuildInfo -- ^Configuration information
-> ComponentLocalBuildInfo
-> Verbosity -- ^The verbosity to use
-> IO ()
componentInitialBuildSteps _distPref pkg_descr lbi clbi verbosity = do
createDirectoryIfMissingVerbose verbosity True (componentBuildDir lbi clbi)
writeBuiltinAutogenFiles verbosity pkg_descr lbi clbi
#endif
#endif