Skip to content

Commit 5cf27c3

Browse files
author
Chris Warren-Smith
committed
FLATPAK: ui modules now target wayland in linux build
1 parent 744b200 commit 5cf27c3

File tree

4 files changed

+50
-13
lines changed

4 files changed

+50
-13
lines changed

configure.ac

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,27 @@ function checkDebugMode() {
3333
AC_SUBST(CFLAGS)
3434
}
3535

36+
function generate_wayland_protocols() {
37+
RAYLIB_SRC_PATH="${srcdir}/raylib/raylib/src"
38+
WL_PROTOCOLS_DIR="${RAYLIB_SRC_PATH}/external/glfw/deps/wayland"
39+
AC_MSG_NOTICE([Generating Wayland protocol headers])
40+
wl_generate() {
41+
protocol="$1"
42+
basename="$2"
43+
"$WAYLAND_SCANNER" client-header "$protocol" "$RAYLIB_SRC_PATH/$basename.h" || exit 1
44+
"$WAYLAND_SCANNER" private-code "$protocol" "$RAYLIB_SRC_PATH/$basename-code.h" || exit 1
45+
}
46+
wl_generate "$WL_PROTOCOLS_DIR/wayland.xml" wayland-client-protocol
47+
wl_generate "$WL_PROTOCOLS_DIR/xdg-shell.xml" xdg-shell-client-protocol
48+
wl_generate "$WL_PROTOCOLS_DIR/xdg-decoration-unstable-v1.xml" xdg-decoration-unstable-v1-client-protocol
49+
wl_generate "$WL_PROTOCOLS_DIR/viewporter.xml" viewporter-client-protocol
50+
wl_generate "$WL_PROTOCOLS_DIR/relative-pointer-unstable-v1.xml" relative-pointer-unstable-v1-client-protocol
51+
wl_generate "$WL_PROTOCOLS_DIR/pointer-constraints-unstable-v1.xml" pointer-constraints-unstable-v1-client-protocol
52+
wl_generate "$WL_PROTOCOLS_DIR/fractional-scale-v1.xml" fractional-scale-v1-client-protocol
53+
wl_generate "$WL_PROTOCOLS_DIR/xdg-activation-v1.xml" xdg-activation-v1-client-protocol
54+
wl_generate "$WL_PROTOCOLS_DIR/idle-inhibit-unstable-v1.xml" idle-inhibit-unstable-v1-client-protocol
55+
}
56+
3657
AC_ARG_WITH(mlpack,
3758
[AS_HELP_STRING([--with-mlpack], [Build the mlpack module])],
3859
[MLPACK="yes"],
@@ -66,14 +87,22 @@ case "${host_os}" in
6687
*)
6788
PLATFORM_LDFLAGS="-Wl,--no-undefined -avoid-version"
6889
CLIPBOARD_LDFLAGS="`pkg-config xcb --libs` -lpthread"
69-
NUKLEAR_LDFLAGS="-lGL -lm -lpthread -ldl -lrt -lX11"
7090
WEBSOCKET_LDFLAGS=""
7191
GTK_SERVER_LDFLAGS="`pkg-config --libs gtk+-3.0` -lXm -lXt"
7292
GTK_SERVER_CPPFLAGS="`pkg-config --cflags gtk+-3.0` -DGTK_SERVER_FFI -DGTK_SERVER_LIBRARY -DGTK_SERVER_UNIX -DGTK_SERVER_GTK3x"
73-
RAYLIB_LDFLAGS="-lGL -lm -lpthread -ldl -lrt -lX11 -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon"
93+
RAYLIB_LDFLAGS="`pkg-config wayland-client wayland-cursor wayland-egl xkbcommon --libs`"
7494
JVM_CPPFLAGS="-I/usr/lib/jvm/java-1.8.0-openjdk-amd64/include -I/usr/lib/jvm/java-1.8.0-openjdk-amd64/include/linux"
7595
JVM_LDFLAGS="-L/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/amd64/server -ljvm"
76-
NUKLEAR_CPPFLAGS="-D_GLFW_X11=1"
96+
NUKLEAR_CPPFLAGS="-D_GLFW_WAYLAND=1"
97+
NUKLEAR_LDFLAGS="`pkg-config wayland-client wayland-cursor wayland-egl xkbcommon --libs`"
98+
99+
AC_ARG_VAR([WAYLAND_SCANNER], [Path to wayland-scanner])
100+
AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner])
101+
AS_IF([test -n "$WAYLAND_SCANNER"], [
102+
generate_wayland_protocols
103+
], [
104+
AC_MSG_WARN([wayland-scanner not found; Wayland support disabled])
105+
])
77106
esac
78107

79108
AC_SUBST(DEBUG_LDFLAGS)

glfw/Makefile.am

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
AM_CXXFLAGS=-fno-rtti -std=c++14
99
AM_CPPFLAGS = \
10+
-I../raylib/raylib/src \
1011
-I../raylib/raylib/src/external/glfw/include \
1112
-I../raylib/raylib/src/external/glfw/deps \
1213
-Wall -Wextra -Wshadow -Wdouble-promotion -Wno-unused-parameter -D_GLFW_BUILD_DLL=1

nuklear/Makefile.am

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
AM_CXXFLAGS=-fno-rtti -std=c++14
99
AM_CPPFLAGS = -D_GLFW_BUILD_DLL=1 @NUKLEAR_CPPFLAGS@ \
10+
-I../raylib/raylib/src \
1011
-I../raylib/raylib/src/external/glfw/include \
1112
-I../raylib/raylib/src/external/glfw/deps
1213
lib_LTLIBRARIES = libnuklear.la

nuklear/main.cpp

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ static void window_size_callback(GLFWwindow* window, int width, int height) {
9595
nk_context *nkp_create_window(const char *title, int width, int height) {
9696
if (!glfwInit()) {
9797
fprintf(stdout, "[GFLW] failed to init!\n");
98-
exit(1);
98+
return nullptr;
9999
}
100100

101101
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
@@ -873,16 +873,22 @@ static int cmd_widgetishovered(int argc, slib_par_t *params, var_t *retval) {
873873
}
874874

875875
static int cmd_windowbegin(int argc, slib_par_t *params, var_t *retval) {
876-
nkp_process_events();
877-
nkbd_begin(_ctx);
878-
const char *title = get_param_str(argc, params, 0, "Untitled");
879-
struct nk_rect rc = get_param_rect(argc, params, 1);
880-
nk_flags flags = get_param_window_flags(argc, params, 5);
881-
v_setint(retval, nk_begin(_ctx, title, rc, flags));
882-
if ((flags & NK_WINDOW_TITLE) == 0) {
883-
nkp_set_window_title(title);
876+
int result;
877+
if (_ctx != nullptr) {
878+
nkp_process_events();
879+
nkbd_begin(_ctx);
880+
const char *title = get_param_str(argc, params, 0, "Untitled");
881+
struct nk_rect rc = get_param_rect(argc, params, 1);
882+
nk_flags flags = get_param_window_flags(argc, params, 5);
883+
v_setint(retval, nk_begin(_ctx, title, rc, flags));
884+
if ((flags & NK_WINDOW_TITLE) == 0) {
885+
nkp_set_window_title(title);
886+
}
887+
result = 1;
888+
} else {
889+
result = 0;
884890
}
885-
return 1;
891+
return result;
886892
}
887893

888894
static int cmd_windowend(int argc, slib_par_t *params, var_t *retval) {

0 commit comments

Comments
 (0)