-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Hello, I've attempted to get pyflowy running, but I seem to be running into an issue where the headers aren't being detected.
Building the project's C++ extension on Windows with Meson/Ninja, while using the micromamba/conda-forge toolchain, fails during the compilation phase due to an inability to locate the xtensor header files. This occurs even though xtensor is properly installed and detected by Meson.
Here is my build:
Operating System Windows 11
Python Version 3.12 (conda/micromamba)
C++ Toolchain MSVC (x64 Native Tools Command Prompt)
Package Manager micromamba (using conda-forge)
Build System Meson (1.9.0) / Ninja
Error Output
The Meson configuration phase succeeds and detects all dependencies, but the subsequent Ninja compilation phase fails immediately on the header inclusion:
[1/9] Compiling C++ object .../src_simulation.cpp.obj
...
C:\Users...\pyflowy\subprojects\flowy\flowy/include/definitions.hpp(6): fatal error C1
Steps to Reproduce
1. Set up the environment using MSVC: Open "x64 Native Tools Command Prompt" and run micromamba activate pyflowyenv.
2. Install all required dependencies: micromamba install -c conda-forge xtensor xtensor-blas vs2015_runtime -y.
3. Clean and attempt build:
rmdir /s /q subprojects build
git restore subprojects
meson setup build --wipe
pip install -e . --no-build-isolation
4. The compilation step fails with the error above.
Troubleshooting (All Failed)
The issue is likely with Meson's internal handling of dependency paths on Windows, as the header is locatable but not linked during compilation.
Every known path-injection method was attempted with no change in the error:
- Setting C++ environment variables (CPATH, CXXFLAGS, INCLUDE).
- Setting Meson build options (-Dcpp_args="...").
- Manually deleting and re-creating the symbolic link for xtensor headers in the conda environment's Library\include folder.
- Forcing a physical copy of the xtensor headers into the environment's Library\include folder.
- Uninstalling and reinstalling xtensor and related dependencies.
The Meson setup successfully reports Run-time dependency xtensor found: YES, but the compiler command generated by Meson/Ninja does not contain the correct -I path to the xtensor headers required for the subsequent subproject compilation.