Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add custom cmake target to generate protocol headers during make installheaders #6181

Merged
merged 2 commits into from
May 25, 2024

Conversation

zjeffer
Copy link
Contributor

@zjeffer zjeffer commented May 21, 2024

Describe your PR, what does it fix/add?

As discussed in #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
Copy link
Contributor Author

zjeffer commented May 21, 2024

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

@zjeffer zjeffer marked this pull request as ready for review May 22, 2024 17:53
This will ensure the correct headers are generated before trying to
install them.
@zjeffer zjeffer changed the title WIP: custom cmake target to generate protocol headers during make installheaders Add custom cmake target to generate protocol headers during make installheaders May 22, 2024
@zjeffer zjeffer requested a review from cnt0 May 22, 2024 17:55
Copy link
Member

@fufexan fufexan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From a code PoV, LGTM. Builds fine manually and with Nix.

I'm waiting for you guys to confirm that hyprpm works as it should.

@zjeffer
Copy link
Contributor Author

zjeffer commented May 23, 2024

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.

@fufexan
Copy link
Member

fufexan commented May 23, 2024

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

@zjeffer
Copy link
Contributor Author

zjeffer commented May 23, 2024

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.

@zakk4223
Copy link
Contributor

zakk4223 commented May 23, 2024

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

@zjeffer
Copy link
Contributor Author

zjeffer commented May 25, 2024

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

@fufexan
Copy link
Member

fufexan commented May 25, 2024

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

Done, see the cmake_installheaders branch.

@zjeffer
Copy link
Contributor Author

zjeffer commented May 25, 2024

@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.

@fufexan
Copy link
Member

fufexan commented May 25, 2024

@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 fufexan mentioned this pull request May 25, 2024
@zjeffer
Copy link
Contributor Author

zjeffer commented May 25, 2024

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

@zjeffer
Copy link
Contributor Author

zjeffer commented May 25, 2024

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
Copy link
Contributor Author

zjeffer commented May 25, 2024

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
Copy link
Contributor Author

zjeffer commented May 25, 2024

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

@fufexan
Copy link
Member

fufexan commented May 25, 2024

Great then, merging.

@fufexan fufexan merged commit a712074 into hyprwm:main May 25, 2024
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants