hyprland-dwindle-autogroup/Makefile

49 lines
1.2 KiB
Makefile
Raw Normal View History

2023-06-06 22:02:44 +00:00
# compile with `make all`
# make sure you've ran `make pluginenv` in the clonned Hyprland repo
2023-03-31 11:48:22 +00:00
PLUGIN_NAME=dwindle-autogroup
2023-06-06 22:00:04 +00:00
INSTALL_LOCATION=${HOME}/.local/share/hyprload/plugins/bin
2023-03-31 11:48:22 +00:00
SOURCE_FILES=$(wildcard src/*.cpp)
2023-07-23 16:16:30 +00:00
# Compiler/Linker flags
COMPILE_DEFINES=-DWLR_USE_UNSTABLE
COMPILE_FLAGS=-g -fPIC --no-gnu-unique -std=c++23
COMPILE_FLAGS+=`pkg-config --cflags pixman-1 libdrm hyprland`
COMPILE_FLAGS+=-Iinclude
LINK_FLAGS=-shared
2023-06-06 22:03:08 +00:00
# Phony targets (i.e. targets that don't actually build anything, and don't track dependencies)
# These will always be run when called
2023-07-23 16:16:30 +00:00
.PHONY: clean uninstall clangd
2023-03-31 11:48:22 +00:00
2023-07-23 16:16:30 +00:00
all:
@if ! pkg-config --exists hyprland; then \
echo 'Hyprland headers not available. Run `make pluginenv` in the root Hyprland directory.'; \
exit 1; \
fi
2023-03-31 11:48:22 +00:00
g++ $(LINK_FLAGS) $(COMPILE_FLAGS) $(COMPILE_DEFINES) $(SOURCE_FILES) -o $(PLUGIN_NAME).so
2023-03-31 11:48:22 +00:00
2023-07-23 16:16:30 +00:00
install: all
$(MAKE) clear
mkdir -p $(INSTALL_LOCATION)
cp $(PLUGIN_NAME).so $(INSTALL_LOCATION)
uninstall:
rm -rf $(INSTALL_LOCATION)
2023-03-31 11:48:22 +00:00
clean:
rm ./${PLUGIN_NAME}.so
clangd:
echo "$(COMPILE_FLAGS) $(COMPILE_DEFINES)" | \
sed 's/--no-gnu-unique//g' | \
sed 's/ -/\n-/g' | \
sed 's/std=c++23/std=c++2b/g' \
> compile_flags.txt