hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
19.72k stars 838 forks source link

~~static linking~~ confusion of 3 different build systems #1135

Closed apprehensions closed 1 year ago

apprehensions commented 1 year ago

hyprland should make its own hyprland .a file to statically link to to remove the need of a useless conflicting and version confusing wlroots .so in the package.

Makefile is also quite messy and has tons of duplicates.

apprehensions commented 1 year ago

makefile uses meson, but not directly meson and instead calling upon itself, and then using cmake with meson for wlroots...

this project is really amazing but little things like this is weird.

vaxerski commented 1 year ago

feel free to make a PR. I don't see an issue with the current situation. AFAIK, meson already links statically.

apprehensions commented 1 year ago

then if that's the case, why does wlroots.so.2231203201 or whatever still need to exist?

vaxerski commented 1 year ago

No clue. I don't maintain the meson pipeline. I maintain CMake. Meson was added by the community for some reason. @fufexan might know more.

apprehensions commented 1 year ago

@fufexan , @vaxerski , why does Hyprland support both a bad-written Makefile that depends on meson AND cmake, a CMake build method that was officially the only one and can be maintained by the person who made Hyprland, and meson?

why isn't there only one build, and install solution? maintaining all 3 together is ok?

apprehensions commented 1 year ago

re-open this issue btw.

apprehensions commented 1 year ago

currently for my distro i have this:

#!/bin/sh -e

# use system wlroots 
patch -p1 < wlroots-sys.patch

meson setup \
    -Dprefix=/usr \
    -Dxwayland=enabled \
    build

ninja -C build 
ninja -C build install
vaxerski commented 1 year ago

Makefile depends on meson because wlroots uses meson exclusively. The meson pipeline was added to Hyprland after people were complaining about it not being present. I opposed, but since so many people were in favor, I accepted it.

apprehensions commented 1 year ago

IMO, you should switch to meson maintainance and remove CMake and the Makefile as well, because the meson system has been gaining alot of popularity lately.

Meson handles both the protocols and everything, including wlroots subprojects which is extremely nice, so im in favor of full on meson.

vaxerski commented 1 year ago

Popularity is not a reason to use something. If that was the case, we'd all be using Windows and Java.

im in favor of full on meson.

and I am not. So what? That's why we keep both.

fufexan commented 1 year ago

I was in favor of Meson ever since @sp1ritCS added it. I use Meson exclusively in the Nix build, without requiring the Makefile you're talking about (no idea what it even does).

Vaxry insists on using CMake but I've been content with Meson so far.

apprehensions commented 1 year ago

well, i would really think that having 2 different maintainers handling 2 different build systems would cause alot of conflict, but it seems you both work together well i suppose..

apprehensions commented 1 year ago

just an off-topic question, can we limit the discord so we don't need numbers anymore? i don't see a reason why this is a case especially for FOSS and privacy people.

vaxerski commented 1 year ago

just an off-topic question, can we limit the discord so we don't need numbers anymore?

What? You mean the discord server and phone verification? You can DM me and I can skip the verification. It's to prevent spam.

apprehensions commented 1 year ago

i mean, i would rather have the server to remove the need for a number in the first place. a biiiiiig server like r/unixporn doesnt need number verification

vaxerski commented 1 year ago

A biiiig server like r/unixporn has a biiig number of moderators. We don't.

vaxerski commented 1 year ago

I will close this. Not interested in static linking, because a) you can already get that in meson with -Ddefault_library=static b) it's no point and c) making CMake and Meson work together for a static link would be a pain

We are maintaining 2 different build systems and we plan on keeping it that way