GuiPrivate, materialshader.cpp:5:10: fatal error: rhi/qshader.h: No such file or directory?
envgap__mixxxdj__mixxx-15485
01 / FAILURE SIGNATURE
As reported upstream
/home/milk/src/mixxx/src/rendergraph/opengl/materialshader.cpp:5:10: fatal error: rhi/qshader.h: No such file or directory
Not a benchmark task.
- In a clean container the reported failure did not reproduce, or the known fix did not make the project run.
02 / ENVIRONMENT RECIPE
- Base commit
0cb41f7e7c4dc53afacb294e3f6b225e19f3b73c- Manifest
CMakeLists.txt- Reproduce
Awaiting issue-specific recipe- Run under trace
Awaiting a meaningful runtime command
03 / ORIGINAL ISSUE TEXT
mixxxdj/mixxx #15485 · read the original issue
### Bug Description
huh. somehow I'm suddenly seeing this;
```
00:32:26 milk@red:~/src/mixxx/build feature/waveform-hotcue-label-options(+82/-11)+* ± make
[ 0%] Building CXX object src/rendergraph/shaders/CMakeFiles/rendergraph_gl_resources_1.dir/.qt/rcc/qrc_shaders-qsb_init.cpp.o
[ 0%] Built target rendergraph_gl_resources_1
[ 0%] Generating .qsb/pattern.frag.qsb
[ 1%] Generating .qsb/pattern.vert.qsb
[ 1%] Generating .qsb/rgb.frag.qsb
[ 1%] Generating .qsb/rgb.vert.qsb
[ 1%] Generating .qsb/rgba.frag.qsb
[ 1%] Generating .qsb/rgba.vert.qsb
[ 1%] Generating .qsb/texture.frag.qsb
[ 1%] Generating .qsb/texture.vert.qsb
[ 1%] Generating .qsb/unicolor.frag.qsb
[ 1%] Generating .qsb/unicolor.vert.qsb
[ 1%] Running rcc for resource shaders-qsb
[ 1%] Built target rendergraph_gl_shaders-qsb
[ 1%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/__/common/rendergraph/material/endoftrackmaterial.cpp.o
[ 1%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/__/common/rendergraph/material/patternmaterial.cpp.o
[ 1%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/__/common/rendergraph/material/rgbamaterial.cpp.o
[ 1%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/__/common/rendergraph/material/rgbmaterial.cpp.o
[ 1%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/__/common/rendergraph/material/texturematerial.cpp.o
[ 1%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/__/common/rendergraph/material/unicolormaterial.cpp.o
[ 1%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/__/common/rendergraph/uniformscache.cpp.o
[ 1%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/__/common/rendergraph/uniformset.cpp.o
[ 1%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/__/common/types.cpp.o
[ 2%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/attributeset.cpp.o
[ 2%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/baseattributeset.cpp.o
[ 2%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/basegeometry.cpp.o
[ 2%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/basegeometrynode.cpp.o
[ 2%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/basematerial.cpp.o
[ 2%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/basematerialshader.cpp.o
[ 2%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/basenode.cpp.o
[ 2%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/baseopenglnode.cpp.o
[ 2%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/engine.cpp.o
[ 2%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/geometry.cpp.o
[ 3%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/geometrynode.cpp.o
[ 3%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/material.cpp.o
[ 3%] Building CXX object src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/materialshader.cpp.o
/home/milk/src/mixxx/src/rendergraph/opengl/materialshader.cpp:5:10: fatal error: rhi/qshader.h: No such file or directory
5 | #include <rhi/qshader.h>
| ^~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/build.make:373: src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/materialshader.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1946: src/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/all] Error 2
make: *** [Makefile:166: all] Error 2
```
and the AI says this;
```
the bug was introduced in the original rendergraph commit (dec 1, 2024, commit b9080f1083).
what happened
when the rendergraph library was initially added:
developer added Qt6::GuiPrivate link in
src/rendergraph/opengl/CMakeLists.txt
(line 51)
developer forgot to add GuiPrivate to the main
CMakeLists.txt
component list
the build worked on their machine because:
they might have been using qt5 (which doesn't have this code path)
or they had GuiPrivate already in their cmake cache from previous builds
or they only tested without the USE_QSHADER_FOR_GL flag
why it only broke for you now
you're on a fresh checkout or clean build
qt6 is installed (triggers the GuiPrivate code path)
qt6 >= 6.6 (triggers USE_QSHADER_FOR_GL)
cmake has no cached knowledge of GuiPrivate
this is a classic incomplete dependency declaration - local cmake tries to use a component the global cmake never imported. surprisingly common when developers add new libraries and only test on their already-configured build trees.
your fix should probably be submitted upstream since this will affect anyone doing fresh qt6 builds.
```
but I'm not sure I believe it
### Version
main feature branch
### OS
Arch04 / LABELS
Labels from the report text only; not yet run
No supported category has been assigned.
Label rules and the text that matched
[]