Hyprland icon indicating copy to clipboard operation
Hyprland copied to clipboard

Add custom cmake target to generate protocol headers during `make installheaders`

Open zjeffer opened this issue 1 year ago • 5 comments

Describe your PR, what does it fix/add?

As discussed in https://github.com/hyprwm/Hyprland/issues/6115, I think this is how we should do the protocol header generation: add a custom target that simply depends on the OUTPUTs of the add_custom_commands, and then execute that target in the installheaders step in the Makefile.

This way, the headers will only be generated if necessary, and if they are already there, they won't be overridden.

I reapplied the reverted commit and added my changes in the second commit.

Is there anything you want to mention? (unchecked code, possible bugs, found problems, breaking compatibility, etc.)

Is it ready for merging, or does it need work?

ready to merge

CC @fufexan @cnt0

zjeffer avatar May 21 '24 22:05 zjeffer

Tested by only configuring, then running make installheaders (simulating what hyprpm does). The command executed successfully.

zjeffer avatar May 21 '24 22:05 zjeffer

I tried to test it by compiling and installing to /usr/local/, and then restarting Hyprland, but when I run hyprpm update -v, I get the following error:

╰─ hyprpm update -v
[v] version returned: Hyprland, built from branch main at commit 75ab9b3274d612fa292380213767f74f912a3893  (Add custom cmake target for installheaders).
Date: Wed May 22 19:53:42 2024
Tag: , commits: 4726

flags: (if any)


[v] parsed commit 75ab9b3274d612fa292380213767f74f912a3893 at branch main on Wed May 22 19:53:42 2024, commits 4726

! Cloning https://github.com/hyprwm/hyprland, this might take a moment.                                                                                                                      
[v] will shallow since: Wed May 15 19:53:42 2024                                                                                                                                             

 ╍━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  0 / 5  Cloning the hyprland repository                                                                                                  

✔ cloned                                                                                                                                                                                     
[v] git returned (co): Already on 'main'                                                                                                                                                     
Your branch is up to date with 'origin/main'.

[v] git returned (rs): rm 'subprojects/tracy'                                                                                                                                                
fatal: Could not parse object '75ab9b3274d612fa292380213767f74f912a3893'.

✔ checked out to running ver

so it can't check out the commit for some reason, and then it proceeds to configure Hyprland from the main branch.

When it gets to the installheaders step, it seems to install the headers fine:

