@@ -4,18 +4,33 @@ module StackSetupShim where
4
4
import Main
5
5
#if defined(MIN_VERSION_Cabal)
6
6
#if MIN_VERSION_Cabal(3,8,1)
7
- import Distribution.PackageDescription (PackageDescription , emptyHookedBuildInfo )
7
+ import Distribution.PackageDescription
8
+ ( PackageDescription , emptyHookedBuildInfo )
8
9
#else
9
- import "Cabal " Distribution.PackageDescription (PackageDescription , emptyHookedBuildInfo )
10
+ import "Cabal " Distribution.PackageDescription
11
+ ( PackageDescription , emptyHookedBuildInfo )
10
12
#endif
11
13
#else
12
- import Distribution.PackageDescription (PackageDescription , emptyHookedBuildInfo )
14
+ import Distribution.PackageDescription
15
+ ( PackageDescription , emptyHookedBuildInfo )
13
16
#endif
14
17
import Distribution.Simple
15
18
import 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 )
19
34
20
35
mainOverride :: IO ()
21
36
mainOverride = do
@@ -39,3 +54,31 @@ stackReplHook pkg_descr lbi hooks flags args = do
39
54
| otherwise ->
40
55
fail " Misuse of running Setup.hs with stack-initial-build-steps, expected no arguments"
41
56
_ -> 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