From dc358bbab312e1788564fbb36f835347c21792c0 Mon Sep 17 00:00:00 2001 From: Alex Tunstall Date: Tue, 9 Sep 2025 06:25:34 +0100 Subject: [PATCH 1/2] Honour CABALDIR when installing microhs libraries --- src/MicroCabal/Backend/MHS.hs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/MicroCabal/Backend/MHS.hs b/src/MicroCabal/Backend/MHS.hs index f7e2478..3544b55 100644 --- a/src/MicroCabal/Backend/MHS.hs +++ b/src/MicroCabal/Backend/MHS.hs @@ -206,7 +206,8 @@ mhsInstallLib env (Section _ _ glob) (Section _ name _) = do initDB env let vers = getVersion glob "version" namever = distDir env ++ "/" ++ name ++ "-" ++ showVersion vers - mhs env $ "-Q " ++ namever ++ ".pkg" + mhsDir <- getMhsDir env + mhs env $ "-Q " ++ namever ++ ".pkg " ++ mhsDir --- -- XXX From 3898e5f0596a7391818a0a2cfa994317cda62479 Mon Sep 17 00:00:00 2001 From: Alex Tunstall Date: Tue, 9 Sep 2025 07:35:27 +0100 Subject: [PATCH 2/2] Set the mhs package search path explicitly Otherwise, mhs fails to find packages unless the correct search path was hardwired into the binary via the Paths_MicroHs module. --- src/MicroCabal/Backend/MHS.hs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/MicroCabal/Backend/MHS.hs b/src/MicroCabal/Backend/MHS.hs index 3544b55..17f48a4 100644 --- a/src/MicroCabal/Backend/MHS.hs +++ b/src/MicroCabal/Backend/MHS.hs @@ -129,9 +129,10 @@ mhsBuildExe env (Section _ _ gflds) (Section _ name flds) = do mkdir env $ distDir env binMhs mainIs' <- findMainIs env srcDirs mainIs stdArgs <- setupStdArgs env flds + mhsDir <- getMhsDir env let args = unwords $ stdArgs ++ csrc ++ - ["-z", "-a.","-o" ++ bin, mainIs'] + ["-z", "-a"++mhsDir,"-o" ++ bin, mainIs'] message env 0 $ "Build " ++ bin ++ " with mhs" mhs env args @@ -169,6 +170,7 @@ mhsBuildLib :: Env -> Section -> Section -> IO () mhsBuildLib env (Section _ _ glob) (Section _ name flds) = do initDB env stdArgs <- setupStdArgs env flds + mhsDir <- getMhsDir env let mdls = getFieldStrings flds [] "exposed-modules" omdls = getFieldStrings flds [] "other-modules" vers = getVersion glob "version" @@ -181,7 +183,7 @@ mhsBuildLib env (Section _ _ glob) (Section _ name flds) = do ["-P" ++ namever, "-o" ++ pkgfn] ++ stdArgs ++ - ["-a."] ++ + ["-a" ++ mhsDir] ++ mdls isMdl (' ':_) = True -- Relies on -L output format isMdl _ = False