← All tasks
cppmixxxdj/mixxx #15485Not a task: not reproduced

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

Arch
Continue on GitHub ↗

04 / LABELS

Labels from the report text only; not yet run

No supported category has been assigned.

Label rules and the text that matched
[]