diff options
author | Vaxry <[email protected]> | 2023-10-14 18:48:05 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2023-10-14 18:48:05 +0100 |
commit | d4e4931008cc64e5b94a65c5e692ff9ed459280b (patch) | |
tree | 6906a395588dee36ddd86fe6456b2c4475eecd14 /Makefile | |
parent | d5a572bd39e5b29af8a17af792a43b409ae1cb06 (diff) | |
download | Hyprland-d4e4931008cc64e5b94a65c5e692ff9ed459280b.tar.gz Hyprland-d4e4931008cc64e5b94a65c5e692ff9ed459280b.zip |
build: CMake pipeline improvements (#3564)
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 83 |
1 files changed, 11 insertions, 72 deletions
@@ -23,32 +23,20 @@ debug: clear: rm -rf build rm -f ./protocols/*-protocol.h ./protocols/*-protocol.c - rm -f ./hyprctl/hyprctl rm -rf ./subprojects/wlroots/build all: + @if [[ "$EUID" = 0 ]]; then echo -en "Avoid running $(MAKE) all as sudo.\n"; fi $(MAKE) clear - $(MAKE) fixwlr - cd ./subprojects/wlroots && meson setup build/ --buildtype=release && ninja -C build/ && mkdir -p ${PREFIX}/lib/ && cp ./build/libwlroots.so.12032 ${PREFIX}/lib/ || echo "Could not install libwlroots to ${PREFIX}/lib/libwlroots.so.12032" - cd subprojects/udis86 && cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B./build -G Ninja && cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` $(MAKE) release - $(MAKE) -C hyprctl all install: - $(MAKE) clear - $(MAKE) fixwlr - cd ./subprojects/wlroots && meson setup build/ --buildtype=release && ninja -C build/ && mkdir -p ${PREFIX}/lib/ && cp ./build/libwlroots.so.12032 ${PREFIX}/lib/ || echo "Could not install libwlroots to ${PREFIX}/lib/libwlroots.so.12032" - cd subprojects/udis86 && cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B./build -G Ninja && cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` && cd ../.. - chmod -R 777 subprojects/udis86 - chmod -R 777 subprojects/wlroots - $(MAKE) release - $(MAKE) -C hyprctl all - chmod 755 ./hyprctl/hyprctl + @if [ ! -d ./build/Hyprland ]; then echo -en "You need to run $(MAKE) all first.\n" && exit 1; fi mkdir -p ${PREFIX}/share/wayland-sessions mkdir -p ${PREFIX}/bin cp -f ./build/Hyprland ${PREFIX}/bin - cp -f ./hyprctl/hyprctl ${PREFIX}/bin + cp -f ./build/hyprctl/hyprctl ${PREFIX}/bin chmod 755 ${PREFIX}/bin/Hyprland chmod 755 ${PREFIX}/bin/hyprctl if [ ! -f ${PREFIX}/share/wayland-sessions/hyprland.desktop ]; then cp ./example/hyprland.desktop ${PREFIX}/share/wayland-sessions; fi @@ -58,26 +46,10 @@ install: mkdir -p ${PREFIX}/share/man/man1 install -m644 ./docs/*.1 ${PREFIX}/share/man/man1 - mkdir -p ${PREFIX}/include/hyprland - mkdir -p ${PREFIX}/include/hyprland/protocols - mkdir -p ${PREFIX}/include/hyprland/wlroots - mkdir -p ${PREFIX}/share/pkgconfig - mkdir -p ${PREFIX}/share/xdg-desktop-portal - - find src -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland - cd subprojects/wlroots/include && find . -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland/wlroots && cd ../../.. - cd subprojects/wlroots/build/include && find . -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland/wlroots && cd ../../../.. - cp ./protocols/*-protocol.h ${PREFIX}/include/hyprland/protocols - cp ./build/hyprland.pc ${PREFIX}/share/pkgconfig - cp ./assets/hyprland-portals.conf ${PREFIX}/share/xdg-desktop-portal/ - if [ -d /usr/share/pkgconfig ]; then cp ./build/hyprland.pc /usr/share/pkgconfig 2>/dev/null || true; fi + mkdir -p ${PREFIX}/lib/ + cp ./subprojects/wlroots/build/libwlroots.so.12032 ${PREFIX}/lib/ - chmod -R 755 ${PREFIX}/include/hyprland - chmod 755 ${PREFIX}/share/pkgconfig - -cleaninstall: - echo -en "$(MAKE) cleaninstall has been DEPRECATED, you should avoid using it in the future.\nRunning $(MAKE) install instead...\n" - $(MAKE) install + $(MAKE) installheaders uninstall: rm -f ${PREFIX}/share/wayland-sessions/hyprland.desktop @@ -88,37 +60,12 @@ uninstall: rm -f ${PREFIX}/share/man/man1/Hyprland.1 rm -f ${PREFIX}/share/man/man1/hyprctl.1 -fixwlr: - sed -E -i -e 's/(soversion = 12)([^032]|$$)/soversion = 12032/g' subprojects/wlroots/meson.build - - rm -rf ./subprojects/wlroots/build - -config: - $(MAKE) fixwlr - - meson setup subprojects/wlroots/build subprojects/wlroots --prefix=${PREFIX} --buildtype=release -Dwerror=false -Dexamples=false -Drenderers="gles2" - ninja -C subprojects/wlroots/build/ - - ninja -C subprojects/wlroots/build/ install - - chmod -R 777 subprojects/wlroots - - cd subprojects/udis86 && cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build -G Ninja && cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` - - chmod -R 777 subprojects/udis86 - pluginenv: - cd subprojects/udis86 && cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build -G Ninja && cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` - - $(MAKE) fixwlr - - meson setup subprojects/wlroots/build subprojects/wlroots --prefix=${PREFIX} --buildtype=release -Dwerror=false -Dexamples=false - ninja -C subprojects/wlroots/build/ - - chmod -R 777 subprojects/udis86 - chmod -R 777 subprojects/wlroots - - cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build -G Ninja + @echo -en "$(MAKE) pluginenv has been deprecated.\nPlease run $(MAKE) all && sudo $(MAKE) installheaders\n" + @exit 1 + +installheaders: + @if [ ! -d ./build/Hyprland ]; then echo -en "You need to run $(MAKE) all first.\n" && exit 1; fi mkdir -p ${PREFIX}/include/hyprland mkdir -p ${PREFIX}/include/hyprland/protocols @@ -135,14 +82,6 @@ pluginenv: chmod -R 755 ${PREFIX}/include/hyprland chmod 755 ${PREFIX}/share/pkgconfig -configdebug: - $(MAKE) fixwlr - - meson setup subprojects/wlroots/build subprojects/wlroots --prefix=${PREFIX} --buildtype=debug -Dwerror=false -Dexamples=false -Drenderers="gles2" -Db_sanitize=address - ninja -C subprojects/wlroots/build/ - - ninja -C subprojects/wlroots/build/ install - man: pandoc ./docs/Hyprland.1.rst \ --standalone \ |