diff --git a/.gitignore b/.gitignore index a8eaa48..191cdd4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +build/ absinthe xdg-shell-protocol.h wlr-layer-shell-unstable-v1-protocol.h diff --git a/Makefile b/Makefile index 613fabb..bbad683 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,28 @@ include config.mk -all: compile +TARGET = absinthe + +SRC_FILES != find src/ -type f +OBJ_FILES = $(SRC_FILES:src/%.c=build/%.o) + +all: $(TARGET) proto: $(WAYLAND_SCANNER) server-header $(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml xdg-shell-protocol.h $(WAYLAND_SCANNER) server-header ./protocols/wlr-layer-shell-unstable-v1.xml wlr-layer-shell-unstable-v1-protocol.h -compile: proto - $(CC) -o absinthe src/* $(CFLAGS) $(LDFLAGS) +$(OBJ_FILES): + mkdir -p $(@D) + $(CC) $(CFLAGS) -o $@ -c $(@:build/%.o=src/%.c) + +$(TARGET): proto $(OBJ_FILES) + $(CC) -o absinthe $(OBJ_FILES) $(LDFLAGS) + +clean: + rm -rf build/ + rm absinthe + rm xdg-shell-protocol.h + rm wlr-layer-shell-unstable-v1-protocol.h format: find src/ -type f | xargs $(CLANG_FORMAT) -i diff --git a/config.mk b/config.mk index 1d6268e..c966052 100644 --- a/config.mk +++ b/config.mk @@ -21,7 +21,7 @@ DEVFLAGS = -g CPPFLAGS += $(XWAYLAND) -DWLR_USE_UNSTABLE -I. -I./include -CFLAGS += -O2 -march=native -Wall -Wextra -Wpedantic +CFLAGS += -O2 -march=native -Wall -Wextra CFLAGS += $(PKG_CFLAGS) $(WLR_CFLAGS) CFLAGS += $(CPPFLAGS) CFLAGS += $(DEVFLAGS) diff --git a/src/toplevel.c b/src/toplevel.c index acbc3ff..cc97d7e 100644 --- a/src/toplevel.c +++ b/src/toplevel.c @@ -21,12 +21,13 @@ toplevel_at(absn_server *server, double lx, double ly, return NULL; } + struct wlr_scene_buffer *scene_buffer = NULL; + struct wlr_scene_surface *scene_surface = NULL; + switch (node->type) { case WLR_SCENE_NODE_BUFFER: - struct wlr_scene_buffer *scene_buffer = - wlr_scene_buffer_from_node(node); - struct wlr_scene_surface *scene_surface = - wlr_scene_surface_try_from_buffer(scene_buffer); + scene_buffer = wlr_scene_buffer_from_node(node); + scene_surface = wlr_scene_surface_try_from_buffer(scene_buffer); if (!scene_surface) { return NULL; }