···
assert blas.isILP64 == lapack.isILP64;
+
stdenv.mkDerivation (finalAttrs: {
owner = "Reference-ScaLAPACK";
+
tag = "v${finalAttrs.version}";
hash = "sha256-KDMW/D7ubGaD2L7eTwULJ04fAYDPAKl8xKPZGZMkeik=";
+
inherit (blas) isILP64;
+
tests.pkg-config = testers.hasPkgConfigModules {
+
package = finalAttrs.finalPackage;
__structuredAttrs = true;
···
# Required to activate ILP64.
# See https://github.com/Reference-ScaLAPACK/scalapack/pull/19
+
postPatch = lib.optionalString finalAttrs.passthru.isILP64 ''
sed -i 's/INTSZ = 4/INTSZ = 8/g' TESTING/EIG/* TESTING/LIN/*
sed -i 's/INTGSZ = 4/INTGSZ = 8/g' TESTING/EIG/* TESTING/LIN/*
···
nativeCheckInputs = [ mpiCheckPhaseHook ];
+
propagatedBuildInputs = [
# xslu and xsllt tests seem to time out on x86_64-darwin.
# this line is left so those who force installation on x86_64-darwin can still build
doCheck = !(stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform.isDarwin);
+
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
+
(lib.cmakeFeature "LAPACK_LIBRARIES" "-llapack")
+
(lib.cmakeFeature "BLAS_LIBRARIES" "-lblas")
+
(lib.cmakeFeature "CMAKE_C_FLAGS" "${lib.concatStringsSep " " [
+
"-Wno-implicit-function-declaration"
+
(lib.optionalString finalAttrs.passthru.isILP64 "-DInt=long")
+
++ lib.optionals finalAttrs.passthru.isILP64 [
+
(lib.cmakeFeature "CMAKE_Fortran_FLAGS" "-fdefault-integer-8")
# Increase individual test timeout from 1500s to 10000s because hydra's builds
# sometimes fail due to this
···
# _IMPORT_PREFIX, used to point to lib, points to dev output. Every package using the generated
# cmake file will thus look for the library in the dev output instead of out.
# Use the absolute path to $out instead to fix the issue.
+
substituteInPlace $dev/lib/cmake/scalapack-${finalAttrs.version}/scalapack-targets-release.cmake \
--replace "\''${_IMPORT_PREFIX}" "$out"
homepage = "http://www.netlib.org/scalapack/";
description = "Library of high-performance linear algebra routines for parallel distributed memory machines";
+
license = lib.licenses.bsd3;
+
platforms = lib.platforms.unix;
+
pkgConfigModules = [ "scalapack" ];
+
maintainers = with lib.maintainers; [
···
# xslu and xsllt tests fail on x86 darwin
broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64;