hyprwm / xdg-desktop-portal-hyprland

xdg-desktop-portal backend for Hyprland
BSD 3-Clause "New" or "Revised" License
273 stars 47 forks source link

v1.3.4 fails to build with Clang #261

Closed jbeich closed 1 week ago

jbeich commented 1 week ago

Likely regressed by #260

$ export CC=clang CXX=clang++
$ cmake -G Ninja -B _build
$ cmake --build _build
[...]
In file included from src/core/PortalManager.cpp:1:
In file included from src/core/PortalManager.hpp:8:
In file included from src/core/../portals/Screencopy.hpp:6:
In file included from src/core/../portals/../shared/ScreencopyShared.hpp:17:
In file included from src/core/../portals/../shared/../includes.hpp:3:
In file included from /usr/include/hyprutils/memory/WeakPtr.hpp:3:
/usr/include/hyprutils/memory/./SharedPtr.hpp:291:42: error: no matching constructor for initialization of 'CCZwlrScreencopyManagerV1'
  291 |             return CSharedPointer<U>(new U(std::forward<Args>(args)...));
      |                                          ^ ~~~~~~~~~~~~~~~~~~~~~~~~
src/core/PortalManager.cpp:57:13: note: in instantiation of function template specialization 'Hyprutils::Memory::makeShared<CCZwlrScreencopyManagerV1, void *>' requested here
   57 |             makeShared<CCZwlrScreencopyManagerV1>(wl_registry_bind((wl_registry*)m_sWaylandConnection.registry->resource(), name, &zwlr_screencopy_manager_v1_interface, version)));
      |             ^
protocols/wlr-screencopy-unstable-v1.hpp:70:7: note: candidate constructor (the implicit copy constructor) not viable: cannot convert argument of incomplete type 'void *' to 'const CCZwlrScreencopyManagerV1' for 1st argument
   70 | class CCZwlrScreencopyManagerV1 {
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~
protocols/wlr-screencopy-unstable-v1.hpp:72:5: note: candidate constructor not viable: cannot convert argument of incomplete type 'void *' to 'wl_resource *' (aka 'wl_proxy *') for 1st argument
   72 |     CCZwlrScreencopyManagerV1(wl_resource*);
      |     ^                         ~~~~~~~~~~~~