diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2023-01-26 18:18:50 +0000 |
---|---|---|
committer | Matthew Pickering <matthewtpickering@gmail.com> | 2023-01-27 15:04:33 +0000 |
commit | ec0049f7fbbf8b8e2fdb897a1cbaae208c1e0760 (patch) | |
tree | ae9ae08dcdeb305a05fade880c4f754db9662981 | |
parent | 545bf8cf1844e2a1c18d2019d1f299ab10099873 (diff) | |
download | haskell-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.hs | 7 |
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"], |