Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
2.8 kB · 156 lines
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157{ lib, stdenv, toPythonModule, fetchFromGitHub, buildPythonPackage,
# build-system scikit-build-core, nanobind,
# nativeBuildInputs cmake, ninja, pkg-config,
# buildInputs dolfinx,
# dependency numpy, cffi, mpi4py, petsc4py, slepc4py, adios2, kahip, fenics-ffcx, fenics-basix, fenics-ufl,
# nativeCheckInputs scipy, matplotlib, pytestCheckHook, writableTmpDirAsHomeHook, mpiCheckPhaseHook,
# custom options withParmetis ? false,
# passthru.tests fenics-dolfinx, mpich,}:
let fenicsPackages = petsc4py.petscPackages.overrideScope ( final: prev: { slepc = final.callPackage slepc4py.override { }; adios2 = final.callPackage adios2.override { }; kahip = final.callPackage kahip.override { }; dolfinx = final.callPackage dolfinx.override { inherit withParmetis; }; } );inbuildPythonPackage rec { inherit (dolfinx) version src ; pname = "fenics-dolfinx"; pyproject = true;
pythonRelaxDeps = [ "cffi" "fenics-ufl" ];
preConfigure = '' cd python '';
dontUseCmakeConfigure = true;
build-system = [ scikit-build-core nanobind ];
nativeBuildInputs = [ cmake ninja pkg-config fenicsPackages.mpi ];
buildInputs = [ fenicsPackages.dolfinx ];
dependencies = [ numpy cffi fenics-basix fenics-ffcx fenics-ufl petsc4py fenicsPackages.slepc fenicsPackages.adios2 fenicsPackages.kahip (mpi4py.override { inherit (fenicsPackages) mpi; }) ];
doCheck = true;
nativeCheckInputs = [ scipy matplotlib pytestCheckHook writableTmpDirAsHomeHook mpiCheckPhaseHook ];
preCheck = '' rm -rf dolfinx '';
pythonImportsCheck = [ "dolfinx" ];
disabledTests = [ # require cffi<1.17 "test_cffi_expression" "test_hexahedron_mesh" # https://github.com/FEniCS/dolfinx/issues/1104 "test_cube_distance" ];
passthru = { tests = { complex = fenics-dolfinx.override { petsc4py = petsc4py.override { scalarType = "complex"; }; }; } // lib.optionalAttrs stdenv.hostPlatform.isLinux { mpich = fenics-dolfinx.override { petsc4py = petsc4py.override { mpi = mpich; }; }; }; };
meta = { homepage = "https://fenicsproject.org"; downloadPage = "https://github.com/fenics/dolfinx"; description = "Computational environment of FEniCSx and implements the FEniCS Problem Solving Environment in C++ and Python"; changelog = "https://github.com/fenics/dolfinx/releases/tag/${src.tag}"; license = with lib.licenses; [ bsd2 lgpl3Plus ]; platforms = lib.platforms.unix; maintainers = with lib.maintainers; [ qbisi ]; };}