diff options
Diffstat (limited to 'pkgs/development/haskell-modules/generic-builder.nix')
-rw-r--r-- | pkgs/development/haskell-modules/generic-builder.nix | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index 23dc5054a854..14afa3dfe6b4 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -34,6 +34,8 @@ in , version, revision ? null , sha256 ? null , src ? fetchurl { url = "mirror://hackage/${pname}-${version}.tar.gz"; inherit sha256; } +, sourceRoot ? null +, setSourceRoot ? null , buildDepends ? [], setupHaskellDepends ? [], libraryHaskellDepends ? [], executableHaskellDepends ? [] , buildTarget ? "" , buildTools ? [], libraryToolDepends ? [], executableToolDepends ? [], testToolDepends ? [], benchmarkToolDepends ? [] @@ -53,7 +55,7 @@ in # TODO enable shared libs for cross-compiling , enableSharedExecutables ? false , enableSharedLibraries ? !stdenv.hostPlatform.isStatic && (ghc.enableShared or false) -, enableDeadCodeElimination ? (!stdenv.isDarwin) # TODO: use -dead_strip for darwin +, enableDeadCodeElimination ? (!stdenv.hostPlatform.isDarwin) # TODO: use -dead_strip for darwin # Disabling this for ghcjs prevents this crash: https://gitlab.haskell.org/ghc/ghc/-/issues/23235 , enableStaticLibraries ? !(stdenv.hostPlatform.isWindows || stdenv.hostPlatform.isWasm || stdenv.hostPlatform.isGhcjs) , enableHsc2hsViaAsm ? stdenv.hostPlatform.isWindows @@ -242,8 +244,8 @@ let "--with-gcc=$CC" # Clang won't work without that extra information. ] ++ [ "--package-db=$packageConfDir" - (optionalString (enableSharedExecutables && stdenv.isLinux) "--ghc-option=-optl=-Wl,-rpath=$out/${ghcLibdir}/${pname}-${version}") - (optionalString (enableSharedExecutables && stdenv.isDarwin) "--ghc-option=-optl=-Wl,-headerpad_max_install_names") + (optionalString (enableSharedExecutables && stdenv.hostPlatform.isLinux) "--ghc-option=-optl=-Wl,-rpath=$out/${ghcLibdir}/${pname}-${version}") + (optionalString (enableSharedExecutables && stdenv.hostPlatform.isDarwin) "--ghc-option=-optl=-Wl,-headerpad_max_install_names") (optionalString enableParallelBuilding (makeGhcOptions [ "-j$NIX_BUILD_CORES" "+RTS" "-A64M" "-RTS" ])) (optionalString useCpphs ("--with-cpphs=${cpphs}/bin/cpphs " + (makeGhcOptions [ "-cpp" "-pgmP${cpphs}/bin/cpphs" "-optP--cpp" ]))) (enableFeature enableLibraryProfiling "library-profiling") @@ -501,7 +503,7 @@ stdenv.mkDerivation ({ # the `$out/lib/links` directory to read-only when the build is done after the # dist directory has already been exported, which triggers an unnecessary # rebuild of modules included in the exported dist directory. - + (optionalString (stdenv.isDarwin && (enableSharedLibraries || enableSharedExecutables) && !enableSeparateIntermediatesOutput) '' + + (optionalString (stdenv.hostPlatform.isDarwin && (enableSharedLibraries || enableSharedExecutables) && !enableSeparateIntermediatesOutput) '' # Work around a limit in the macOS Sierra linker on the number of paths # referenced by any one dynamic library: # @@ -825,6 +827,8 @@ stdenv.mkDerivation ({ ; } +// optionalAttrs (args ? sourceRoot) { inherit sourceRoot; } +// optionalAttrs (args ? setSourceRoot) { inherit setSourceRoot; } // optionalAttrs (args ? preCompileBuildDriver) { inherit preCompileBuildDriver; } // optionalAttrs (args ? postCompileBuildDriver) { inherit postCompileBuildDriver; } // optionalAttrs (args ? preUnpack) { inherit preUnpack; } |