Building python binding fails on Archlinux (solution known)

Aperta Adatta ai principianti
#302 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
1/5
Tempo stimato
Meno di un'ora
Idoneità per principianti
74/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Stack tecnologico
cmake, cpp, python

Direzione di ricerca

Inizia da src/thermo/Thermodynamics.h, dove gli errori di compilazione segnalano che assert non è dichiarato negli accessor di specie ed elemento. Leggi gli include dell’header e aggiungi la dichiarazione di asserzione mancante indicata dal compilatore. Esegui di nuovo pip install . su Arch Linux e conferma che la compilazione C++ viene completata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

My OS is: Linux 6.19.13-arch1-1 x86_64 GNU/Linux
OS Version: Well, its arch so rolling
Cmake Version: 4.3.2
Mutation++ origin: fresh git clone

Mutation++ build steps and steps to reproduce

  1. pip install . fails with
`pip install .` output
Processing ./.
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting numpy (from mutationpp==1.1.3)
  Using cached numpy-2.4.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (6.6 kB)
Using cached numpy-2.4.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.6 MB)
Building wheels for collected packages: mutationpp
  Building wheel for mutationpp (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for mutationpp (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [296 lines of output]
      *** scikit-build-core 0.12.2 using CMake 4.3.2 (wheel)
      *** Configuring CMake...
      loading initial cache file /home/danielk/tmp/tmpo8hd87fl/build/CMakeInit.txt
      -- The CXX compiler identification is GNU 15.2.1
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /sbin/c++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- Found Python: /home/danielk/venvs/Mutationpp/bin/python (found version "3.13.11") found components: Interpreter Development.Module
      -- Configuring done (0.3s)
      -- Generating done (0.0s)
      -- Build files have been written to: /home/danielk/tmp/tmpo8hd87fl/build
      *** Building project with Ninja...
      [1/91] Building CXX object interface/python/CMakeFiles/_mutationpp.dir/src/mutationpp_python.cpp.o
      [2/91] Building CXX object interface/python/CMakeFiles/_mutationpp.dir/src/pyGlobalOptions.cpp.o
      In file included from /home/danielk/.local/share/uv/python/cpython-3.13.11-linux-x86_64-gnu/include/python3.13/Python.h:14,
                       from /home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/include/nanobind/nb_python.h:21,
                       from /home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/include/nanobind/nanobind.h:32,
                       from /home/danielk/git/Mutationpp/interface/python/src/pyGlobalOptions.cpp:2:
      /home/danielk/.local/share/uv/python/cpython-3.13.11-linux-x86_64-gnu/include/python3.13/pyconfig.h:1967:9: warning: ‘_POSIX_C_SOURCE’ redefined
       1967 | #define _POSIX_C_SOURCE 200809L
            |         ^~~~~~~~~~~~~~~
      In file included from /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/os_defines.h:39,
                       from /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++config.h:727,
                       from /usr/include/c++/15.2.1/cstdlib:46,
                       from /home/danielk/git/Mutationpp/src/general/GlobalOptions.h:25,
                       from /home/danielk/git/Mutationpp/interface/python/src/pyGlobalOptions.cpp:1:
      /usr/include/features.h:319:10: note: this is the location of the previous definition
        319 | # define _POSIX_C_SOURCE        202405L
            |          ^~~~~~~~~~~~~~~
      /home/danielk/.local/share/uv/python/cpython-3.13.11-linux-x86_64-gnu/include/python3.13/pyconfig.h:1988:9: warning: ‘_XOPEN_SOURCE’ redefined
       1988 | #define _XOPEN_SOURCE 700
            |         ^~~~~~~~~~~~~
      /usr/include/features.h:234:10: note: this is the location of the previous definition
        234 | # define _XOPEN_SOURCE  800
            |          ^~~~~~~~~~~~~
      [3/91] Building CXX object interface/python/CMakeFiles/nanobind-static.dir/home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/src/nb_static_property.cpp.o
      [4/91] Building CXX object interface/python/CMakeFiles/nanobind-static.dir/home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/src/implicit.cpp.o
      [5/91] Building CXX object interface/python/CMakeFiles/nanobind-static.dir/home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/src/trampoline.cpp.o
      [6/91] Building CXX object src/CMakeFiles/mutation++.dir/kinetics/ReactionType.cpp.o
      [7/91] Building CXX object interface/python/CMakeFiles/nanobind-static.dir/home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/src/error.cpp.o
      [8/91] Building CXX object interface/python/CMakeFiles/nanobind-static.dir/home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/src/nb_internals.cpp.o
      [9/91] Building CXX object interface/python/CMakeFiles/_mutationpp.dir/src/pyMixtureOptions.cpp.o
      In file included from /home/danielk/.local/share/uv/python/cpython-3.13.11-linux-x86_64-gnu/include/python3.13/Python.h:14,
                       from /home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/include/nanobind/nb_python.h:21,
                       from /home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/include/nanobind/nanobind.h:32,
                       from /home/danielk/git/Mutationpp/interface/python/src/pyMixtureOptions.cpp:3:
      /home/danielk/.local/share/uv/python/cpython-3.13.11-linux-x86_64-gnu/include/python3.13/pyconfig.h:1967:9: warning: ‘_POSIX_C_SOURCE’ redefined
       1967 | #define _POSIX_C_SOURCE 200809L
            |         ^~~~~~~~~~~~~~~
      In file included from /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/os_defines.h:39,
                       from /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++config.h:727,
                       from /usr/include/c++/15.2.1/bits/requires_hosted.h:31,
                       from /usr/include/c++/15.2.1/string:40,
                       from /home/danielk/git/Mutationpp/src/general/MixtureOptions.h:32,
                       from /home/danielk/git/Mutationpp/interface/python/src/pyMixtureOptions.cpp:1:
      /usr/include/features.h:319:10: note: this is the location of the previous definition
        319 | # define _POSIX_C_SOURCE        202405L
            |          ^~~~~~~~~~~~~~~
      /home/danielk/.local/share/uv/python/cpython-3.13.11-linux-x86_64-gnu/include/python3.13/pyconfig.h:1988:9: warning: ‘_XOPEN_SOURCE’ redefined
       1988 | #define _XOPEN_SOURCE 700
            |         ^~~~~~~~~~~~~
      /usr/include/features.h:234:10: note: this is the location of the previous definition
        234 | # define _XOPEN_SOURCE  800
            |          ^~~~~~~~~~~~~
      [10/91] Building CXX object interface/python/CMakeFiles/nanobind-static.dir/home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/src/nb_ndarray.cpp.o
      [11/91] Building CXX object interface/python/CMakeFiles/nanobind-static.dir/home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/src/common.cpp.o
      [12/91] Building CXX object src/CMakeFiles/mutation++.dir/kinetics/JacobianManager.cpp.o
      FAILED: [code=1] src/CMakeFiles/mutation++.dir/kinetics/JacobianManager.cpp.o
      /sbin/c++  -pthread  -I/home/danielk/git/Mutationpp/src/general -I/home/danielk/git/Mutationpp/src/kinetics -I/home/danielk/git/Mutationpp/src/numerics -I/home/danielk/git/Mutationpp/src/thermo -I/home/danielk/git/Mutationpp/src/transfer -I/home/danielk/git/Mutationpp/src/transport -I/home/danielk/git/Mutationpp/src/utilities -I/home/danielk/git/Mutationpp/src/gsi -isystem /usr/include/eigen3 -g -O3 -DNDEBUG -std=gnu++14 -fPIC -MD -MT src/CMakeFiles/mutation++.dir/kinetics/JacobianManager.cpp.o -MF src/CMakeFiles/mutation++.dir/kinetics/JacobianManager.cpp.o.d -o src/CMakeFiles/mutation++.dir/kinetics/JacobianManager.cpp.o -c /home/danielk/git/Mutationpp/src/kinetics/JacobianManager.cpp
      In file included from /home/danielk/git/Mutationpp/src/kinetics/JacobianManager.h:32,
                       from /home/danielk/git/Mutationpp/src/kinetics/JacobianManager.cpp:29:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h: In member function ‘const Mutation::Thermodynamics::Species& Mutation::Thermodynamics::Thermodynamics::species(int) const’:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:200:9: error: ‘assert’ was not declared in this scope
        200 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:42:1: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
         41 | #include <Eigen/Dense>
        +++ |+#include <cassert>
         42 |
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h: In member function ‘const Mutation::Thermodynamics::Element& Mutation::Thermodynamics::Thermodynamics::element(int) const’:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:213:9: error: ‘assert’ was not declared in this scope
        213 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:213:9: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
      [13/91] Building CXX object interface/python/CMakeFiles/nanobind-static.dir/home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/src/nb_func.cpp.o
      [14/91] Building CXX object src/CMakeFiles/mutation++.dir/kinetics/Kinetics.cpp.o
      FAILED: [code=1] src/CMakeFiles/mutation++.dir/kinetics/Kinetics.cpp.o
      /sbin/c++  -pthread  -I/home/danielk/git/Mutationpp/src/general -I/home/danielk/git/Mutationpp/src/kinetics -I/home/danielk/git/Mutationpp/src/numerics -I/home/danielk/git/Mutationpp/src/thermo -I/home/danielk/git/Mutationpp/src/transfer -I/home/danielk/git/Mutationpp/src/transport -I/home/danielk/git/Mutationpp/src/utilities -I/home/danielk/git/Mutationpp/src/gsi -isystem /usr/include/eigen3 -g -O3 -DNDEBUG -std=gnu++14 -fPIC -MD -MT src/CMakeFiles/mutation++.dir/kinetics/Kinetics.cpp.o -MF src/CMakeFiles/mutation++.dir/kinetics/Kinetics.cpp.o.d -o src/CMakeFiles/mutation++.dir/kinetics/Kinetics.cpp.o -c /home/danielk/git/Mutationpp/src/kinetics/Kinetics.cpp
      In file included from /home/danielk/git/Mutationpp/src/kinetics/Reaction.h:34,
                       from /home/danielk/git/Mutationpp/src/kinetics/RateLawGroup.h:42,
                       from /home/danielk/git/Mutationpp/src/kinetics/RateManager.h:31,
                       from /home/danielk/git/Mutationpp/src/kinetics/Kinetics.h:33,
                       from /home/danielk/git/Mutationpp/src/kinetics/Kinetics.cpp:28:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h: In member function ‘const Mutation::Thermodynamics::Species& Mutation::Thermodynamics::Thermodynamics::species(int) const’:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:200:9: error: ‘assert’ was not declared in this scope
        200 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:42:1: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
         41 | #include <Eigen/Dense>
        +++ |+#include <cassert>
         42 |
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h: In member function ‘const Mutation::Thermodynamics::Element& Mutation::Thermodynamics::Thermodynamics::element(int) const’:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:213:9: error: ‘assert’ was not declared in this scope
        213 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:213:9: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
      [15/91] Building CXX object src/CMakeFiles/mutation++.dir/kinetics/RateLaws.cpp.o
      [16/91] Building CXX object src/CMakeFiles/mutation++.dir/kinetics/StoichiometryManager.cpp.o
      [17/91] Building CXX object src/CMakeFiles/mutation++.dir/general/Mixture.cpp.o
      FAILED: [code=1] src/CMakeFiles/mutation++.dir/general/Mixture.cpp.o
      /sbin/c++  -pthread  -I/home/danielk/git/Mutationpp/src/general -I/home/danielk/git/Mutationpp/src/kinetics -I/home/danielk/git/Mutationpp/src/numerics -I/home/danielk/git/Mutationpp/src/thermo -I/home/danielk/git/Mutationpp/src/transfer -I/home/danielk/git/Mutationpp/src/transport -I/home/danielk/git/Mutationpp/src/utilities -I/home/danielk/git/Mutationpp/src/gsi -isystem /usr/include/eigen3 -g -O3 -DNDEBUG -std=gnu++14 -fPIC -MD -MT src/CMakeFiles/mutation++.dir/general/Mixture.cpp.o -MF src/CMakeFiles/mutation++.dir/general/Mixture.cpp.o.d -o src/CMakeFiles/mutation++.dir/general/Mixture.cpp.o -c /home/danielk/git/Mutationpp/src/general/Mixture.cpp
      In file included from /home/danielk/git/Mutationpp/src/general/Mixture.h:33,
                       from /home/danielk/git/Mutationpp/src/general/Mixture.cpp:28:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h: In member function ‘const Mutation::Thermodynamics::Species& Mutation::Thermodynamics::Thermodynamics::species(int) const’:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:200:9: error: ‘assert’ was not declared in this scope
        200 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:42:1: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
         41 | #include <Eigen/Dense>
        +++ |+#include <cassert>
         42 |
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h: In member function ‘const Mutation::Thermodynamics::Element& Mutation::Thermodynamics::Thermodynamics::element(int) const’:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:213:9: error: ‘assert’ was not declared in this scope
        213 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:213:9: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
      [18/91] Building CXX object interface/python/CMakeFiles/nanobind-static.dir/home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/src/nb_enum.cpp.o
      [19/91] Building CXX object src/CMakeFiles/mutation++.dir/kinetics/RateManager.cpp.o
      FAILED: [code=1] src/CMakeFiles/mutation++.dir/kinetics/RateManager.cpp.o
      /sbin/c++  -pthread  -I/home/danielk/git/Mutationpp/src/general -I/home/danielk/git/Mutationpp/src/kinetics -I/home/danielk/git/Mutationpp/src/numerics -I/home/danielk/git/Mutationpp/src/thermo -I/home/danielk/git/Mutationpp/src/transfer -I/home/danielk/git/Mutationpp/src/transport -I/home/danielk/git/Mutationpp/src/utilities -I/home/danielk/git/Mutationpp/src/gsi -isystem /usr/include/eigen3 -g -O3 -DNDEBUG -std=gnu++14 -fPIC -MD -MT src/CMakeFiles/mutation++.dir/kinetics/RateManager.cpp.o -MF src/CMakeFiles/mutation++.dir/kinetics/RateManager.cpp.o.d -o src/CMakeFiles/mutation++.dir/kinetics/RateManager.cpp.o -c /home/danielk/git/Mutationpp/src/kinetics/RateManager.cpp
      In file included from /home/danielk/git/Mutationpp/src/kinetics/Reaction.h:34,
                       from /home/danielk/git/Mutationpp/src/kinetics/RateLawGroup.h:42,
                       from /home/danielk/git/Mutationpp/src/kinetics/RateManager.h:31,
                       from /home/danielk/git/Mutationpp/src/kinetics/RateManager.cpp:31:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h: In member function ‘const Mutation::Thermodynamics::Species& Mutation::Thermodynamics::Thermodynamics::species(int) const’:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:200:9: error: ‘assert’ was not declared in this scope
        200 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:42:1: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
         41 | #include <Eigen/Dense>
        +++ |+#include <cassert>
         42 |
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h: In member function ‘const Mutation::Thermodynamics::Element& Mutation::Thermodynamics::Thermodynamics::element(int) const’:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:213:9: error: ‘assert’ was not declared in this scope
        213 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:213:9: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
      In file included from /home/danielk/git/Mutationpp/src/kinetics/RateManager.cpp:33:
      /home/danielk/git/Mutationpp/src/thermo/StateModel.h: In member function ‘void Mutation::Thermodynamics::StateModel::addTransferTerm(int, Mutation::Transfer::TransferModel*)’:
      /home/danielk/git/Mutationpp/src/thermo/StateModel.h:292:9: error: ‘assert’ was not declared in this scope
        292 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/StateModel.h:34:1: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
         33 | #include "TransferModel.h"
        +++ |+#include <cassert>
         34 |
      [20/91] Building CXX object interface/python/CMakeFiles/nanobind-static.dir/home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/src/nb_type.cpp.o
      [21/91] Building CXX object interface/python/CMakeFiles/_mutationpp.dir/src/pyMixture.cpp.o
      FAILED: [code=1] interface/python/CMakeFiles/_mutationpp.dir/src/pyMixture.cpp.o
      /sbin/c++  -pthread -D_mutationpp_EXPORTS -I/home/danielk/.local/share/uv/python/cpython-3.13.11-linux-x86_64-gnu/include/python3.13 -I/home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/include -I/home/danielk/git/Mutationpp/src/general -I/home/danielk/git/Mutationpp/src/kinetics -I/home/danielk/git/Mutationpp/src/numerics -I/home/danielk/git/Mutationpp/src/thermo -I/home/danielk/git/Mutationpp/src/transfer -I/home/danielk/git/Mutationpp/src/transport -I/home/danielk/git/Mutationpp/src/utilities -I/home/danielk/git/Mutationpp/src/gsi -isystem /usr/include/eigen3 -O3 -DNDEBUG -fPIC -fvisibility=hidden -fno-stack-protector -Os -ffunction-sections -fdata-sections -MD -MT interface/python/CMakeFiles/_mutationpp.dir/src/pyMixture.cpp.o -MF interface/python/CMakeFiles/_mutationpp.dir/src/pyMixture.cpp.o.d -o interface/python/CMakeFiles/_mutationpp.dir/src/pyMixture.cpp.o -c /home/danielk/git/Mutationpp/interface/python/src/pyMixture.cpp
      In file included from /home/danielk/.local/share/uv/python/cpython-3.13.11-linux-x86_64-gnu/include/python3.13/Python.h:14,
                       from /home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/include/nanobind/nb_python.h:21,
                       from /home/danielk/tmp/pip-build-env-d0tr_1ba/overlay/lib/python3.13/site-packages/nanobind/include/nanobind/nanobind.h:32,
                       from /home/danielk/git/Mutationpp/interface/python/src/pyMixture.cpp:4:
      /home/danielk/.local/share/uv/python/cpython-3.13.11-linux-x86_64-gnu/include/python3.13/pyconfig.h:1967:9: warning: ‘_POSIX_C_SOURCE’ redefined
       1967 | #define _POSIX_C_SOURCE 200809L
            |         ^~~~~~~~~~~~~~~
      In file included from /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/os_defines.h:39,
                       from /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++config.h:727,
                       from /usr/include/c++/15.2.1/bits/requires_hosted.h:31,
                       from /usr/include/c++/15.2.1/vector:62,
                       from /home/danielk/git/Mutationpp/src/general/Mixture.h:31,
                       from /home/danielk/git/Mutationpp/interface/python/src/pyMixture.cpp:1:
      /usr/include/features.h:319:10: note: this is the location of the previous definition
        319 | # define _POSIX_C_SOURCE        202405L
            |          ^~~~~~~~~~~~~~~
      /home/danielk/.local/share/uv/python/cpython-3.13.11-linux-x86_64-gnu/include/python3.13/pyconfig.h:1988:9: warning: ‘_XOPEN_SOURCE’ redefined
       1988 | #define _XOPEN_SOURCE 700
            |         ^~~~~~~~~~~~~
      /usr/include/features.h:234:10: note: this is the location of the previous definition
        234 | # define _XOPEN_SOURCE  800
            |          ^~~~~~~~~~~~~
      In file included from /home/danielk/git/Mutationpp/src/general/Mixture.h:33:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h: In member function ‘const Mutation::Thermodynamics::Species& Mutation::Thermodynamics::Thermodynamics::species(int) const’:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:200:9: error: ‘assert’ was not declared in this scope
        200 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:42:1: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
         41 | #include <Eigen/Dense>
        +++ |+#include <cassert>
         42 |
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h: In member function ‘const Mutation::Thermodynamics::Element& Mutation::Thermodynamics::Thermodynamics::element(int) const’:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:213:9: error: ‘assert’ was not declared in this scope
        213 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:213:9: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
      [22/91] Building CXX object src/CMakeFiles/mutation++.dir/general/MixtureOptions.cpp.o
      [23/91] Building CXX object src/CMakeFiles/mutation++.dir/thermo/ChemNonEqStateModel.cpp.o
      FAILED: [code=1] src/CMakeFiles/mutation++.dir/thermo/ChemNonEqStateModel.cpp.o
      /sbin/c++  -pthread  -I/home/danielk/git/Mutationpp/src/general -I/home/danielk/git/Mutationpp/src/kinetics -I/home/danielk/git/Mutationpp/src/numerics -I/home/danielk/git/Mutationpp/src/thermo -I/home/danielk/git/Mutationpp/src/transfer -I/home/danielk/git/Mutationpp/src/transport -I/home/danielk/git/Mutationpp/src/utilities -I/home/danielk/git/Mutationpp/src/gsi -isystem /usr/include/eigen3 -g -O3 -DNDEBUG -std=gnu++14 -fPIC -MD -MT src/CMakeFiles/mutation++.dir/thermo/ChemNonEqStateModel.cpp.o -MF src/CMakeFiles/mutation++.dir/thermo/ChemNonEqStateModel.cpp.o.d -o src/CMakeFiles/mutation++.dir/thermo/ChemNonEqStateModel.cpp.o -c /home/danielk/git/Mutationpp/src/thermo/ChemNonEqStateModel.cpp
      In file included from /home/danielk/git/Mutationpp/src/kinetics/Reaction.h:34,
                       from /home/danielk/git/Mutationpp/src/kinetics/RateLawGroup.h:42,
                       from /home/danielk/git/Mutationpp/src/kinetics/RateManager.h:31,
                       from /home/danielk/git/Mutationpp/src/kinetics/Kinetics.h:33,
                       from /home/danielk/git/Mutationpp/src/thermo/StateModel.h:32,
                       from /home/danielk/git/Mutationpp/src/thermo/ChemNonEqStateModel.cpp:28:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h: In member function ‘const Mutation::Thermodynamics::Species& Mutation::Thermodynamics::Thermodynamics::species(int) const’:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:200:9: error: ‘assert’ was not declared in this scope
        200 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:42:1: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
         41 | #include <Eigen/Dense>
        +++ |+#include <cassert>
         42 |
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h: In member function ‘const Mutation::Thermodynamics::Element& Mutation::Thermodynamics::Thermodynamics::element(int) const’:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:213:9: error: ‘assert’ was not declared in this scope
        213 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:213:9: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
      /home/danielk/git/Mutationpp/src/thermo/StateModel.h: In member function ‘void Mutation::Thermodynamics::StateModel::addTransferTerm(int, Mutation::Transfer::TransferModel*)’:
      /home/danielk/git/Mutationpp/src/thermo/StateModel.h:292:9: error: ‘assert’ was not declared in this scope
        292 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/StateModel.h:34:1: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
         33 | #include "TransferModel.h"
        +++ |+#include <cassert>
         34 |
      [24/91] Building CXX object src/CMakeFiles/mutation++.dir/thermo/Composition.cpp.o
      [25/91] Building CXX object src/CMakeFiles/mutation++.dir/thermo/ChemNonEqTTvStateModel.cpp.o
      FAILED: [code=1] src/CMakeFiles/mutation++.dir/thermo/ChemNonEqTTvStateModel.cpp.o
      /sbin/c++  -pthread  -I/home/danielk/git/Mutationpp/src/general -I/home/danielk/git/Mutationpp/src/kinetics -I/home/danielk/git/Mutationpp/src/numerics -I/home/danielk/git/Mutationpp/src/thermo -I/home/danielk/git/Mutationpp/src/transfer -I/home/danielk/git/Mutationpp/src/transport -I/home/danielk/git/Mutationpp/src/utilities -I/home/danielk/git/Mutationpp/src/gsi -isystem /usr/include/eigen3 -g -O3 -DNDEBUG -std=gnu++14 -fPIC -MD -MT src/CMakeFiles/mutation++.dir/thermo/ChemNonEqTTvStateModel.cpp.o -MF src/CMakeFiles/mutation++.dir/thermo/ChemNonEqTTvStateModel.cpp.o.d -o src/CMakeFiles/mutation++.dir/thermo/ChemNonEqTTvStateModel.cpp.o -c /home/danielk/git/Mutationpp/src/thermo/ChemNonEqTTvStateModel.cpp
      In file included from /home/danielk/git/Mutationpp/src/kinetics/Reaction.h:34,
                       from /home/danielk/git/Mutationpp/src/kinetics/RateLawGroup.h:42,
                       from /home/danielk/git/Mutationpp/src/kinetics/RateManager.h:31,
                       from /home/danielk/git/Mutationpp/src/kinetics/Kinetics.h:33,
                       from /home/danielk/git/Mutationpp/src/thermo/StateModel.h:32,
                       from /home/danielk/git/Mutationpp/src/thermo/ChemNonEqTTvStateModel.cpp:28:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h: In member function ‘const Mutation::Thermodynamics::Species& Mutation::Thermodynamics::Thermodynamics::species(int) const’:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:200:9: error: ‘assert’ was not declared in this scope
        200 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:42:1: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
         41 | #include <Eigen/Dense>
        +++ |+#include <cassert>
         42 |
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h: In member function ‘const Mutation::Thermodynamics::Element& Mutation::Thermodynamics::Thermodynamics::element(int) const’:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:213:9: error: ‘assert’ was not declared in this scope
        213 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:213:9: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
      /home/danielk/git/Mutationpp/src/thermo/StateModel.h: In member function ‘void Mutation::Thermodynamics::StateModel::addTransferTerm(int, Mutation::Transfer::TransferModel*)’:
      /home/danielk/git/Mutationpp/src/thermo/StateModel.h:292:9: error: ‘assert’ was not declared in this scope
        292 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/StateModel.h:34:1: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
         33 | #include "TransferModel.h"
        +++ |+#include <cassert>
         34 |
      [26/91] Building CXX object src/CMakeFiles/mutation++.dir/thermo/HarmonicOscillator.cpp.o
      [27/91] Building CXX object src/CMakeFiles/mutation++.dir/thermo/EquilStateModel.cpp.o
      FAILED: [code=1] src/CMakeFiles/mutation++.dir/thermo/EquilStateModel.cpp.o
      /sbin/c++  -pthread  -I/home/danielk/git/Mutationpp/src/general -I/home/danielk/git/Mutationpp/src/kinetics -I/home/danielk/git/Mutationpp/src/numerics -I/home/danielk/git/Mutationpp/src/thermo -I/home/danielk/git/Mutationpp/src/transfer -I/home/danielk/git/Mutationpp/src/transport -I/home/danielk/git/Mutationpp/src/utilities -I/home/danielk/git/Mutationpp/src/gsi -isystem /usr/include/eigen3 -g -O3 -DNDEBUG -std=gnu++14 -fPIC -MD -MT src/CMakeFiles/mutation++.dir/thermo/EquilStateModel.cpp.o -MF src/CMakeFiles/mutation++.dir/thermo/EquilStateModel.cpp.o.d -o src/CMakeFiles/mutation++.dir/thermo/EquilStateModel.cpp.o -c /home/danielk/git/Mutationpp/src/thermo/EquilStateModel.cpp
      In file included from /home/danielk/git/Mutationpp/src/kinetics/Reaction.h:34,
                       from /home/danielk/git/Mutationpp/src/kinetics/RateLawGroup.h:42,
                       from /home/danielk/git/Mutationpp/src/kinetics/RateManager.h:31,
                       from /home/danielk/git/Mutationpp/src/kinetics/Kinetics.h:33,
                       from /home/danielk/git/Mutationpp/src/thermo/StateModel.h:32,
                       from /home/danielk/git/Mutationpp/src/thermo/EquilStateModel.cpp:28:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h: In member function ‘const Mutation::Thermodynamics::Species& Mutation::Thermodynamics::Thermodynamics::species(int) const’:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:200:9: error: ‘assert’ was not declared in this scope
        200 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:42:1: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
         41 | #include <Eigen/Dense>
        +++ |+#include <cassert>
         42 |
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h: In member function ‘const Mutation::Thermodynamics::Element& Mutation::Thermodynamics::Thermodynamics::element(int) const’:
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:213:9: error: ‘assert’ was not declared in this scope
        213 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/Thermodynamics.h:213:9: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
      /home/danielk/git/Mutationpp/src/thermo/StateModel.h: In member function ‘void Mutation::Thermodynamics::StateModel::addTransferTerm(int, Mutation::Transfer::TransferModel*)’:
      /home/danielk/git/Mutationpp/src/thermo/StateModel.h:292:9: error: ‘assert’ was not declared in this scope
        292 |         assert(i >= 0);
            |         ^~~~~~
      /home/danielk/git/Mutationpp/src/thermo/StateModel.h:34:1: note: ‘assert’ is defined in header ‘<cassert>’; this is probably fixable by adding ‘#include <cassert>’
         33 | #include "TransferModel.h"
        +++ |+#include <cassert>
         34 |
      [28/91] Building CXX object src/CMakeFiles/mutation++.dir/kinetics/Reaction.cpp.o
      [29/91] Building CXX object src/CMakeFiles/mutation++.dir/numerics/Interpolators.cpp.o
      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 mutationpp
Failed to build mutationpp
error: failed-wheel-build-for-install

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

however, reading the build errors and the cmake files a bit, it seemed to be an issue with asserts being used without proper header inclusion so i kinda hacked in a cmake command in the pyproject.toml like so

diff --git a/pyproject.toml b/pyproject.toml
index 4fa3725..ce45a0a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -41,6 +41,9 @@ test = ["pytest"]
 experimental = true
 sdist.cmake = false
 sdist.exclude = [".*"]
+cmake.args = [
+    "-DCMAKE_CXX_FLAGS_RELEASE='-O3 -DNDEBUG -include cassert'",
+]
 [tool.scikit-build.metadata.version]
 provider = "scikit_build_core.metadata.regex"
 regex = '^project\(mutation\+\+\s*\n^\s*VERSION\s*(?P<value>\d+\.\d+\.\d+)\s*$'

and that seems to have fixed the issue - tests run fine:

 pytest
==================== test session starts =====================
platform linux -- Python 3.13.11, pytest-9.0.3, pluggy-1.6.0
rootdir: /home/danielk/git/Mutationpp
configfile: pyproject.toml
testpaths: tests/python
collected 68 items                                                                                                                                                                                                                             

tests/python/test_mutation.py ...............................................................                                                                                                                                            [ 92%]
tests/python/test_options.py .....                                                                                                                                                                                                       [100%]
===================== 68 passed in 0.16s =====================

Just wanted to let you know in case there is some quick fix that is possible to avoid this patch because i guess it would not be desirable to have these extra flags on every system if it runs without them :) im not familiar enough with your setup to try to suggest the proper way of doing it I'm afraid

Lingua principale
C++
Stelle
145
Fork
79
Merge medio
1g 15h
PR unite (30g)
2

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di mutationpp/Mutationpp

Tutte le issue di mutationpp/Mutationpp

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.