summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2023-01-26 18:18:50 +0000
committerMatthew Pickering <matthewtpickering@gmail.com>2023-01-27 15:04:33 +0000
commitec0049f7fbbf8b8e2fdb897a1cbaae208c1e0760 (patch)
treeae9ae08dcdeb305a05fade880c4f754db9662981
parent545bf8cf1844e2a1c18d2019d1f299ab10099873 (diff)
downloadhaskell-wip/inplace-22209.tar.gz
hadrian: Fix library-dirs, dynamic-library-dirs and static-library-dirs in inplace .conf fileswip/inplace-22209
Previously we were just throwing away the contents of the library-dirs fields but really we have to do the same thing as for include-dirs, relativise the paths into the current working directory and maintain any extra libraries the user has specified. Now the relevant section of the rts.conf file looks like: ``` library-dirs: ${pkgroot}/../rts/build ${pkgroot}/../../..//_build/stage1/rts/build /nix/store/av4c0fib4rkmb6sa1074z0rb1ciria5b-gperftools-2.10/lib /nix/store/2infxahfp9lj084xn3q9ib5ajks8447i-libffi-3.4.4/lib library-dirs-static: ${pkgroot}/../rts/build ${pkgroot}/../../..//_build/stage1/rts/build /nix/store/av4c0fib4rkmb6sa1074z0rb1ciria5b-gperftools-2.10/lib /nix/store/2infxahfp9lj084xn3q9ib5ajks8447i-libffi-3.4.4/lib dynamic-library-dirs: ${pkgroot}/../rts/build ${pkgroot}/../../..//_build/stage1/rts/build /nix/store/av4c0fib4rkmb6sa1074z0rb1ciria5b-gperftools-2.10/lib /nix/store/2infxahfp9lj084xn3q9ib5ajks8447i-libffi-3.4.4/lib ``` Fixes #22209
-rw-r--r--hadrian/src/Hadrian/Haskell/Cabal/Parse.hs7
1 files changed, 5 insertions, 2 deletions
diff --git a/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs b/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs
index f7bdf2cab9..2ab73b76c0 100644
--- a/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs
+++ b/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs
@@ -319,8 +319,11 @@ write_inplace_conf pkg_path res_path pd lbi = do
pkg_name = C.display (C.pkgName (CP.sourcePackageId installedPkgInfo))
final_ipi = installedPkgInfo {
Installed.includeDirs = concatMap fixupIncludeDir (Installed.includeDirs installedPkgInfo),
- Installed.libraryDirs = [ build_dir ],
- Installed.libraryDynDirs = [ build_dir ],
+ Installed.libraryDirs = build_dir: (concatMap fixupIncludeDir (Installed.libraryDirs installedPkgInfo)) ,
+#if MIN_VERSION_Cabal(3,8,0)
+ Installed.libraryDirsStatic = build_dir: (concatMap fixupIncludeDir (Installed.libraryDirsStatic installedPkgInfo)) ,
+#endif
+ Installed.libraryDynDirs = build_dir : (concatMap fixupIncludeDir (Installed.libraryDynDirs installedPkgInfo)) ,
Installed.dataDir = "${pkgroot}/../../../../" ++ pkg_path,
Installed.haddockHTMLs = [build_dir ++ "/doc/html/" ++ C.display (CP.sourcePackageId installedPkgInfo)],
Installed.haddockInterfaces = [build_dir ++ "/doc/html/" ++ pkg_name ++ "/" ++ pkg_name ++ ".haddock"],