@@ -171,6 +171,15 @@ defaultMainWithSetupHooksArgs setupHooks verbHandles =
171171 , hscolourHook = setup_hscolourHook
172172 }
173173 where
174+ preBuildHook =
175+ case SetupHooks. preBuildComponentRules (SetupHooks. buildHooks setupHooks) of
176+ Nothing -> const $ return []
177+ Just pbcRules -> \ pbci -> runPreBuildHooks verbHandles pbci pbcRules
178+ postBuildHook =
179+ case SetupHooks. postBuildComponentHook (SetupHooks. buildHooks setupHooks) of
180+ Nothing -> const $ return ()
181+ Just hk -> hk
182+
174183 setup_confHook
175184 :: (GenericPackageDescription , HookedBuildInfo )
176185 -> ConfigFlags
@@ -188,13 +197,14 @@ defaultMainWithSetupHooksArgs setupHooks verbHandles =
188197 -> BuildFlags
189198 -> IO ()
190199 setup_buildHook pkg_descr lbi hooks flags =
191- build_setupHooks
192- (SetupHooks. buildHooks setupHooks)
193- verbHandles
194- pkg_descr
195- lbi
196- flags
197- (allSuffixHandlers hooks)
200+ void $
201+ build_setupHooks
202+ (preBuildHook, postBuildHook)
203+ verbHandles
204+ pkg_descr
205+ lbi
206+ flags
207+ (allSuffixHandlers hooks)
198208
199209 setup_copyHook
200210 :: PackageDescription
@@ -229,14 +239,15 @@ defaultMainWithSetupHooksArgs setupHooks verbHandles =
229239 -> [String ]
230240 -> IO ()
231241 setup_replHook pkg_descr lbi hooks flags args =
232- repl_setupHooks
233- (SetupHooks. buildHooks setupHooks)
234- verbHandles
235- pkg_descr
236- lbi
237- flags
238- (allSuffixHandlers hooks)
239- args
242+ void $
243+ repl_setupHooks
244+ preBuildHook
245+ verbHandles
246+ pkg_descr
247+ lbi
248+ flags
249+ (allSuffixHandlers hooks)
250+ args
240251
241252 setup_haddockHook
242253 :: PackageDescription
@@ -245,13 +256,14 @@ defaultMainWithSetupHooksArgs setupHooks verbHandles =
245256 -> HaddockFlags
246257 -> IO ()
247258 setup_haddockHook pkg_descr lbi hooks flags =
248- haddock_setupHooks
249- (SetupHooks. buildHooks setupHooks)
250- verbHandles
251- pkg_descr
252- lbi
253- (allSuffixHandlers hooks)
254- flags
259+ void $
260+ haddock_setupHooks
261+ preBuildHook
262+ verbHandles
263+ pkg_descr
264+ lbi
265+ (allSuffixHandlers hooks)
266+ flags
255267
256268 setup_hscolourHook
257269 :: PackageDescription
@@ -260,13 +272,14 @@ defaultMainWithSetupHooksArgs setupHooks verbHandles =
260272 -> HscolourFlags
261273 -> IO ()
262274 setup_hscolourHook pkg_descr lbi hooks flags =
263- hscolour_setupHooks
264- (SetupHooks. buildHooks setupHooks)
265- verbHandles
266- pkg_descr
267- lbi
268- (allSuffixHandlers hooks)
269- flags
275+ void $
276+ hscolour_setupHooks
277+ preBuildHook
278+ verbHandles
279+ pkg_descr
280+ lbi
281+ (allSuffixHandlers hooks)
282+ flags
270283
271284-- | A customizable version of 'defaultMain'.
272285defaultMainWithHooks :: UserHooks -> IO ()
@@ -930,12 +943,16 @@ simpleUserHooksWithHandles verbHandles =
930943 , testHook = defaultTestHook verbHandles
931944 , benchHook = defaultBenchHook verbHandles
932945 , cleanHook = \ p _ _ f -> clean verbHandles p f
933- , hscolourHook = \ p l h f -> hscolour_setupHooks SetupHooks. noBuildHooks verbHandles p l (allSuffixHandlers h) f
934- , haddockHook = \ p l h f -> haddock_setupHooks SetupHooks. noBuildHooks verbHandles p l (allSuffixHandlers h) f
946+ , hscolourHook = \ p l h f -> void $ hscolour_setupHooks noBuildHooks verbHandles p l (allSuffixHandlers h) f
947+ , haddockHook = \ p l h f -> void $ haddock_setupHooks noBuildHooks verbHandles p l (allSuffixHandlers h) f
935948 , regHook = defaultRegHook verbHandles
936949 , unregHook = \ p l _ f -> unregisterWithHandles verbHandles p l f
937950 }
938951 where
952+ noBuildHooks pbci@ (SetupHooks. PreBuildComponentInputs {SetupHooks. localBuildInfo = lbi}) =
953+ builtinPreBuildHooks
954+ (buildType (localPkgDescr lbi))
955+ pbci
939956 finalChecks _args flags pkg_descr lbi =
940957 checkForeignDeps pkg_descr lbi (modifyVerbosityFlags lessVerbose verbosity)
941958 where
@@ -1155,13 +1172,14 @@ defaultBuildHook
11551172 -> BuildFlags
11561173 -> IO ()
11571174defaultBuildHook verbHandles pkg_descr localbuildinfo hooks flags =
1158- build_setupHooks
1159- SetupHooks. noBuildHooks
1160- verbHandles
1161- pkg_descr
1162- localbuildinfo
1163- flags
1164- (allSuffixHandlers hooks)
1175+ void $
1176+ build_setupHooks
1177+ (builtinPreBuildHooks (buildType pkg_descr), const $ pure () )
1178+ verbHandles
1179+ pkg_descr
1180+ localbuildinfo
1181+ flags
1182+ (allSuffixHandlers hooks)
11651183
11661184defaultReplHook
11671185 :: VerbosityHandles
@@ -1172,14 +1190,15 @@ defaultReplHook
11721190 -> [String ]
11731191 -> IO ()
11741192defaultReplHook verbHandles pkg_descr localbuildinfo hooks flags args =
1175- repl_setupHooks
1176- SetupHooks. noBuildHooks
1177- verbHandles
1178- pkg_descr
1179- localbuildinfo
1180- flags
1181- (allSuffixHandlers hooks)
1182- args
1193+ void $
1194+ repl_setupHooks
1195+ (builtinPreBuildHooks (buildType pkg_descr))
1196+ verbHandles
1197+ pkg_descr
1198+ localbuildinfo
1199+ flags
1200+ (allSuffixHandlers hooks)
1201+ args
11831202
11841203defaultRegHook
11851204 :: VerbosityHandles
0 commit comments