Skip to content

Commit

Permalink
Account for .buildinfo in repl when build-type: Configure (#9440)
Browse files Browse the repository at this point in the history
In `autoconfUserHooks` we were not updating the `preRepl` hook to read
additional build information from /package/@.buildinfo@.

Additionally updates `autoconfUserHooks` to read additional build info
information for the remaining pre-hooks that are not pre-conf.

Fixes #9401

(cherry picked from commit ee1e6b8)

# Conflicts:
#	Cabal/src/Distribution/Simple.hs
  • Loading branch information
alt-romes authored and mergify[bot] committed Jan 12, 2024
1 parent f1a168a commit 44e2b28
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 2 deletions.
43 changes: 41 additions & 2 deletions Cabal/src/Distribution/Simple.hs
Original file line number Diff line number Diff line change
Expand Up @@ -576,14 +576,14 @@ simpleUserHooks =
--
-- * 'postConf' runs @.\/configure@, if present.
--
-- * the pre-hooks 'preBuild', 'preClean', 'preCopy', 'preInst',
-- 'preReg' and 'preUnreg' read additional build information from
-- * the pre-hooks, except for pre-conf, read additional build information from
-- /package/@.buildinfo@, if present.
--
-- Thus @configure@ can use local system information to generate
-- /package/@.buildinfo@ and possibly other files.

autoconfUserHooks :: UserHooks
<<<<<<< HEAD
autoconfUserHooks
= simpleUserHooks
{
Expand All @@ -608,6 +608,45 @@ autoconfUserHooks
then runConfigureScript verbosity
flags lbi
else die' verbosity "configure script not found."
=======
autoconfUserHooks =
simpleUserHooks
{ postConf = defaultPostConf
, preBuild = readHookWithArgs buildVerbosity buildDistPref
, preRepl = readHookWithArgs replVerbosity replDistPref
, preCopy = readHookWithArgs copyVerbosity copyDistPref
, preClean = readHook cleanVerbosity cleanDistPref
, preInst = readHook installVerbosity installDistPref
, preHscolour = readHook hscolourVerbosity hscolourDistPref
, preHaddock = readHookWithArgs haddockVerbosity haddockDistPref
, preReg = readHook regVerbosity regDistPref
, preUnreg = readHook regVerbosity regDistPref
, preTest = readHookWithArgs testVerbosity testDistPref
, preBench = readHookWithArgs benchmarkVerbosity benchmarkDistPref
}
where
defaultPostConf
:: Args
-> ConfigFlags
-> PackageDescription
-> LocalBuildInfo
-> IO ()
defaultPostConf args flags pkg_descr lbi =
do
let verbosity = fromFlag (configVerbosity flags)
baseDir lbi' =
fromMaybe
""
(takeDirectory <$> cabalFilePath lbi')
confExists <- doesFileExist $ (baseDir lbi) </> "configure"
if confExists
then
runConfigureScript
verbosity
flags
lbi
else dieWithException verbosity ConfigureScriptNotFound
>>>>>>> ee1e6b81c (Account for .buildinfo in repl when build-type: Configure (#9440))

pbi <- getHookedBuildInfo verbosity (buildDir lbi)
sanityCheckHookedBuildInfo verbosity pkg_descr pbi
Expand Down
11 changes: 11 additions & 0 deletions changelog.d/issue-9401
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
synopsis: Account for .buildinfo in repl, test, and bench
packages: Cabal
prs: #9440
issues: #9401

description: {

Generated <project>.buildinfo is now respected in cabal repl, cabal test and cabal bench.

}

0 comments on commit 44e2b28

Please sign in to comment.