✔ configured Hyprland                                                                                                                                                                        
[v] installation will run: sed -i -e "s#PREFIX = /usr/local#PREFIX = /home/zjeffer/.local/share/hyprpm/headersRoot#" /tmp/hyprpm/hyprland-zjeffer/Makefile && cd /tmp/hyprpm/hyprland-zjeffer && make installheaders
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╍━━━━━━━━━  4 / 5  Installing sources[v] installer returned: # remove previous headers from hyprpm's dir                                            
rm -fr /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland
mkdir -p /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland
mkdir -p /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland/protocols
mkdir -p /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland/wlr
mkdir -p /home/zjeffer/.local/share/hyprpm/headersRoot/share/pkgconfig
find src -name '*.h*' -print0 | cpio --quiet -0dump /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland
cd subprojects/wlroots-hyprland/include/wlr && find . -name '*.h*' -print0 | cpio --quiet -0dump /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland/wlr && cd ../../../..
cd subprojects/wlroots-hyprland/build/include && find . -name '*.h*' -print0 | cpio --quiet -0dump /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland/wlr && cd ../../../..
cp ./protocols/*.h* /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland/protocols
cp ./build/hyprland.pc /home/zjeffer/.local/share/hyprpm/headersRoot/share/pkgconfig
if [ -d /usr/share/pkgconfig ]; then cp ./build/hyprland.pc /usr/share/pkgconfig 2>/dev/null || true; fi
chmod -R 755 /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland
chmod 755 /home/zjeffer/.local/share/hyprpm/headersRoot/share/pkgconfig

But when it then checks the installed headers, it reports a headers version mismatch:

✖ failed to install headers with error code 4                                                                                                                                                
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  5 / 5  Failed                                                                                                                           

✖ Headers version mismatch. Please run hyprpm update to fix those.

So from what I can tell the problem isn't in my code, but in the fact that:

  • Hyprpm maybe can't handle checking out a specific commit that isn't in the main branch (because of shallow clone)?
  • When the checkout fails, it proceeds as if nothing happens. I think it should fail or at least be more clear.

Is there a way to test hyprpm with a commit built from a different branch than main?

From my manual testing (configuring (not building) hyprland and then running make installheaders), everything works fine.

zjeffer avatar May 23 '24 18:05 zjeffer

@zjeffer git confuses your main branch with the repo's main branch. If you rename it, I think it should work.

fufexan avatar May 23 '24 18:05 fufexan

Same issue, it's trying to find the branch I created in hyprpm/Hyprland, not in zjeffer/Hyprland:

╰─ hyprpm update -v                         
[v] version returned: Hyprland, built from branch test/zjeffer/hyprpm at commit 75ab9b3274d612fa292380213767f74f912a3893  (Add custom cmake target for installheaders).
Date: Wed May 22 19:53:42 2024
Tag: , commits: 4726

flags: (if any)


[v] parsed commit 75ab9b3274d612fa292380213767f74f912a3893 at branch test/zjeffer/hyprpm on Wed May 22 19:53:42 2024, commits 4726

! Cloning https://github.com/hyprwm/hyprland, this might take a moment.                                                                                                                      
✔ cloned                                                                                                                                                                                                                                                     
[v] git returned (co): error: pathspec 'test/zjeffer/hyprpm' did not match any file(s) known to git                                                                                                                                                          

[v] git returned (rs): rm 'subprojects/tracy'                                                                                                                                                                                                                
fatal: Could not parse object '75ab9b3274d612fa292380213767f74f912a3893'.

Looks like hyprpm doesn't take into account forks at all.

zjeffer avatar May 23 '24 19:05 zjeffer

Yeah, it's really hard to test hyprpm when you are running code from an upstream pr/fork etc.

I think it might work if you are running a branch of the main repo

I wonder if we can come up with a way to have it run against PRs; then it can be CI step in the PR checks so it'll catch most potential hyprpm breakage before it hits main

zakk4223 avatar May 23 '24 20:05 zakk4223

@fufexan Could you push my branch to the main repo, so I can test this out?

zjeffer avatar May 25 '24 10:05 zjeffer

@fufexan Could you push my branch to the main repo, so I can test this out?

Done, see the cmake_installheaders branch.

fufexan avatar May 25 '24 10:05 fufexan

@fufexan Thanks, sadly it still doesn't work

╰─ hyprpm update -v
[v] version returned: Hyprland, built from branch  at commit c28bc6c633f1211cda46fc0170f6cafa303eaee8  ([gha] Nix: update inputs).
Date: Sat May 25 12:30:46 2024
Tag: v0.40.0-121-gc28bc6c6, commits: 4727

flags: (if any)


[v] parsed commit c28bc6c633f1211cda46fc0170f6cafa303eaee8 at branch  on Sat May 25 12:30:46 2024, commits 4727

! Cloning https://github.com/hyprwm/hyprland, this might take a moment.                                                                                                                      
[v] will shallow since: Sat May 18 12:30:46 2024                                                                                                                                             

✔ cloned                                                                                                                                                                                     
[v] git returned (co): Your branch is up to date with 'origin/main'.                                                                                                                         

[v] git returned (rs): rm 'subprojects/tracy'                                                                                                                                                
fatal: Could not parse object 'c28bc6c633f1211cda46fc0170f6cafa303eaee8'.

Hyprpm seems untestable if the commit is not part of the main branch...

I did test it manually by configuring Hyprland and then executing make installheaders, which was successful.

zjeffer avatar May 25 '24 17:05 zjeffer

@zjeffer what distro are you on? The branch seems not to have been populated when you built Hyprland, and that's why it doesn't work. Using commits from other branches than main works, as I've made hyprpm do a full clone on anything but main.

fufexan avatar May 25 '24 19:05 fufexan

I'm on arch. I'll try out what's in yawor's comment soon

zjeffer avatar May 25 '24 19:05 zjeffer

I tried yawor's steps (but used /usr/local instead of /usr/, because that's where I'm installing Hyprland to when building it myself), and I still get the same error with the checkout not finding the commit.

This seems to be a different issue to what's in #6232 though. There the repo is not clonable at all.

zjeffer avatar May 25 '24 19:05 zjeffer

I think it's because I built from a detached head state, causing the branch to be empty. Here it shallow clones if the branch is main or empty: https://github.com/hyprwm/Hyprland/blob/main/hyprpm/src/core/PluginManager.cpp#L445.

I'll build Hyprland from the actual branch now.

zjeffer avatar May 25 '24 19:05 zjeffer

It works!

Here's the full output:

hyprpm update -v

[v] version returned: Hyprland, built from branch cmake_installheaders at commit c28bc6c633f1211cda46fc0170f6cafa303eaee8  ([gha] Nix: update inputs).
Date: Sat May 25 12:30:46 2024
Tag: v0.40.0-121-gc28bc6c6, commits: 4727

flags: (if any)


[v] parsed commit c28bc6c633f1211cda46fc0170f6cafa303eaee8 at branch cmake_installheaders on Sat May 25 12:30:46 2024, commits 4727

! Cloning https://github.com/hyprwm/hyprland, this might take a moment.                                                                                                                      
✔ cloned                                                                                                                                                                                                                                                     
[v] git returned (co): Switched to a new branch 'cmake_installheaders'                                                                                                                                                                                       
branch 'cmake_installheaders' set up to track 'origin/cmake_installheaders'.

[v] git returned (rs): rm 'subprojects/tracy'                                                                                                                                                                                                                
HEAD is now at c28bc6c6 [gha] Nix: update inputs

✔ checked out to running ver                                                                                                                                                                                                                                 
! configuring Hyprland                                                                                                                                                                                                                                       
[v] setting PREFIX for cmake to /home/zjeffer/.local/share/hyprpm/headersRoot                                                                                                                                                                                
[v] cmake returned: CMake Warning (dev) at /usr/share/cmake/Modules/GNUInstallDirs.cmake:253 (message):                                                                                                                                                      
  Unable to determine default CMAKE_INSTALL_LIBDIR directory because no
  target architecture is known.  Please enable at least one language before
  including GNUInstallDirs.
Call Stack (most recent call first):
  CMakeLists.txt:5 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.
Not searching for unused variables given on the command line.

-- The C compiler identification is GNU 14.1.1
-- The CXX compiler identification is GNU 14.1.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Gathering git info
-- Found Python3: /usr/bin/python3.12 (found version "3.12.3") found components: Interpreter
Building itab.c/itab.h...
-- Setting up wlroots
-- Found PkgConfig: /usr/bin/pkg-config (found version "2.1.1")
-- Found WaylandScanner at /usr/bin/wayland-scanner
-- Found wayland-protocols at //usr/share/wayland-protocols
-- Configuring Hyprland in Release with CMake
-- Checking deps...
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found OpenGL: /usr/lib/libOpenGL.so  found components: GLES3
-- Checking for modules 'xkbcommon;uuid;wayland-server;wayland-client;wayland-cursor;wayland-protocols;cairo;pango;pangocairo;pixman-1;libdrm;libinput;hwdata;libseat;libdisplay-info;libliftoff;libudev;gbm;hyprlang>=0.3.2;hyprcursor>=0.1.7'
--   Found xkbcommon, version 1.7.0
--   Found uuid, version 2.40.1
--   Found wayland-server, version 1.22.0
--   Found wayland-client, version 1.22.0
--   Found wayland-cursor, version 1.22.0
--   Found wayland-protocols, version 1.36
--   Found cairo, version 1.18.0
--   Found pango, version 1.52.2
--   Found pangocairo, version 1.52.2
--   Found pixman-1, version 0.43.4
--   Found libdrm, version 2.4.120
--   Found libinput, version 1.25.0
--   Found hwdata, version 0.382
--   Found libseat, version 0.8.0
--   Found libdisplay-info, version 0.1.1
--   Found libliftoff, version 0.4.1
--   Found libudev, version 255
--   Found gbm, version 24.0.7-arch1.3
--   Found hyprlang, version 0.5.2
--   Found hyprcursor, version 0.1.8
-- Looking for execinfo.h
-- Looking for execinfo.h - found
-- Configuration supports execinfo
-- Looking for backtrace in execinfo
-- Looking for backtrace in execinfo - not found
-- Looking for sys/timerfd.h
-- Looking for sys/timerfd.h - found
-- Checking for module 'epoll-shim'
--   Package 'epoll-shim', required by 'virtual:world', not found
-- XWAYLAND Enabled (NO_XWAYLAND not defined) checking deps...
-- Checking for modules 'xcb;xwayland;xcb-util;xcb-render;xcb-xfixes;xcb-icccm;xcb-composite;xcb-res;xcb-ewmh'
--   Found xcb, version 1.17.0
--   Found xwayland, version 21.1.99.1
--   Found xcb-util, version 0.4.1
--   Found xcb-render, version 1.17.0
--   Found xcb-xfixes, version 1.17.0
--   Found xcb-icccm, version 0.4.2
--   Found xcb-composite, version 1.17.0
--   Found xcb-res, version 1.17.0
--   Found xcb-ewmh, version 0.4.2
-- Checking for module 'xcb-errors'
--   Found xcb-errors, version 1.0.1
-- SYSTEMD support is requested (NO_SYSTEMD not defined)...
-- Setting precompiled headers
-- Setting link libraries
-- Checking for module 'tomlplusplus'
--   Found tomlplusplus, version 3.4.0
-- Configuring done (1.6s)
-- Generating done (0.0s)
-- Build files have been written to: /tmp/hyprpm/hyprland-zjeffer/build

[v] meson returned: The Meson build system                                                                                                                                                                                                                   
Version: 1.4.0
Source dir: /tmp/hyprpm/hyprland-zjeffer/subprojects/wlroots-hyprland
Build dir: /tmp/hyprpm/hyprland-zjeffer/subprojects/wlroots-hyprland/build
Build type: native build
Project name: wlroots
Project version: 0.18.0-dev
C compiler for the host machine: cc (gcc 14.1.1 "cc (GCC) 14.1.1 20240522")
C linker for the host machine: cc ld.bfd 2.42.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -Wundef: YES 
Compiler for C supports arguments -Wlogical-op: YES 
Compiler for C supports arguments -Wmissing-include-dirs: YES 
Compiler for C supports arguments -Wold-style-definition: YES 
Compiler for C supports arguments -Wpointer-arith: YES 
Compiler for C supports arguments -Winit-self: YES 
Compiler for C supports arguments -Wstrict-prototypes: YES 
Compiler for C supports arguments -Wimplicit-fallthrough=2: YES 
Compiler for C supports arguments -Wendif-labels: YES 
Compiler for C supports arguments -Wstrict-aliasing=2: YES 
Compiler for C supports arguments -Woverflow: YES 
Compiler for C supports arguments -Wmissing-prototypes: YES 
Compiler for C supports arguments -Walloca: YES 
Compiler for C supports arguments -Wno-missing-braces: YES 
Compiler for C supports arguments -Wno-missing-field-initializers: YES 
Compiler for C supports arguments -Wno-unused-parameter: YES 
Compiler for C supports arguments -fmacro-prefix-map=/prefix/to/hide=: YES 
Found pkg-config: YES (/usr/bin/pkg-config) 2.1.1
Run-time dependency wayland-server found: YES 1.22.0
Run-time dependency libdrm found: YES 2.4.120
Run-time dependency xkbcommon found: YES 1.7.0
Run-time dependency pixman-1 found: YES 0.43.4
Library m found: YES
Library rt found: YES
Run-time dependency wayland-protocols found: YES 1.36
Build-time dependency wayland-scanner found: YES 1.22.0
Program /usr/bin/wayland-scanner found: YES (/usr/bin/wayland-scanner)
Has header "linux/dma-buf.h" : YES 
Run-time dependency egl found: YES 1.5
Run-time dependency gbm found: YES 24.0.7-arch1.3
Run-time dependency glesv2 found: YES 3.2
Program ./embed.sh found: YES (/tmp/hyprpm/hyprland-zjeffer/subprojects/wlroots-hyprland/render/gles2/shaders/./embed.sh)
Dependency pixman-1 found: YES 0.43.4 (cached)
Dependency gbm found: YES 24.0.7-arch1.3 (cached)
Checking for function "gbm_bo_get_fd_for_plane" with dependency gbm: YES 
Run-time dependency libudev found: YES 255
Run-time dependency libseat found: YES 0.8.0
Build-time dependency hwdata found: YES 0.382
Run-time dependency libdisplay-info found: YES 0.1.1
Run-time dependency libliftoff found: YES 0.4.1
Run-time dependency libinput found: YES 1.25.0
Run-time dependency xcb found: YES 1.17.0
Run-time dependency xcb-dri3 found: YES 1.17.0
Run-time dependency xcb-present found: YES 1.17.0
Run-time dependency xcb-render found: YES 1.17.0
Run-time dependency xcb-renderutil found: YES 0.3.10
Run-time dependency xcb-shm found: YES 1.17.0
Run-time dependency xcb-xfixes found: YES 1.17.0
Run-time dependency xcb-xinput found: YES 1.17.0
Run-time dependency wayland-client found: YES 1.22.0
Run-time dependency xwayland found: YES 21.1.99.1
Dependency xcb found: YES 1.17.0 (cached)
Run-time dependency xcb-composite found: YES 1.17.0
Run-time dependency xcb-ewmh found: YES 0.4.2
Run-time dependency xcb-icccm found: YES 0.4.2
Dependency xcb-render found: YES 1.17.0 (cached)
Run-time dependency xcb-res found: YES 1.17.0
Dependency xcb-xfixes found: YES 1.17.0 (cached)
Run-time dependency xcb-errors found: YES 1.0.1
Checking for function "xcb_xfixes_set_client_disconnect_mode" with dependencies xcb, xcb-composite, xcb-ewmh, xcb-icccm, xcb-render, xcb-res, xcb-xfixes, xcb-errors: YES 
Configuring config.h using configuration
Configuring version.h using configuration
Configuring config.h using configuration
Message: Patches found. Applying...
NEW: 'patches/nvidia-hardware-cursors.patch'
NEW: 'patches/surface-nondivisible-by-scale.patch'
Build targets in project: 136

wlroots 0.18.0-dev

    drm-backend     : YES
    x11-backend     : YES
    libinput-backend: YES
    xwayland        : YES
    gles2-renderer  : YES
    vulkan-renderer : NO
    gbm-allocator   : YES
    session         : YES
    xcb-errors      : YES
    egl             : YES
    libliftoff      : YES

  User defined options
    examples        : false
    renderers       : gles2

Found ninja-1.12.1 at /usr/bin/ninja
                                                 
✔ configured Hyprland                                                                                                                                                                                                                                        
[v] installation will run: sed -i -e "s#PREFIX = /usr/local#PREFIX = /home/zjeffer/.local/share/hyprpm/headersRoot#" /tmp/hyprpm/hyprland-zjeffer/Makefile && cd /tmp/hyprpm/hyprland-zjeffer && make installheaders                                         
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╍━━━━━━━━━  4 / 5  Installing sources[v] installer returned: # remove previous headers from hyprpm's dir                                                                                                            
rm -fr /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland
mkdir -p /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland
mkdir -p /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland/protocols
mkdir -p /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland/wlr
mkdir -p /home/zjeffer/.local/share/hyprpm/headersRoot/share/pkgconfig
cmake --build ./build --config Release --target generate-protocol-headers
[0/2] Re-checking globbed directories...
[1/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/wlr-screencopy-unstable-v1-protocol.h
[2/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/hyprland-global-shortcuts-v1-protocol.h
[3/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/hyprland-toplevel-export-v1-protocol.h
[4/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/wlr-gamma-control-unstable-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/wlr-gamma-control-unstable-v1.hpp
[5/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/wlr-foreign-toplevel-management-unstable-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/wlr-foreign-toplevel-management-unstable-v1.hpp
[6/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/wlr-output-power-management-unstable-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/wlr-output-power-management-unstable-v1.hpp
[7/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/linux-dmabuf-unstable-v1-protocol.h
[8/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/text-input-unstable-v1-protocol.h
[9/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/virtual-keyboard-unstable-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/virtual-keyboard-unstable-v1.hpp
[10/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/wlr-virtual-pointer-unstable-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/wlr-virtual-pointer-unstable-v1.hpp
[11/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/input-method-unstable-v2.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/input-method-unstable-v2.hpp
[12/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/wlr-output-management-unstable-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/wlr-output-management-unstable-v1.hpp
[13/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/kde-server-decoration.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/kde-server-decoration.hpp
[14/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/wlr-data-control-unstable-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/wlr-data-control-unstable-v1.hpp
[15/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/hyprland-focus-grab-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/hyprland-focus-grab-v1.hpp
[16/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/wlr-layer-shell-unstable-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/wlr-layer-shell-unstable-v1.hpp
[17/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/tearing-control-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/tearing-control-v1.hpp
[18/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/fractional-scale-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/fractional-scale-v1.hpp
[19/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/xdg-output-unstable-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/xdg-output-unstable-v1.hpp
[20/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/cursor-shape-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/cursor-shape-v1.hpp
[21/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/idle-inhibit-unstable-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/idle-inhibit-unstable-v1.hpp
[22/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/relative-pointer-unstable-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/relative-pointer-unstable-v1.hpp
[23/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/xdg-decoration-unstable-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/xdg-decoration-unstable-v1.hpp
[24/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/alpha-modifier-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/alpha-modifier-v1.hpp
[25/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/pointer-gestures-unstable-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/pointer-gestures-unstable-v1.hpp
[26/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/ext-foreign-toplevel-list-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/ext-foreign-toplevel-list-v1.hpp
[27/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/keyboard-shortcuts-inhibit-unstable-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/keyboard-shortcuts-inhibit-unstable-v1.hpp
[28/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/pointer-constraints-unstable-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/pointer-constraints-unstable-v1.hpp
[29/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/text-input-unstable-v3.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/text-input-unstable-v3.hpp
[30/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/xdg-activation-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/xdg-activation-v1.hpp
[31/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/ext-idle-notify-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/ext-idle-notify-v1.hpp
[32/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/ext-session-lock-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/ext-session-lock-v1.hpp
[33/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/presentation-time.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/presentation-time.hpp
[34/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/tablet-v2.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/tablet-v2.hpp
[35/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/primary-selection-unstable-v1.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/primary-selection-unstable-v1.hpp
[36/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/xdg-shell.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/xdg-shell.hpp
[37/38] Generating /tmp/hyprpm/hyprland-zjeffer/protocols/wayland.cpp, /tmp/hyprpm/hyprland-zjeffer/protocols/wayland.hpp
find src -name '*.h*' -print0 | cpio --quiet -0dump /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland
cd subprojects/wlroots-hyprland/include/wlr && find . -name '*.h*' -print0 | cpio --quiet -0dump /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland/wlr && cd ../../../..
cd subprojects/wlroots-hyprland/build/include && find . -name '*.h*' -print0 | cpio --quiet -0dump /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland/wlr && cd ../../../..
cp ./protocols/*.h* /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland/protocols
cp ./build/hyprland.pc /home/zjeffer/.local/share/hyprpm/headersRoot/share/pkgconfig
if [ -d /usr/share/pkgconfig ]; then cp ./build/hyprland.pc /usr/share/pkgconfig 2>/dev/null || true; fi
chmod -R 755 /home/zjeffer/.local/share/hyprpm/headersRoot/include/hyprland
chmod 755 /home/zjeffer/.local/share/hyprpm/headersRoot/share/pkgconfig

✔ installed headers                                                                                                                                                                                                                                          
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  5 / 5  Done!                                                                                                                                                                                            

 → checking for updates for split-monitor-workspaces                                                                                                                                                                                                         
 → Cloning https://github.com/Duckonaut/split-monitor-workspaces                                                                                                                                                                                             
 → Plugin has revision set, resetting: 342c4cfb90cf866a9b86caef1293cca08c0d4009                                                                                                                                                                              
✔ repository split-monitor-workspaces has updates.                                                                                                                                                                                                           
 → Building split-monitor-workspaces                                                                                                                                                                                                                         
✔ found hyprpm manifest                                                                                                                                                                                                                                      
 → Building split-monitor-workspaces                                                                                                                                                                                                                         
 ━━━━━━━━━━━━━━━━━━━━━━━━━╍━━━━━━━━━━━━━━━━━━━━━━━━  2 / 4  Updating split-monitor-workspaces
[v] shell returned:  -> cd /tmp/hyprpm/zjeffer && PKG_CONFIG_PATH="/home/zjeffer/.local/share/hyprpm/headersRoot/share/pkgconfig" meson setup build --wipe      
The Meson build system
Version: 1.4.0
Source dir: /tmp/hyprpm/zjeffer
Build dir: /tmp/hyprpm/zjeffer/build
Build type: native build
Project name: split-monitor-workspaces
Project version: 0.1
C++ compiler for the host machine: c++ (gcc 14.1.1 "c++ (GCC) 14.1.1 20240522")
C++ linker for the host machine: c++ ld.bfd 2.42.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C++ supports arguments -std=c++23: YES 
meson.build:8: WARNING: Consider using the built-in option for language standard version instead of using "-std=c++23".
Found pkg-config: YES (/usr/bin/pkg-config) 2.1.1
Run-time dependency hyprland found: YES 0.40.0
Run-time dependency pixman-1 found: YES 0.43.4
Run-time dependency libdrm found: YES 2.4.120
Build targets in project: 1

Found ninja-1.12.1 at /usr/bin/ninja
                                                
 -> cd /tmp/hyprpm/zjeffer && PKG_CONFIG_PATH="/home/zjeffer/.local/share/hyprpm/headersRoot/share/pkgconfig" meson compile -C build
ninja: Entering directory `/tmp/hyprpm/zjeffer/build'
[1/2] Compiling C++ object libsplit-monitor-workspaces.so.p/src_main.cpp.o
[2/2] Linking target libsplit-monitor-workspaces.so
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -C /tmp/hyprpm/zjeffer/build


✔ built split-monitor-workspaces into build/libsplit-monitor-workspaces.so                                                                                                                                                                                   
✔ updated split-monitor-workspaces                                                                                                                                                                                                                           
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  4 / 4  Done!                                                                                                                                                                                            
✔ Ensuring plugin load state
✔ Loaded split-monitor-workspaces
✔ Plugin load state ensured

zjeffer avatar May 25 '24 19:05 zjeffer

Great then, merging.

fufexan avatar May 25 '24 20:05 fufexan