obs-source-dock
obs-source-dock copied to clipboard
Does not build if OBS is compiled without wayland support
I got a report that my proposed Gentoo package would not build if OBS has been built without wayland support:
FAILED: CMakeFiles/source-dock.dir/qt-display.cpp.o
/usr/bin/x86_64-pc-linux-gnu-g++ -DHAVE_OBSCONFIG_H -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -Dsource_dock_EXPORTS -I/mnt/lprup/portage-build/portage/media-plugins/obs-source-dock-0.4.1/work/obs-source-dock-0.4.1_build/source-dock_autogen/include -isystem /usr/include/qt6/QtGui/6.8.1 -isystem /usr/include/qt6/QtGui/6.8.1/QtGui -isystem /usr/include/qt6/QtCore/6.8.1 -isystem /usr/include/qt6/QtCore/6.8.1/QtCore -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib64/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtGui -isystem /usr/include/obs -isystem /usr/include/qt6/QtWidgets -march=znver4 -O2 -fomit-frame-pointer -pipe -mindirect-branch=thunk -fPIC -Werror -Wextra -Wvla -Wformat -Wformat-security -Wswitch -Wunused-parameter -Wno-unused-function -Wno-missing-field-initializers -fno-strict-aliasing -Wconversion-null -fPIC -MD -MT CMakeFiles/source-dock.dir/qt-display.cpp.o -MF CMakeFiles/source-dock.dir/qt-display.cpp.o.d -o CMakeFiles/source-dock.dir/qt-display.cpp.o -c /mnt/lprup/portage-build/portage/media-plugins/obs-source-dock-0.4.1/work/obs-source-dock-0.4.1/qt-display.cpp
/mnt/lprup/portage-build/portage/media-plugins/obs-source-dock-0.4.1/work/obs-source-dock-0.4.1/qt-display.cpp: In function ‘bool QTToGSWindow(QWindow*, gs_window&)’:
/mnt/lprup/portage-build/portage/media-plugins/obs-source-dock-0.4.1/work/obs-source-dock-0.4.1/qt-display.cpp:161:17: error: ‘obs_get_nix_platform’ was not declared in this scope
161 | switch (obs_get_nix_platform()) {
| ^~~~~~~~~~~~~~~~~~~~
/mnt/lprup/portage-build/portage/media-plugins/obs-source-dock-0.4.1/work/obs-source-dock-0.4.1/qt-display.cpp:162:14: error: ‘OBS_NIX_PLATFORM_X11_EGL’ was not declared in this scope
162 | case OBS_NIX_PLATFORM_X11_EGL:
| ^~~~~~~~~~~~~~~~~~~~~~~~
/mnt/lprup/portage-build/portage/media-plugins/obs-source-dock-0.4.1/work/obs-source-dock-0.4.1/qt-display.cpp:164:36: error: ‘obs_get_nix_platform_display’ was not declared in this scope
164 | gswindow.display = obs_get_nix_platform_display();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
[5/10] /usr/bin/x86_64-pc-linux-gnu-g++ -DHAVE_OBSCONFIG_H -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -Dsource_dock_EXPORTS -I/mnt/lprup/portage-build/portage/media-plugins/obs-source-dock-0.4.1/work/obs-source-dock-0.4.1_build/source-dock_autogen/include -isystem /usr/include/qt6/QtGui/6.8.1 -isystem /usr/include/qt6/QtGui/6.8.1/QtGui -isystem /usr/include/qt6/QtCore/6.8.1 -isystem /usr/include/qt6/QtCore/6.8.1/QtCore -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib64/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtGui -isystem /usr/include/obs -isystem /usr/include/qt6/QtWidgets -march=znver4 -O2 -fomit-frame-pointer -pipe -mindirect-branch=thunk -fPIC -Werror -Wextra -Wvla -Wformat -Wformat-security -Wswitch -Wunused-parameter -Wno-unused-function -Wno-missing-field-initializers -fno-strict-aliasing -Wconversion-null -fPIC -MD -MT CMakeFiles/source-dock.dir/media-control.cpp.o -MF CMakeFiles/source-dock.dir/media-control.cpp.o.d -o CMakeFiles/source-dock.dir/media-control.cpp.o -c /mnt/lprup/portage-build/portage/media-plugins/obs-source-dock-0.4.1/work/obs-source-dock-0.4.1/media-control.cpp
[6/10] /usr/bin/x86_64-pc-linux-gnu-g++ -DHAVE_OBSCONFIG_H -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -Dsource_dock_EXPORTS -I/mnt/lprup/portage-build/portage/media-plugins/obs-source-dock-0.4.1/work/obs-source-dock-0.4.1_build/source-dock_autogen/include -isystem /usr/include/qt6/QtGui/6.8.1 -isystem /usr/include/qt6/QtGui/6.8.1/QtGui -isystem /usr/include/qt6/QtCore/6.8.1 -isystem /usr/include/qt6/QtCore/6.8.1/QtCore -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib64/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtGui -isystem /usr/include/obs -isystem /usr/include/qt6/QtWidgets -march=znver4 -O2 -fomit-frame-pointer -pipe -mindirect-branch=thunk -fPIC -Werror -Wextra -Wvla -Wformat -Wformat-security -Wswitch -Wunused-parameter -Wno-unused-function -Wno-missing-field-initializers -fno-strict-aliasing -Wconversion-null -fPIC -MD -MT CMakeFiles/source-dock.dir/volume-meter.cpp.o -MF CMakeFiles/source-dock.dir/volume-meter.cpp.o.d -o CMakeFiles/source-dock.dir/volume-meter.cpp.o -c /mnt/lprup/portage-build/portage/media-plugins/obs-source-dock-0.4.1/work/obs-source-dock-0.4.1/volume-meter.cpp
[7/10] /usr/bin/x86_64-pc-linux-gnu-g++ -DHAVE_OBSCONFIG_H -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -Dsource_dock_EXPORTS -I/mnt/lprup/portage-build/portage/media-plugins/obs-source-dock-0.4.1/work/obs-source-dock-0.4.1_build/source-dock_autogen/include -isystem /usr/include/qt6/QtGui/6.8.1 -isystem /usr/include/qt6/QtGui/6.8.1/QtGui -isystem /usr/include/qt6/QtCore/6.8.1 -isystem /usr/include/qt6/QtCore/6.8.1/QtCore -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib64/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtGui -isystem /usr/include/obs -isystem /usr/include/qt6/QtWidgets -march=znver4 -O2 -fomit-frame-pointer -pipe -mindirect-branch=thunk -fPIC -Werror -Wextra -Wvla -Wformat -Wformat-security -Wswitch -Wunused-parameter -Wno-unused-function -Wno-missing-field-initializers -fno-strict-aliasing -Wconversion-null -fPIC -MD -MT CMakeFiles/source-dock.dir/source-dock_autogen/mocs_compilation.cpp.o -MF CMakeFiles/source-dock.dir/source-dock_autogen/mocs_compilation.cpp.o.d -o CMakeFiles/source-dock.dir/source-dock_autogen/mocs_compilation.cpp.o -c /mnt/lprup/portage-build/portage/media-plugins/obs-source-dock-0.4.1/work/obs-source-dock-0.4.1_build/source-dock_autogen/mocs_compilation.cpp
[8/10] /usr/bin/x86_64-pc-linux-gnu-g++ -DHAVE_OBSCONFIG_H -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -Dsource_dock_EXPORTS -I/mnt/lprup/portage-build/portage/media-plugins/obs-source-dock-0.4.1/work/obs-source-dock-0.4.1_build/source-dock_autogen/include -isystem /usr/include/qt6/QtGui/6.8.1 -isystem /usr/include/qt6/QtGui/6.8.1/QtGui -isystem /usr/include/qt6/QtCore/6.8.1 -isystem /usr/include/qt6/QtCore/6.8.1/QtCore -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib64/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtGui -isystem /usr/include/obs -isystem /usr/include/qt6/QtWidgets -march=znver4 -O2 -fomit-frame-pointer -pipe -mindirect-branch=thunk -fPIC -Werror -Wextra -Wvla -Wformat -Wformat-security -Wswitch -Wunused-parameter -Wno-unused-function -Wno-missing-field-initializers -fno-strict-aliasing -Wconversion-null -fPIC -MD -MT CMakeFiles/source-dock.dir/source-dock-settings.cpp.o -MF CMakeFiles/source-dock.dir/source-dock-settings.cpp.o.d -o CMakeFiles/source-dock.dir/source-dock-settings.cpp.o -c /mnt/lprup/portage-build/portage/media-plugins/obs-source-dock-0.4.1/work/obs-source-dock-0.4.1/source-dock-settings.cpp
[9/10] /usr/bin/x86_64-pc-linux-gnu-g++ -DHAVE_OBSCONFIG_H -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -Dsource_dock_EXPORTS -I/mnt/lprup/portage-build/portage/media-plugins/obs-source-dock-0.4.1/work/obs-source-dock-0.4.1_build/source-dock_autogen/include -isystem /usr/include/qt6/QtGui/6.8.1 -isystem /usr/include/qt6/QtGui/6.8.1/QtGui -isystem /usr/include/qt6/QtCore/6.8.1 -isystem /usr/include/qt6/QtCore/6.8.1/QtCore -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib64/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtGui -isystem /usr/include/obs -isystem /usr/include/qt6/QtWidgets -march=znver4 -O2 -fomit-frame-pointer -pipe -mindirect-branch=thunk -fPIC -Werror -Wextra -Wvla -Wformat -Wformat-security -Wswitch -Wunused-parameter -Wno-unused-function -Wno-missing-field-initializers -fno-strict-aliasing -Wconversion-null -fPIC -MD -MT CMakeFiles/source-dock.dir/source-dock.cpp.o -MF CMakeFiles/source-dock.dir/source-dock.cpp.o.d -o CMakeFiles/source-dock.dir/source-dock.cpp.o -c /mnt/lprup/portage-build/portage/media-plugins/obs-source-dock-0.4.1/work/obs-source-dock-0.4.1/source-dock.cpp
ninja: build stopped: subcommand failed.
* ERROR: media-plugins/obs-source-dock-0.4.1::roookaru failed (compile phase):
* ninja -v -j32 -l0 failed
*
* Call stack:
* ebuild.sh, line 136: Called src_compile
* environment, line 2093: Called cmake_src_compile
* environment, line 842: Called cmake_build
* environment, line 809: Called eninja
* environment, line 1291: Called die
* The specific snippet of code:
* "$@" || die -n "${*} failed"
It seems that obs_get_nix_platform_display() and friends are not defined if OBS has been built without wayland support. But maybe some includes just get messed up? Maybe because #include <obs-nix-platform.h> is skipped?
Reported here: https://github.com/gentoo/gentoo/pull/37633