Open majestrate opened 1 year ago
@fufexan will not like cmake, I will not like meson.
@fufexan will not like cmake, I will not like meson.
Is SCons any better?
As outlined here and reading other opinions on the internet, it seems to be slower than both CMake & Meson.
I'd be fine with CMake but it feels limiting compared to Meson.
As outlined here and reading other opinions on the internet, it seems to be slower than both CMake & Meson.
I'd be fine with CMake but it feels limiting compared to Meson.
CMake is fine when you know the eldrich runes not to speak with it. too many bad cmake examples with high seo online from 15 years ago so i dont blame people for hating on it. i'll plug away at seeing what would be needed for making it to use CMake exclusively as the build system, teedius work but it shouldnt be that bad.
The syntax of cmake is indeed not very pleasant, e.g. for PCH, in meson you do
executable(
cpp_pch: 'pch/pch.hpp'
)
but in cmake
target_precompile_headers(Hyprland PRIVATE $<$<COMPILE_LANGUAGE:CXX>:src/pch/pch.hpp>)
Although some might see a certain drawback, unlike cmake, meson is not turing complete. But again, we are not writing a compositor in cmake, are we? It would be a fun idea to do so.
CMake can do a lot of stuff, but Meson is more specialized. It has modules for just about anything you'd need. So it's less verbose (and doesn't require you to SCREAM VARIABLES EVERYWHERE).
cmake also doesn't require SCREAMING in most places. We just do cuz we angry
fair enough
The syntax of cmake is indeed not very pleasant, e.g. for PCH, in meson you do
executable( cpp_pch: 'pch/pch.hpp' )
but in cmake
target_precompile_headers(Hyprland PRIVATE $<$<COMPILE_LANGUAGE:CXX>:src/pch/pch.hpp>)
Although some might see a certain drawback, unlike cmake, meson is not turing complete. But again, we are not writing a compositor in cmake, are we?
It would be a fun idea to do so.
it's not pretty but nor is a lot of C++ so it's really not all the bad in the long run. mixing build systems is the stuff of nightmares.
cmake also doesn't require SCREAMING in most places. We just do cuz we angry
i scream in lowercase a lot with cmake too.
we should mix deez nuts.
On a real note, if we want to have one system, it would probably be sea make.
After all the work I've put into Meson :woe:
it's really not all the bad in the long run. mixing build systems is the stuff of nightmares.
What's wrong with having two build systems? Hyrpland is relatively easy to build and it's not that hard to maintain build scripts. They do not interfere with each other.
it's really not all the bad in the long run. mixing build systems is the stuff of nightmares.
What's wrong with having two build systems? Hyrpland is relatively easy to build and it's not that hard to maintain build scripts. They do not interfere with each other.
i disagree, a lot. it's not intuitive at all for people trying to build it, it takes more effort to maintain multiple build systems than it's worth. too many moving parts with no real upsides. it's cruft that only gets crustier as time goes by. i'd like to slowly clean it all up if you don't mind.
it's not intuitive at all for people trying to build it
Most people don't even need to know what build system is used, as they're getting Hyprland from their distro's repositories. And even of those who build manually, I've never seen anyone complain about not knowing how to build. As the wiki describes, it's about 3 commands you have to run, including installing development packages.
it takes more effort to maintain multiple build systems than it's worth
Not really. It's pretty easy to integrate new changes, and it's not like one maintainer does it all. Arguably maintaining the Nix side of things is more work than maintaining Meson.
i'd like to slowly clean it all up if you don't mind.
Sure, but I'm not gonna give up Meson easily.
it's not intuitive at all for people trying to build it
Most people don't even need to know what build system is used, as they're getting Hyprland from their distro's repositories. And even of those who build manually, I've never seen anyone complain about not knowing how to build. As the wiki describes, it's about 3 commands you have to run, including installing development packages.
I disagree with the "most users" angle as this is about code contribution accessibility. End users will do whatever is easier for them. I don't think I am the only one who's been rubbed the wrong way by the status quo here. I'd like to make it less hard to build so given it's meson or cmake, to me it doesn't really matter as long as it's just one of them.
it takes more effort to maintain multiple build systems than it's worth
Not really. It's pretty easy to integrate new changes, and it's not like one maintainer does it all. Arguably maintaining the Nix side of things is more work than maintaining Meson.
packaging is distinct from a build system and that in itself is a full time job. maintaining the build system is not, and if it is i'd argue that's a bug worth fixing.
i'd like to slowly clean it all up if you don't mind.
Sure, but I'm not gonna give up Meson easily.
i dont understand the friction here, would it be easier to move the build system to meson instead of cmake? disagreements on which build system is used feels like a point of contention that should've been resolved long ago.
to me it doesn't really matter as long as it's just one of them.
disagreements on which build system is used feels like a point of contention that should've been resolved long ago
So if you don't like the other build system, why not just ignore it and leave other folks who use it alone?
to me it doesn't really matter as long as it's just one of them.
disagreements on which build system is used feels like a point of contention that should've been resolved long ago
So if you don't like the other build system, why not just ignore it and leave other folks who use it alone?
It's technical debt and it will only continue to pile up. Looks like someone is already chugging through parts of the cmake bits in #2313
disagreements on which build system is used feels like a point of contention that should've been resolved long ago.
There's no disagreement. Everyone uses whatever they like. For Nix packaging, Meson is the easiest. It's that simple.
It's technical debt and it will only continue to pile up.
As long as both are kept up to date, I don't see an issue.
disagreements on which build system is used feels like a point of contention that should've been resolved long ago.
There's no disagreement. Everyone uses whatever they like. For Nix packaging, Meson is the easiest. It's that simple.
It's technical debt and it will only continue to pile up.
As long as both are kept up to date, I don't see an issue.
I'd like to have the project buildable with just a cmake command. That's all, keeping the meson build system is fine. the cmake build looks like it's kinda broken, which is why i opened the issue.
Description
I've noticed that the build process uses a few different tools that are tangled up into each other. I'd like to probe the feelings of consolidating to one build system. I'd like to devote some time into cleaning up the cmake cruft of the build pipeline as that is the build system i am most familiar with and (for me) feels like a good match for a c++ codebase.
thoughts?