1
0
Fork 1
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:
Daniël de Kok 2020-05-14 06:52:32 +02:00
parent a9e3b1103c
commit e88673aa27

View file

@ -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;