@@ -4,18 +4,33 @@ module StackSetupShim where
44import Main
55#if defined(MIN_VERSION_Cabal)
66#if MIN_VERSION_Cabal(3,8,1)
7- import Distribution.PackageDescription (PackageDescription , emptyHookedBuildInfo )
7+ import Distribution.PackageDescription
8+ ( PackageDescription , emptyHookedBuildInfo )
89#else
9- import "Cabal " Distribution.PackageDescription (PackageDescription , emptyHookedBuildInfo )
10+ import "Cabal " Distribution.PackageDescription
11+ ( PackageDescription , emptyHookedBuildInfo )
1012#endif
1113#else
12- import Distribution.PackageDescription (PackageDescription , emptyHookedBuildInfo )
14+ import Distribution.PackageDescription
15+ ( PackageDescription , emptyHookedBuildInfo )
1316#endif
1417import Distribution.Simple
1518import Distribution.Simple.Build
16- import Distribution.Simple.Setup (ReplFlags , fromFlag , replDistPref , replVerbosity )
17- import Distribution.Simple.LocalBuildInfo (LocalBuildInfo )
18- import System.Environment (getArgs )
19+ import Distribution.Simple.Setup
20+ ( ReplFlags , fromFlag , replDistPref , replVerbosity )
21+ import Distribution.Simple.LocalBuildInfo ( LocalBuildInfo )
22+ -- | Temporary, can be removed if initialBuildSteps restored to Cabal's API.
23+ #if defined(MIN_VERSION_Cabal)
24+ #if MIN_VERSION_Cabal(3,11,0)
25+ import Distribution.Simple.LocalBuildInfo
26+ ( ComponentLocalBuildInfo , componentBuildDir
27+ , withAllComponentsInBuildOrder
28+ )
29+ import Distribution.Simple.Utils ( createDirectoryIfMissingVerbose )
30+ import Distribution.Verbosity ( Verbosity )
31+ #endif
32+ #endif
33+ import System.Environment ( getArgs )
1934
2035mainOverride :: IO ()
2136mainOverride = do
@@ -39,3 +54,31 @@ stackReplHook pkg_descr lbi hooks flags args = do
3954 | otherwise ->
4055 fail " Misuse of running Setup.hs with stack-initial-build-steps, expected no arguments"
4156 _ -> replHook simpleUserHooks pkg_descr lbi hooks flags args
57+
58+ -- | Temporary, can be removed if initialBuildSteps restored to Cabal's API.
59+ #if defined(MIN_VERSION_Cabal)
60+ #if MIN_VERSION_Cabal(3,11,0)
61+ -- | Runs 'componentInitialBuildSteps' on every configured component.
62+ initialBuildSteps ::
63+ FilePath -- ^ "dist" prefix
64+ -> PackageDescription -- ^ mostly information from the .cabal file
65+ -> LocalBuildInfo -- ^ Configuration information
66+ -> Verbosity -- ^ The verbosity to use
67+ -> IO ()
68+ initialBuildSteps distPref pkg_descr lbi verbosity =
69+ withAllComponentsInBuildOrder pkg_descr lbi $ \ _comp clbi ->
70+ componentInitialBuildSteps distPref pkg_descr lbi clbi verbosity
71+
72+ -- | Creates the autogenerated files for a particular configured component.
73+ componentInitialBuildSteps ::
74+ FilePath -- ^ "dist" prefix
75+ -> PackageDescription -- ^ mostly information from the .cabal file
76+ -> LocalBuildInfo -- ^ Configuration information
77+ -> ComponentLocalBuildInfo
78+ -> Verbosity -- ^ The verbosity to use
79+ -> IO ()
80+ componentInitialBuildSteps _distPref pkg_descr lbi clbi verbosity = do
81+ createDirectoryIfMissingVerbose verbosity True (componentBuildDir lbi clbi)
82+ writeBuiltinAutogenFiles verbosity pkg_descr lbi clbi
83+ #endif
84+ #endif
0 commit comments