Closed alerque closed 10 months ago
No clue how this could happen, looking at the changes: https://github.com/hyprwm/xdg-desktop-portal-hyprland/compare/v1.2.6...v1.3.0
I don't see any red flags. Is this meson or cmake?
CMake for me works fine, but I'll ping @fufexan for meson.
The packaging currently uses Meson, but I recently packaged hyprlang using pure CMake (since it was the only available build system in that case) and noticed hyprpaper can now be built with pure CMake too. If that's the way this is headed I can migrate that way, the Meson way of setting up subprojects was just a bit easier before.
Meson received no changes apart from adding hyprlang
as a dependency, and it builds fine in Nix. Not sure what the issue might be.
If that's the way this is headed I can migrate that way, the Meson way of setting up subprojects was just a bit easier before.
I don't know yet, I'll talk about it with Vaxry. We'll probably want to settle on only using one of the build systems.
We've decided to go with CMake (and no more Makefile) everywhere in the org. Meson will be gradually phased out.
I just tried switching from Meson to CMake, but that doesn't seem to be a go either for different reasons. @vaxerski mentioned using CMake, but given the current Makefile and other bits I'm guessing that Ninja is still required behind the scenes and CMake only works with the Ninja backend. The sdbus-cpp
submodule doesn't support CMake as a backend.
As mentioned elsewhere I have my own preferences on build systems but don't care that much about what this project uses (one or many) but the cross-wiring of them through daisy chains (Makefile being used to call CMake which uses Ninja as a backend, etc.) is a constant source of problems downstream.
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
built fine for me
Maybe try bisecting to find which commit is the problematic one?
Are you in a clean chroot with relatively few system things available or is sdbus-cpp
possibly being found already built on your system so you're skipping the submodule build stage?
it's building the submodule, I don't have sdbus-cpp installed:
Okay so the issue is the opposite of my first guess: the pure CMake build does work from a Git clone with submodules or if you fetch the sdbus-cpp tarballs for the right commit. The problem I have with that is a subsequent cmake --install
actually installs sdbus-cpp
in a non-vendored normal location (/usr/include/sdbus-c++
). This will obviously conflict with the actual system package. Meanwhile if I try to use the system package instead it just doesn't find it. If the submodule directory doesn't exist I think it should be looking on the system for it, but it isn't doing that, it's insisting on trying to build it specifically as as subproject.
uh-huh. Interesting it came out just now. @fufexan should fix this shortly
@alerque should be fixed in https://github.com/hyprwm/xdg-desktop-portal-hyprland/commit/f46cff1df2d83b826193665091b843cb7776d20c. Sorry it took so long, I'm a CMake noob.
...well we did start out with a Meson problem and then switched gears to CMake half way through. Meson handles the submodules better in this case and finds the system libs properly. We've basically traded one problem for another so the root cause of the second issue took a bit to dig out ;-)
Patching with f46cff1 does fix the sdbus-c++ snafu.
I think we can close this now even though the original Meson issue is not resolved if this project is moving to just support CMake anyway.
I opened a separate issue for my next problem with CMake.
Thanks, working on fixing that now.
the original Meson issue is not resolved
Are you in a clean chroot with relatively few system things available or is
sdbus-cpp
possibly being found already built on your system so you're skipping the submodule build stage?
Yeah that was my problem - I couldn't built it because it was picking up an old/wrong version of libsdbus-c++-dev
.
The README.md
says to install required dependencies like sdbus-cpp
. And it doesn't mention to git clone --recurse-submodules
. Once I apt remove libsdbus-c++-dev
(yes, I'm running Ubuntu), and git cloned with --recurse-submodules
I could build it successfully.
I'm trying to bump Arch Linux packages to v1.3.0 and hitting an unexpected error during build:
This is somewhat strange since
xf86drm.h
is not only installed by the packagelibdrm
, but also provided side by side withlibdrm/drm.h
. I'm unsure what could be coming on here but something got cross-wired. Most probably thewlroots
supplied drm.h is getting cross-wired with libdrm's somehow.Does this trigger any ideas?