From 312a606d54455e5d6549906275710605c6784a1e Mon Sep 17 00:00:00 2001 From: Tobias Kortkamp Date: Tue, 23 Apr 2019 11:41:03 +0200 Subject: Use epoll_create1() instead of epoll_create() epoll_create() takes a size argument not a flag like EPOLL_CLOEXEC [1]. [1] https://linux.die.net/man/2/epoll_create Signed-off-by: Tobias Kortkamp --- lib/renderers/wayland/wayland.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/renderers/wayland/wayland.c b/lib/renderers/wayland/wayland.c index 442b0f6..603cd8b 100644 --- a/lib/renderers/wayland/wayland.c +++ b/lib/renderers/wayland/wayland.c @@ -286,7 +286,7 @@ constructor(struct bm_menu *menu) wl_list_insert(&wayland->windows, &window->link); } - if (!efd && (efd = epoll_create(EPOLL_CLOEXEC)) < 0) + if (!efd && (efd = epoll_create1(EPOLL_CLOEXEC)) < 0) goto fail; struct epoll_event ep; -- cgit v1.2.3-70-g09d2 From 2ca0625a70245e8a0aa1cda2be7c367c4fd62949 Mon Sep 17 00:00:00 2001 From: Tobias Kortkamp Date: Tue, 23 Apr 2019 11:45:13 +0200 Subject: Depend on epoll-shim on FreeBSD/DragonFly They do not natively support epoll(2) but require a library shim for it. Signed-off-by: Tobias Kortkamp --- lib/renderers/wayland/CMakeLists.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/renderers/wayland/CMakeLists.txt b/lib/renderers/wayland/CMakeLists.txt index 8246908..e4c473e 100644 --- a/lib/renderers/wayland/CMakeLists.txt +++ b/lib/renderers/wayland/CMakeLists.txt @@ -3,11 +3,15 @@ FIND_PACKAGE(Cairo REQUIRED) FIND_PACKAGE(Pango REQUIRED) FIND_PACKAGE(XKBCommon REQUIRED) +if (CMAKE_SYSTEM_NAME MATCHES "DragonFly" OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD") + PKG_CHECK_MODULES(EPOLL_SHIM REQUIRED epoll-shim) +endif () + INCLUDE(Wayland) WAYLAND_ADD_PROTOCOL_CLIENT(proto-layer-shell "wlr-layer-shell-unstable-v1.xml" layer-shell) WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell "xdg-shell.xml" xdg-shell) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${WAYLAND_CLIENT_INCLUDE_DIR} ${XKBCOMMON_INCLUDE_DIR} ${CAIRO_INCLUDE_DIRS} ${PANGO_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${WAYLAND_CLIENT_INCLUDE_DIR} ${XKBCOMMON_INCLUDE_DIR} ${CAIRO_INCLUDE_DIRS} ${PANGO_INCLUDE_DIRS} ${EPOLL_SHIM_INCLUDE_DIRS}) ADD_LIBRARY(bemenu-renderer-wayland SHARED wayland.c registry.c window.c ${proto-layer-shell} ${proto-xdg-shell}) SET_TARGET_PROPERTIES(bemenu-renderer-wayland PROPERTIES PREFIX "") -TARGET_LINK_LIBRARIES(bemenu-renderer-wayland ${BEMENU_LIBRARIES} ${WAYLAND_CLIENT_LIBRARIES} ${XKBCOMMON_LIBRARIES} ${CAIRO_LIBRARIES} ${PANGO_LIBRARIES} m) +TARGET_LINK_LIBRARIES(bemenu-renderer-wayland ${BEMENU_LIBRARIES} ${WAYLAND_CLIENT_LIBRARIES} ${XKBCOMMON_LIBRARIES} ${CAIRO_LIBRARIES} ${PANGO_LIBRARIES} ${EPOLL_SHIM_LIBRARIES} m) INSTALL(TARGETS bemenu-renderer-wayland DESTINATION "${CMAKE_INSTALL_LIBDIR}/bemenu") -- cgit v1.2.3-70-g09d2 From 620ae690209a36b680524f4a4d8bec2f464f05fa Mon Sep 17 00:00:00 2001 From: Tobias Kortkamp Date: Tue, 23 Apr 2019 12:17:16 +0200 Subject: Use x_LINK_LIBRARIES instead of x_LIBRARIES The libraries might not be in the linkers default search path, so use absolute paths for them instead when using TARGET_LINK_LIBRARIES. Note that XKBCOMMON_LIBRARIES is an alias for XKBCOMMON_LIBRARY and already contains an absolute path. Signed-off-by: Tobias Kortkamp --- lib/renderers/wayland/CMakeLists.txt | 2 +- lib/renderers/x11/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/renderers/wayland/CMakeLists.txt b/lib/renderers/wayland/CMakeLists.txt index e4c473e..dbe56c8 100644 --- a/lib/renderers/wayland/CMakeLists.txt +++ b/lib/renderers/wayland/CMakeLists.txt @@ -13,5 +13,5 @@ WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell "xdg-shell.xml" xdg-shell) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${WAYLAND_CLIENT_INCLUDE_DIR} ${XKBCOMMON_INCLUDE_DIR} ${CAIRO_INCLUDE_DIRS} ${PANGO_INCLUDE_DIRS} ${EPOLL_SHIM_INCLUDE_DIRS}) ADD_LIBRARY(bemenu-renderer-wayland SHARED wayland.c registry.c window.c ${proto-layer-shell} ${proto-xdg-shell}) SET_TARGET_PROPERTIES(bemenu-renderer-wayland PROPERTIES PREFIX "") -TARGET_LINK_LIBRARIES(bemenu-renderer-wayland ${BEMENU_LIBRARIES} ${WAYLAND_CLIENT_LIBRARIES} ${XKBCOMMON_LIBRARIES} ${CAIRO_LIBRARIES} ${PANGO_LIBRARIES} ${EPOLL_SHIM_LIBRARIES} m) +TARGET_LINK_LIBRARIES(bemenu-renderer-wayland ${BEMENU_LIBRARIES} ${WAYLAND_CLIENT_LINK_LIBRARIES} ${XKBCOMMON_LIBRARIES} ${CAIRO_LINK_LIBRARIES} ${PANGO_LINK_LIBRARIES} ${EPOLL_SHIM_LINK_LIBRARIES} m) INSTALL(TARGETS bemenu-renderer-wayland DESTINATION "${CMAKE_INSTALL_LIBDIR}/bemenu") diff --git a/lib/renderers/x11/CMakeLists.txt b/lib/renderers/x11/CMakeLists.txt index 5f86fb6..7103120 100644 --- a/lib/renderers/x11/CMakeLists.txt +++ b/lib/renderers/x11/CMakeLists.txt @@ -5,5 +5,5 @@ FIND_PACKAGE(Pango REQUIRED) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${X11_INCLUDE_DIR} ${X11_Xinerama_INCLUDE_PATH} ${CAIRO_INCLUDE_DIRS} ${PANGO_INCLUDE_DIRS}) ADD_LIBRARY(bemenu-renderer-x11 SHARED x11.c window.c xkb_unicode.c) SET_TARGET_PROPERTIES(bemenu-renderer-x11 PROPERTIES PREFIX "") -TARGET_LINK_LIBRARIES(bemenu-renderer-x11 ${BEMENU_LIBRARIES} ${X11_LIBRARIES} ${X11_Xinerama_LIB} ${CAIRO_LIBRARIES} ${PANGO_LIBRARIES} m) +TARGET_LINK_LIBRARIES(bemenu-renderer-x11 ${BEMENU_LIBRARIES} ${X11_LINK_LIBRARIES} ${X11_Xinerama_LIB} ${CAIRO_LINK_LIBRARIES} ${PANGO_LINK_LIBRARIES} m) INSTALL(TARGETS bemenu-renderer-x11 DESTINATION "${CMAKE_INSTALL_LIBDIR}/bemenu") -- cgit v1.2.3-70-g09d2