Wayland: Fix building with --disable-wayland-shared with libdecor.
When wayland is not dynamically loaded (--enable-wayland-shared=no) libdecor.h is not included unless SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC is set, so it fails to build. We can't simply move the libdecor.h include above the #ifdef SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC block, as libdecor.h itself #includes wayland headers we need to replace with #defines. Instead, duplicate the #include. Fixes https://github.com/libsdl-org/SDL/issues/4543 Note that this doesn't fix any of the underlying issues of libdecor being treated as part of wayland, it just fixes the build. A better solution would probably be to decouple the wayland dynamic loading from the libdecor dynamic loading completely, though that is a lot more work...main
parent
21cba92423
commit
18303c92bc
|
@ -18,7 +18,6 @@
|
||||||
misrepresented as being the original software.
|
misrepresented as being the original software.
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
3. This notice may not be removed or altered from any source distribution.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef SDL_waylanddyn_h_
|
#ifndef SDL_waylanddyn_h_
|
||||||
#define SDL_waylanddyn_h_
|
#define SDL_waylanddyn_h_
|
||||||
|
|
||||||
|
@ -68,7 +67,6 @@ void SDL_WAYLAND_UnloadSymbols(void);
|
||||||
#define SDL_WAYLAND_INTERFACE(iface) extern const struct wl_interface *WAYLAND_##iface;
|
#define SDL_WAYLAND_INTERFACE(iface) extern const struct wl_interface *WAYLAND_##iface;
|
||||||
#include "SDL_waylandsym.h"
|
#include "SDL_waylandsym.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -147,6 +145,12 @@ void SDL_WAYLAND_UnloadSymbols(void);
|
||||||
#define libdecor_configuration_get_window_state (*WAYLAND_libdecor_configuration_get_window_state)
|
#define libdecor_configuration_get_window_state (*WAYLAND_libdecor_configuration_get_window_state)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#else /* SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC */
|
||||||
|
|
||||||
|
#ifdef HAVE_LIBDECOR_H
|
||||||
|
#include <libdecor.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC */
|
#endif /* SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC */
|
||||||
|
|
||||||
#include "wayland-client-protocol.h"
|
#include "wayland-client-protocol.h"
|
||||||
|
|
Loading…
Reference in New Issue