diff options
author | Peter Simons <simons@cryp.to> | 2013-12-10 22:29:20 +0100 |
---|---|---|
committer | Peter Simons <simons@cryp.to> | 2013-12-10 22:29:20 +0100 |
commit | 2bc29e4e6d3713d106de670b55e8789267f7acc7 (patch) | |
tree | 9076082dd2f23bc9c0e97c33ad998172d07e4e4d /pkgs/build-support | |
parent | 3227c1d215ce1897bb72ab72333fa1bdd0cd1154 (diff) | |
parent | 6cd149f2a975e9db3716bc5aa0e95674064bef0b (diff) | |
download | nixlib-2bc29e4e6d3713d106de670b55e8789267f7acc7.tar nixlib-2bc29e4e6d3713d106de670b55e8789267f7acc7.tar.gz nixlib-2bc29e4e6d3713d106de670b55e8789267f7acc7.tar.bz2 nixlib-2bc29e4e6d3713d106de670b55e8789267f7acc7.tar.lz nixlib-2bc29e4e6d3713d106de670b55e8789267f7acc7.tar.xz nixlib-2bc29e4e6d3713d106de670b55e8789267f7acc7.tar.zst nixlib-2bc29e4e6d3713d106de670b55e8789267f7acc7.zip |
Merge branch 'master' into stdenv-updates.
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/cabal/default.nix | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix index 9b6d8c4e80ed..b17f720e5618 100644 --- a/pkgs/build-support/cabal/default.nix +++ b/pkgs/build-support/cabal/default.nix @@ -4,6 +4,7 @@ , enableLibraryProfiling ? false , enableSharedLibraries ? false , enableSharedExecutables ? false +, enableStaticLibraries ? true , enableCheckPhase ? stdenv.lib.versionOlder "7.4" ghc.version }: @@ -25,6 +26,9 @@ assert enableSharedExecutables -> versionOlder "7.4" ghc.version; # Our GHC 6.10.x builds do not provide sharable versions of their core libraries. assert enableSharedLibraries -> versionOlder "6.12" ghc.version; +# Our GHC 6.10.x builds do not provide sharable versions of their core libraries. +assert !enableStaticLibraries -> versionOlder "7.7" ghc.version; + { mkDerivation = args : # arguments for the individual package, can modify the defaults @@ -42,6 +46,7 @@ assert enableSharedLibraries -> versionOlder "6.12" ghc.version; x : (removeAttrs x internalAttrs) // { buildInputs = filter (y : ! (y == null)) x.buildInputs; propagatedBuildInputs = filter (y : ! (y == null)) x.propagatedBuildInputs; + propagatedUserEnvPkgs = filter (y : ! (y == null)) x.propagatedUserEnvPkgs; doCheck = enableCheckPhase && x.doCheck; }; @@ -92,6 +97,10 @@ assert enableSharedLibraries -> versionOlder "6.12" ghc.version; # have to check for its existence propagatedBuildInputs = if self.isLibrary then self.buildDepends ++ self.extraLibraries ++ self.pkgconfigDepends else []; + # By default, also propagate all dependencies to the user environment. This is required, otherwise packages would be broken, because + # GHC also needs all dependencies to be available. + propagatedUserEnvPkgs = if self.isLibrary then self.buildDepends else []; + # library directories that have to be added to the Cabal files extraLibDirs = []; @@ -128,6 +137,10 @@ assert enableSharedLibraries -> versionOlder "6.12" ghc.version; # and run any regression test suites the package might have doCheck = enableCheckPhase; + # pass the '--enable-library-vanilla' flag to cabal in the + # configure stage to enable building shared libraries + inherit enableStaticLibraries; + # pass the '--enable-shared' flag to cabal in the configure # stage to enable building shared libraries inherit enableSharedLibraries; @@ -140,6 +153,7 @@ assert enableSharedLibraries -> versionOlder "6.12" ghc.version; (enableFeature self.enableSplitObjs "split-objs") (enableFeature enableLibraryProfiling "library-profiling") (enableFeature self.enableSharedLibraries "shared") + (optional (versionOlder "7" ghc.version) (enableFeature self.enableStaticLibraries "library-vanilla")) (optional (versionOlder "7.4" ghc.version) (enableFeature self.enableSharedExecutables "executable-dynamic")) (optional (versionOlder "7" ghc.version) (enableFeature self.doCheck "tests")) ]; |