fix(python): added temporary patch to let python bindings work on mac

Mirroring what was done in fourdst (see fourdst/tree/v0.8.5) we have added a temporary patch to let python bindings work on mac while the meson-python folks resolve the duplicate rpath issue in the shared object file
This commit is contained in:
2025-11-03 15:10:03 -05:00
parent 0adc340767
commit 3c80ccc77f
15 changed files with 1437 additions and 184 deletions

View File

@@ -23,30 +23,30 @@ PYBIND11_MODULE(gridfire, m) {
auto typeMod = m.def_submodule("type", "GridFire type bindings");
register_type_bindings(typeMod);
// auto partitionMod = m.def_submodule("partition", "GridFire partition function bindings");
// register_partition_bindings(partitionMod);
//
// auto expectationMod = m.def_submodule("expectations", "GridFire expectations bindings");
// register_expectation_bindings(expectationMod);
//
// auto reactionMod = m.def_submodule("reaction", "GridFire reaction bindings");
// register_reaction_bindings(reactionMod);
//
// auto screeningMod = m.def_submodule("screening", "GridFire plasma screening bindings");
// register_screening_bindings(screeningMod);
//
// auto ioMod = m.def_submodule("io", "GridFire io bindings");
// register_io_bindings(ioMod);
//
// auto exceptionMod = m.def_submodule("exceptions", "GridFire exceptions bindings");
// register_exception_bindings(exceptionMod);
//
// auto engineMod = m.def_submodule("engine", "Engine and Engine View bindings");
// register_engine_bindings(engineMod);
//
// auto solverMod = m.def_submodule("solver", "GridFire numerical solver bindings");
// register_solver_bindings(solverMod);
//
// auto utilsMod = m.def_submodule("utils", "GridFire utility method bindings");
// register_utils_bindings(utilsMod);
auto partitionMod = m.def_submodule("partition", "GridFire partition function bindings");
register_partition_bindings(partitionMod);
auto expectationMod = m.def_submodule("expectations", "GridFire expectations bindings");
register_expectation_bindings(expectationMod);
auto reactionMod = m.def_submodule("reaction", "GridFire reaction bindings");
register_reaction_bindings(reactionMod);
auto screeningMod = m.def_submodule("screening", "GridFire plasma screening bindings");
register_screening_bindings(screeningMod);
auto ioMod = m.def_submodule("io", "GridFire io bindings");
register_io_bindings(ioMod);
auto exceptionMod = m.def_submodule("exceptions", "GridFire exceptions bindings");
register_exception_bindings(exceptionMod);
auto engineMod = m.def_submodule("engine", "Engine and Engine View bindings");
register_engine_bindings(engineMod);
auto solverMod = m.def_submodule("solver", "GridFire numerical solver bindings");
register_solver_bindings(solverMod);
auto utilsMod = m.def_submodule("utils", "GridFire utility method bindings");
register_utils_bindings(utilsMod);
}

View File

@@ -197,11 +197,11 @@ namespace {
}
void register_engine_bindings(py::module &m) {
register_engine_type_bindings(m);
register_engine_procedural_bindings(m);
register_base_engine_bindings(m);
register_engine_view_bindings(m);
register_engine_diagnostic_bindings(m);
register_engine_procedural_bindings(m);
register_engine_type_bindings(m);
}
void register_base_engine_bindings(const pybind11::module &m) {

View File

@@ -45,14 +45,10 @@ void register_exception_bindings(const py::module &m) {
py::register_exception<gridfire::exceptions::JacobianError>(m, "JacobianError", m.attr("GridFireEngineError"));
py::register_exception<gridfire::exceptions::StaleJacobianError>(m, "StaleJacobianError", m.attr("JacobianEngineError"));
py::register_exception<gridfire::exceptions::UninitializedJacobianError>(m, "UninitializedJacobianError", m.attr("JacobianEngineError"));
py::register_exception<gridfire::exceptions::UnknownJacobianError>(m, "UnknownJacobianError", m.attr("JacobianEngineError"));
py::register_exception<gridfire::exceptions::StaleJacobianError>(m, "StaleJacobianError", m.attr("JacobianError"));
py::register_exception<gridfire::exceptions::UninitializedJacobianError>(m, "UninitializedJacobianError", m.attr("JacobianError"));
py::register_exception<gridfire::exceptions::UnknownJacobianError>(m, "UnknownJacobianError", m.attr("JacobianError"));
py::register_exception<gridfire::exceptions::UtilityError>(m, "UtilityError");
py::register_exception<gridfire::exceptions::HashingError>(m, "HashingError", m.attr("UtilityError"));
}

View File

@@ -1,10 +1,10 @@
subdir('types')
#subdir('utils')
#subdir('expectations')
#subdir('exceptions')
#subdir('io')
#subdir('partition')
#subdir('reaction')
#subdir('screening')
#subdir('engine')
#subdir('solver')
subdir('utils')
subdir('expectations')
subdir('exceptions')
subdir('io')
subdir('partition')
subdir('reaction')
subdir('screening')
subdir('engine')
subdir('solver')

View File

@@ -1,4 +1,5 @@
#include <pybind11/pybind11.h>
#include <pybind11/functional.h> // needed for std::function
#include <pybind11/stl.h> // Needed for vectors, maps, sets, strings
#include <pybind11/stl_bind.h> // Needed for binding std::vector, std::map etc. if needed directly
#include <pybind11/numpy.h>