hyprwm / xdg-desktop-portal-hyprland

xdg-desktop-portal backend for Hyprland
BSD 3-Clause "New" or "Revised" License
273 stars 47 forks source link

CMake: get rid of Makefile and Ninja #154

Closed fufexan closed 8 months ago

fufexan commented 8 months ago

Fixes #153.

Addresses all the remaining points in the above issue. @alerque mind testing this PR?

vaxerski commented 8 months ago

you should also update README for the new instructions.

I'd generally stick to libexec being in lib/ as from my experience on arch libexec/ isnt picked up.

-DCMAKE_INSTALL_LIBEXECDIR=/usr/lib should do the job, I think

alerque commented 8 months ago

It looks like some of the changes here were intended to make it possible to build and install hyprland-protocols separately and depend on it from the system (which is a good thing!), but somehow that's managed to break the current submodule arrangement. I haven't tried to build it separately yet (although that will be the preferred way to package this in the long term), but the previous CMake incantation that was finding and building it stopped working when run on this PR.

fufexan commented 8 months ago

I think it's the add_subdirectory call that makes it not work, but could you give me some logs?

It looks like some of the changes here were intended to make it possible to build and install hyprland-protocols separately and depend on it from the system

Yes. Maybe I've said it before, but I hate git submodules :smile:

alerque commented 8 months ago

That latest force-push is a lot better.

Now the only differences between the previous release packaged for Arch (using Meson) and my current attempts with 1.3.0 plus this PR using generic CMake are that some of the hyprland-protocols things are not being installed. The subdirectory build does work to satisfy the dependency but it does not end up installing the pc file or protocol files for it. I haven't tested yet whether those are needed at run time. This result might actually be expected & correct in that those should only be vendored if using the subproject and only installed to the system if built and installed in their own right.

If the latter is the expected behavior then this PR might be :+1: go for launch.

fufexan commented 8 months ago

This result might actually be expected & correct in that those should only be vendored if using the subproject and only installed to the system if built and installed in their own right.

Yes, the .pc file and the XML protocols are only needed when hyprland-protocols is a standalone package.