LEoPart won't compile on Mac

(I’m not sure if this is the correct place to ask about this - I’ve seen that someone else has posted an issue on the LEoPart Github but I wanted to see if anyone has figured it out here.)

I’m trying to install LEoPart on my Mac, but every time I do, I get an error from the compiler (pasted at the bottom of the question).

I’ve done a clean install of everything, including macOS, so I don’t know if the computer is the problem. Here’s what the computer is running:

  • Apple M1 Macbook Pro
  • MacOS (Tahoe 26.3.1)
  • Conda-forge (26.1.1-3)
  • Python (3.14.4)
  • Pip3 (26.0.1)
  • CMake (4.3.1)
  • FEniCSx (0.1.0) installed with conda-forge
  • fenicsx-basix == 0.10.0
  • fenics-ffcx == 0.10.1
  • fenics-ufl == 2025.2.1
  • pybind11 == 3.0.3
  • clang == 22.1.0 - although I think LEoPart forces clang 20.something which is also installed
  • LEoPart-x (from their github, most recent commit 1ced51b)

Here’s the code I ran to install it:


conda create --name fenicsx-env fenics-dolfinx=0.10.0 fenics-basix=0.10.0 fenics-ufl=2025.2.1 fenics-ffcx=0.10.1 pybind11=3.0.3 mpich pyvista gcc

conda activate fenicsx-env

git clone https://github.com/LEoPart-project/leopart-x.git

cd leopart-x

pip3 install .

Here’s the error message:


(fenicsx-env11) Lev1@ leopart-x % pip3 install . 
Processing ./.
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: leopart
  Building wheel for leopart (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for leopart (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [150 lines of output]
      WARNING: Use build.verbose instead of cmake.verbose for scikit-build-core >= 0.10
      2026-04-10 08:32:50,030 - scikit_build_core - INFO - RUN: /private/var/folders/w5/4jh2nv210wl3r04h8gxn_69h0000gp/T/pip-build-env-ytz9capg/normal/lib/python3.11/site-packages/cmake/data/bin/cmake -E capabilities
      2026-04-10 08:32:50,039 - scikit_build_core - INFO - CMake version: 4.3.1
      *** scikit-build-core 0.12.2 using CMake 4.3.1 (wheel)
      2026-04-10 08:32:50,040 - scikit_build_core - INFO - Implementation: cpython darwin on arm64
      2026-04-10 08:32:50,043 - scikit_build_core - INFO - Build directory: /Users/Lev1/Desktop/PlasmaPhysics/leopart-x/build
      2026-04-10 08:32:50,045 - scikit_build_core - INFO - New isolated environment /private/var/folders/w5/4jh2nv210wl3r04h8gxn_69h0000gp/T/pip-build-env-3v_4h5pd/overlay/lib/python3.14/site-packages/scikit_build_core -> /private/var/folders/w5/4jh2nv210wl3r04h8gxn_69h0000gp/T/pip-build-env-ytz9capg/overlay/lib/python3.11/site-packages/scikit_build_core, clearing cache
      *** Configuring CMake...
      2026-04-10 08:32:50,050 - scikit_build_core - WARNING - Unsupported CMAKE_ARGS ignored: -DCMAKE_BUILD_TYPE=Release
      fatal error: lipo: can't open input file: ninja (No such file or directory)
      2026-04-10 08:32:50,074 - scikit_build_core - INFO - RUN: ninja --version
      2026-04-10 08:32:50,397 - scikit_build_core - INFO - Ninja version: 1.13.0
      2026-04-10 08:32:50,399 - scikit_build_core - WARNING - Unsupported CMAKE_ARGS ignored: -DCMAKE_BUILD_TYPE=Release
      2026-04-10 08:32:50,399 - scikit_build_core - INFO - RUN: /private/var/folders/w5/4jh2nv210wl3r04h8gxn_69h0000gp/T/pip-build-env-ytz9capg/normal/lib/python3.11/site-packages/cmake/data/bin/cmake -S. -Bbuild -DCMAKE_BUILD_TYPE:STRING=Release -Cbuild/CMakeInit.txt -DCMAKE_INSTALL_PREFIX=/var/folders/w5/4jh2nv210wl3r04h8gxn_69h0000gp/T/tmp4ippbae2/wheel/platlib -DCMAKE_MAKE_PROGRAM=ninja -DCMAKE_AR=/Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-ar -DCMAKE_CXX_COMPILER_AR=/Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-ar -DCMAKE_C_COMPILER_AR=/Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-ar -DCMAKE_RANLIB=/Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=/Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-ranlib -DCMAKE_C_COMPILER_RANLIB=/Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-ranlib -DCMAKE_LINKER=/Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-ld -DCMAKE_STRIP=/Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-strip -DCMAKE_INSTALL_NAME_TOOL=/Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-install_name_tool -DCMAKE_LIBTOOL=/Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-libtool -DCMAKE_OSX_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
      loading initial cache file build/CMakeInit.txt
      -- The C compiler identification is Clang 19.1.7
      -- The CXX compiler identification is Clang 19.1.7
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-clang - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-clang++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- Found MPI_C: /Users/Lev1/miniforge3/envs/fenicsx-env11/lib/libmpi.dylib (found version "3.1")
      -- Found MPI_CXX: /Users/Lev1/miniforge3/envs/fenicsx-env11/lib/libmpi.dylib (found version "3.1")
      -- Found MPI: TRUE (found version "3.1")
      -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
      -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
      -- Found Threads: TRUE
      -- Found Boost 1.88.0 at /Users/Lev1/miniforge3/envs/fenicsx-env11/lib/cmake/Boost-1.88.0
      --   Requested configuration: REQUIRED
      -- Found boost_headers 1.88.0 at /Users/Lev1/miniforge3/envs/fenicsx-env11/lib/cmake/boost_headers-1.88.0
      -- HDF5 C compiler wrapper is unable to compile a minimal HDF5 program.
      -- Found HDF5: /Users/Lev1/miniforge3/envs/fenicsx-env11/lib/libhdf5.dylib (found version "1.14.6") found components: C
      -- HDF5_DIR: HDF5_DIR-NOTFOUND
      -- HDF5_DEFINITIONS:
      -- HDF5_INCLUDE_DIRS: /Users/Lev1/miniforge3/envs/fenicsx-env11/include
      -- HDF5_LIBRARIES: /Users/Lev1/miniforge3/envs/fenicsx-env11/lib/libhdf5.dylib
      -- HDF5_HL_LIBRARIES:
      -- HDF5_C_DEFINITIONS:
      -- HDF5_C_INCLUDE_DIR: /Users/Lev1/miniforge3/envs/fenicsx-env11/include
      -- HDF5_C_INCLUDE_DIRS: /Users/Lev1/miniforge3/envs/fenicsx-env11/include
      -- HDF5_C_LIBRARY:
      -- HDF5_C_LIBRARIES: /Users/Lev1/miniforge3/envs/fenicsx-env11/lib/libhdf5.dylib
      -- HDF5_C_HL_LIBRARY:
      -- HDF5_C_HL_LIBRARIES:
      -- Defined targets (if any):
      -- ... hdf5::hdf5
      -- Found PkgConfig: /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/pkg-config (found version "0.29.2")
      -- Checking for one of the modules 'PETSc;petsc'
      -- Checking for one of the modules 'SLEPc;slepc'
      -- Found ADIOS2: /Users/Lev1/miniforge3/envs/fenicsx-env11/lib/cmake/adios2/adios2-config.cmake (found suitable version "2.11.0", minimum required is "2.8.1") found components: CXX
      -- Found Python3: /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/python3.11 (found version "3.11.15") found components: Interpreter Development.Module
      -- Performing Test HAS_FLTO_THIN
      -- Performing Test HAS_FLTO_THIN - Success
      -- Performing Test HAS_FLTO
      -- Performing Test HAS_FLTO - Success
      -- Found pybind11: /private/var/folders/w5/4jh2nv210wl3r04h8gxn_69h0000gp/T/pip-build-env-ytz9capg/overlay/lib/python3.11/site-packages/pybind11/include (found version "3.0.3")
      -- Configuring done (16.0s)
      -- Generating done (0.0s)
      CMake Warning:
        Manually-specified variables were not used by the project:
      
          CMAKE_LIBTOOL
      
      
      CMake Error:
        Error evaluating generator expression:
      
          $<TARGET_OBJECTS:adios2sys_objects>
      
        Objects of target "adios2sys_objects" referenced but no such target exists.
      
      
      -- Build files have been written to: /Users/Lev1/Desktop/PlasmaPhysics/leopart-x/build
      2026-04-10 08:33:06,407 - scikit_build_core - WARNING - Unsupported CMAKE_ARGS ignored: -DCMAKE_BUILD_TYPE=Release
      *** Building project with Ninja...
      2026-04-10 08:33:06,407 - scikit_build_core - INFO - RUN: /private/var/folders/w5/4jh2nv210wl3r04h8gxn_69h0000gp/T/pip-build-env-ytz9capg/normal/lib/python3.11/site-packages/cmake/data/bin/cmake --build build -v
      Change Dir: '/Users/Lev1/Desktop/PlasmaPhysics/leopart-x/build'
      
      Run Build Command(s): ninja -v
      [1/4] /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-clang++ -DADIOS2_USE_MPI -DDOLFINX_VERSION=\"0.10.0\" -DFMT_SHARED -DHAS_ADIOS2 -DHAS_KAHIP -DHAS_PARMETIS -DHAS_PETSC -DHAS_PTSCOTCH -DHAS_SLEPC -DMDSPAN_USE_BRACKET_OPERATOR=0 -DMDSPAN_USE_PAREN_OPERATOR=1 -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -DSPDLOG_SHARED_LIB -Dcpp_EXPORTS -I/Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp -isystem /Users/Lev1/miniforge3/envs/fenicsx-env11/include/python3.11 -isystem /private/var/folders/w5/4jh2nv210wl3r04h8gxn_69h0000gp/T/pip-build-env-ytz9capg/overlay/lib/python3.11/site-packages/pybind11/include -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc++ -fvisibility-inlines-hidden -fmessage-length=0 -isystem /Users/Lev1/miniforge3/envs/fenicsx-env11/include -O3 -DNDEBUG -std=gnu++23 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -fvisibility=hidden -Wno-comment -Wall -Wextra -pedantic -Werror -Wfatal-errors -flto -MD -MT CMakeFiles/cpp.dir/leopart/cpp/Particles.cpp.o -MF CMakeFiles/cpp.dir/leopart/cpp/Particles.cpp.o.d -o CMakeFiles/cpp.dir/leopart/cpp/Particles.cpp.o -c /Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp/Particles.cpp
      FAILED: [code=1] CMakeFiles/cpp.dir/leopart/cpp/Particles.cpp.o
      /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-clang++ -DADIOS2_USE_MPI -DDOLFINX_VERSION=\"0.10.0\" -DFMT_SHARED -DHAS_ADIOS2 -DHAS_KAHIP -DHAS_PARMETIS -DHAS_PETSC -DHAS_PTSCOTCH -DHAS_SLEPC -DMDSPAN_USE_BRACKET_OPERATOR=0 -DMDSPAN_USE_PAREN_OPERATOR=1 -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -DSPDLOG_SHARED_LIB -Dcpp_EXPORTS -I/Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp -isystem /Users/Lev1/miniforge3/envs/fenicsx-env11/include/python3.11 -isystem /private/var/folders/w5/4jh2nv210wl3r04h8gxn_69h0000gp/T/pip-build-env-ytz9capg/overlay/lib/python3.11/site-packages/pybind11/include -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc++ -fvisibility-inlines-hidden -fmessage-length=0 -isystem /Users/Lev1/miniforge3/envs/fenicsx-env11/include -O3 -DNDEBUG -std=gnu++23 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -fvisibility=hidden -Wno-comment -Wall -Wextra -pedantic -Werror -Wfatal-errors -flto -MD -MT CMakeFiles/cpp.dir/leopart/cpp/Particles.cpp.o -MF CMakeFiles/cpp.dir/leopart/cpp/Particles.cpp.o.d -o CMakeFiles/cpp.dir/leopart/cpp/Particles.cpp.o -c /Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp/Particles.cpp
      In file included from /Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp/Particles.cpp:7:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/include/dolfinx.h:10:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/include/dolfinx/common/dolfinx_common.h:13:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/include/dolfinx/common/MPI.h:9:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/include/dolfinx/common/Timer.h:10:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/include/dolfinx/common/TimeLogger.h:10:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/include/dolfinx/common/timing.h:10:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/chrono:969:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/__chrono/formatter.h:25:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/__chrono/ostream.h:33:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/__format/format_functions.h:29:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/__format/formatter_floating_point.h:38:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/cmath:328:
      In file included from /Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp/math.h:8:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/include/basix/math.h:9:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/include/basix/mdspan.hpp:5510:
      /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/complex:938:10: fatal error: no member named 'hypot' in namespace 'std'; did you mean '__math::hypot'?
        938 |   return std::hypot(__c.real(), __c.imag());
            |          ^~~~~
      /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/__math/hypot.h:35:36: note: '__math::hypot' declared here
         35 | inline _LIBCPP_HIDE_FROM_ABI float hypot(float __x, float __y) _NOEXCEPT { return __builtin_hypotf(__x, __y); }
            |                                    ^
      1 error generated.
      [2/4] /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-clang++ -DADIOS2_USE_MPI -DDOLFINX_VERSION=\"0.10.0\" -DFMT_SHARED -DHAS_ADIOS2 -DHAS_KAHIP -DHAS_PARMETIS -DHAS_PETSC -DHAS_PTSCOTCH -DHAS_SLEPC -DMDSPAN_USE_BRACKET_OPERATOR=0 -DMDSPAN_USE_PAREN_OPERATOR=1 -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -DSPDLOG_SHARED_LIB -Dcpp_EXPORTS -I/Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp -isystem /Users/Lev1/miniforge3/envs/fenicsx-env11/include/python3.11 -isystem /private/var/folders/w5/4jh2nv210wl3r04h8gxn_69h0000gp/T/pip-build-env-ytz9capg/overlay/lib/python3.11/site-packages/pybind11/include -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc++ -fvisibility-inlines-hidden -fmessage-length=0 -isystem /Users/Lev1/miniforge3/envs/fenicsx-env11/include -O3 -DNDEBUG -std=gnu++23 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -fvisibility=hidden -Wno-comment -Wall -Wextra -pedantic -Werror -Wfatal-errors -flto -MD -MT CMakeFiles/cpp.dir/leopart/cpp/external/quadprog_mdspan/QuadProg++.cc.o -MF CMakeFiles/cpp.dir/leopart/cpp/external/quadprog_mdspan/QuadProg++.cc.o.d -o CMakeFiles/cpp.dir/leopart/cpp/external/quadprog_mdspan/QuadProg++.cc.o -c /Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp/external/quadprog_mdspan/QuadProg++.cc
      FAILED: [code=1] CMakeFiles/cpp.dir/leopart/cpp/external/quadprog_mdspan/QuadProg++.cc.o
      /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-clang++ -DADIOS2_USE_MPI -DDOLFINX_VERSION=\"0.10.0\" -DFMT_SHARED -DHAS_ADIOS2 -DHAS_KAHIP -DHAS_PARMETIS -DHAS_PETSC -DHAS_PTSCOTCH -DHAS_SLEPC -DMDSPAN_USE_BRACKET_OPERATOR=0 -DMDSPAN_USE_PAREN_OPERATOR=1 -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -DSPDLOG_SHARED_LIB -Dcpp_EXPORTS -I/Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp -isystem /Users/Lev1/miniforge3/envs/fenicsx-env11/include/python3.11 -isystem /private/var/folders/w5/4jh2nv210wl3r04h8gxn_69h0000gp/T/pip-build-env-ytz9capg/overlay/lib/python3.11/site-packages/pybind11/include -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc++ -fvisibility-inlines-hidden -fmessage-length=0 -isystem /Users/Lev1/miniforge3/envs/fenicsx-env11/include -O3 -DNDEBUG -std=gnu++23 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -fvisibility=hidden -Wno-comment -Wall -Wextra -pedantic -Werror -Wfatal-errors -flto -MD -MT CMakeFiles/cpp.dir/leopart/cpp/external/quadprog_mdspan/QuadProg++.cc.o -MF CMakeFiles/cpp.dir/leopart/cpp/external/quadprog_mdspan/QuadProg++.cc.o.d -o CMakeFiles/cpp.dir/leopart/cpp/external/quadprog_mdspan/QuadProg++.cc.o -c /Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp/external/quadprog_mdspan/QuadProg++.cc
      In file included from /Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp/external/quadprog_mdspan/QuadProg++.cc:16:
      In file included from /Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp/external/quadprog_mdspan/QuadProg++.hh:68:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/include/basix/mdspan.hpp:5510:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/complex:266:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/cmath:328:
      In file included from /Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp/math.h:8:
      /Users/Lev1/miniforge3/envs/fenicsx-env11/include/basix/math.h:191:9: fatal error: no member named 'mdarray' in namespace 'std::experimental'
        191 |   mdex::mdarray<T, md::dextents<std::size_t, 2>, md::layout_left> _A(
            |   ~~~~~~^
      1 error generated.
      [3/4] /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-clang++ -DADIOS2_USE_MPI -DDOLFINX_VERSION=\"0.10.0\" -DFMT_SHARED -DHAS_ADIOS2 -DHAS_KAHIP -DHAS_PARMETIS -DHAS_PETSC -DHAS_PTSCOTCH -DHAS_SLEPC -DMDSPAN_USE_BRACKET_OPERATOR=0 -DMDSPAN_USE_PAREN_OPERATOR=1 -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -DSPDLOG_SHARED_LIB -Dcpp_EXPORTS -I/Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp -isystem /Users/Lev1/miniforge3/envs/fenicsx-env11/include/python3.11 -isystem /private/var/folders/w5/4jh2nv210wl3r04h8gxn_69h0000gp/T/pip-build-env-ytz9capg/overlay/lib/python3.11/site-packages/pybind11/include -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc++ -fvisibility-inlines-hidden -fmessage-length=0 -isystem /Users/Lev1/miniforge3/envs/fenicsx-env11/include -O3 -DNDEBUG -std=gnu++23 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -fvisibility=hidden -Wno-comment -Wall -Wextra -pedantic -Werror -Wfatal-errors -flto -MD -MT CMakeFiles/cpp.dir/leopart/cpp/wrapper.cpp.o -MF CMakeFiles/cpp.dir/leopart/cpp/wrapper.cpp.o.d -o CMakeFiles/cpp.dir/leopart/cpp/wrapper.cpp.o -c /Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp/wrapper.cpp
      FAILED: [code=1] CMakeFiles/cpp.dir/leopart/cpp/wrapper.cpp.o
      /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/arm64-apple-darwin20.0.0-clang++ -DADIOS2_USE_MPI -DDOLFINX_VERSION=\"0.10.0\" -DFMT_SHARED -DHAS_ADIOS2 -DHAS_KAHIP -DHAS_PARMETIS -DHAS_PETSC -DHAS_PTSCOTCH -DHAS_SLEPC -DMDSPAN_USE_BRACKET_OPERATOR=0 -DMDSPAN_USE_PAREN_OPERATOR=1 -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -DSPDLOG_SHARED_LIB -Dcpp_EXPORTS -I/Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp -isystem /Users/Lev1/miniforge3/envs/fenicsx-env11/include/python3.11 -isystem /private/var/folders/w5/4jh2nv210wl3r04h8gxn_69h0000gp/T/pip-build-env-ytz9capg/overlay/lib/python3.11/site-packages/pybind11/include -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc++ -fvisibility-inlines-hidden -fmessage-length=0 -isystem /Users/Lev1/miniforge3/envs/fenicsx-env11/include -O3 -DNDEBUG -std=gnu++23 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -fvisibility=hidden -Wno-comment -Wall -Wextra -pedantic -Werror -Wfatal-errors -flto -MD -MT CMakeFiles/cpp.dir/leopart/cpp/wrapper.cpp.o -MF CMakeFiles/cpp.dir/leopart/cpp/wrapper.cpp.o.d -o CMakeFiles/cpp.dir/leopart/cpp/wrapper.cpp.o -c /Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp/wrapper.cpp
      In file included from /Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp/wrapper.cpp:8:
      In file included from /Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp/advect.h:8:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/iostream:44:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/ostream:180:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/__ostream/print.h:16:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/format:205:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/__format/format_functions.h:29:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/__format/formatter_floating_point.h:38:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/cmath:328:
      In file included from /Users/Lev1/Desktop/PlasmaPhysics/leopart-x/leopart/cpp/math.h:8:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/include/basix/math.h:9:
      In file included from /Users/Lev1/miniforge3/envs/fenicsx-env11/include/basix/mdspan.hpp:5510:
      /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/complex:938:10: fatal error: no member named 'hypot' in namespace 'std'; did you mean '__math::hypot'?
        938 |   return std::hypot(__c.real(), __c.imag());
            |          ^~~~~
      /Users/Lev1/miniforge3/envs/fenicsx-env11/bin/../include/c++/v1/__math/hypot.h:35:36: note: '__math::hypot' declared here
         35 | inline _LIBCPP_HIDE_FROM_ABI float hypot(float __x, float __y) _NOEXCEPT { return __builtin_hypotf(__x, __y); }
            |                                    ^
      1 error generated.
      ninja: build stopped: subcommand failed.
      
      
      *** CMake build failed
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for leopart
Failed to build leopart
error: failed-wheel-build-for-install

× Failed to build installable wheels for some pyproject.toml based projects
╰─> leopart

LEoPart has stagnated since the main authors are now in industry. It’s unlikely they have the motivation to update it for the latest version of DOLFIN and DOLFINx.

You can probably get it to work with an older version of DOLFINx from around the time it was last updated.

I can reproduce this on:

Not really sure why it only happens on UFL integration tests, and not on main:

It seems like one should build DOLFINx with the enable adios2 flag to avoid this error, as the following change on CI works:

I honestly thought the API and ABI would have changed so much since v0.7.0 or so, that Leopart-x wouldn’t work. This surprises me!