mirror of
https://github.com/ItsDrike/hyprland-dwindle-autogroup.git
synced 2024-11-10 02:59:41 +00:00
50 lines
1.2 KiB
Makefile
50 lines
1.2 KiB
Makefile
# compile with `make all`
|
|
# make sure you've ran `make pluginenv` in the clonned Hyprland repo
|
|
|
|
PLUGIN_NAME=dwindle-autogroup
|
|
|
|
INSTALL_LOCATION=${HOME}/.local/share/hyprload/plugins/bin
|
|
|
|
SOURCE_FILES=$(wildcard src/*.cpp)
|
|
|
|
# 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
|
|
|
|
# Phony targets (i.e. targets that don't actually build anything, and don't track dependencies)
|
|
# These will always be run when called
|
|
.PHONY: clean uninstall clangd
|
|
|
|
all:
|
|
$(MAKE) clear
|
|
@if ! pkg-config --exists hyprland; then \
|
|
echo 'Hyprland headers not available. Run `make pluginenv` in the root Hyprland directory.'; \
|
|
exit 1; \
|
|
fi
|
|
|
|
g++ $(LINK_FLAGS) $(COMPILE_FLAGS) $(COMPILE_DEFINES) $(SOURCE_FILES) -o $(PLUGIN_NAME).so
|
|
|
|
install:
|
|
$(MAKE) all
|
|
mkdir -p $(INSTALL_LOCATION)
|
|
cp $(PLUGIN_NAME).so $(INSTALL_LOCATION)
|
|
|
|
uninstall:
|
|
rm -rf $(INSTALL_LOCATION)/$(PLUGIN_NAME).so
|
|
|
|
clear:
|
|
rm -f ./$(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
|