mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-16 07:48:58 +00:00
mkl: fix expectation of MKLROOT being set in pkg-config files
The Intel MKL pkg-config files did not work, because they expect that the MKLROOT environment variable is set. This change replaces occurences by the actual path of MKL in the Nix store. Since the pkg-config files seem to break quite frequently after upgrades, add a post-install check to validate the pkg-config files.
This commit is contained in:
parent
a9e3b1103c
commit
e88673aa27
|
@ -1,4 +1,12 @@
|
|||
{ stdenvNoCC, fetchurl, rpmextract, undmg, darwin, enableStatic ? false }:
|
||||
{ stdenvNoCC
|
||||
, fetchurl
|
||||
, pkgconfig
|
||||
, rpmextract
|
||||
, undmg
|
||||
, darwin
|
||||
, enableStatic ? false
|
||||
}:
|
||||
|
||||
/*
|
||||
For details on using mkl as a blas provider for python packages such as numpy,
|
||||
numexpr, scipy, etc., see the Python section of the NixPkgs manual.
|
||||
|
@ -44,6 +52,10 @@ in stdenvNoCC.mkDerivation {
|
|||
else
|
||||
[ rpmextract ];
|
||||
|
||||
installCheckInputs = [ pkgconfig ];
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
buildPhase = if stdenvNoCC.isDarwin then ''
|
||||
for f in Contents/Resources/pkg/*.tgz; do
|
||||
tar xzvf $f
|
||||
|
@ -77,6 +89,7 @@ in stdenvNoCC.mkDerivation {
|
|||
bn=$(basename $f)
|
||||
substituteInPlace $f \
|
||||
--replace "prefix=<INSTALLDIR>/mkl" "prefix=$out" \
|
||||
--replace $\{MKLROOT} "$out" \
|
||||
--replace "lib/intel64_lin" "lib"
|
||||
done
|
||||
|
||||
|
@ -139,6 +152,11 @@ in stdenvNoCC.mkDerivation {
|
|||
install_name_tool -change @rpath/libtbbmalloc.dylib $out/lib/libtbbmalloc.dylib $out/lib/libtbbmalloc_proxy.dylib
|
||||
'';
|
||||
|
||||
# Validate pkgconfig files, since they break often on updates.
|
||||
installCheckPhase = ''
|
||||
pkg-config --validate $out/lib/pkgconfig/*.pc
|
||||
'';
|
||||
|
||||
# Per license agreement, do not modify the binary
|
||||
dontStrip = true;
|
||||
dontPatchELF = true;
|
||||
|
|
Loading…
Reference in a new issue