-
-
Notifications
You must be signed in to change notification settings - Fork 366
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
Installation: improve FreeBSD instructions for Manual Build #200
base: main
Are you sure you want to change the base?
Conversation
huh why is cmake linux only? |
I've dropped 2ec125b in favor of hyprwm/Hyprland#2209 |
@jbeich has anything changed since 4 months ago? |
2b40a3b
to
77dfa60
Compare
Not much:
105b552 added
|
Can I fix it somehow or is it better to just not use |
Better remove Downstream I use |
Alright, I'll remove it soon (unless I forget). |
5ca64b1
to
d3a0024
Compare
Is there anything left to do in this PR or is it ready? @jbeich |
Tested both Meson and CMake instructions - still good. |
Wait, |
Is there anything that can be done on the meson side, so we don't have to include all the commands here? The wlroots.wrap file used to patch the subproject so it properly installed headers, but now I don't know of a better approach. |
- ninja doesn't support `--tags` unlike meson - `--skip-subprojects` is more clear than `--tags runtime,man`
Trying to build in a random directory like HOME may fail or build something else. So, provide the context for a user who skipped reading CMake section.
Until GCC_DEFAULT is bumped to 14 or later in https://github.com/freebsd/freebsd-ports/blob/main/Mk/bsd.default-versions.mk
System tomlplusplus is built against libc++ which conflicts with libstdc++ used by GCC. While tomlplusplus can be bundled it's only easy to do via Meson (--force-fallback-for). /usr/local/bin/ld: hyprpm/CMakeFiles/hyprpm.dir/src/core/DataState.cpp.o: in function `DataState::addNewPluginRepo(SPluginRepository const&)': DataState.cpp:(.text+0x16b4): undefined reference to `toml::v3::table::get_lower_bound(std::basic_string_view<char, std::char_traits<char> >)' /usr/local/bin/ld: DataState.cpp:(.text+0x1793): undefined reference to `toml::v3::table::insert_with_hint(toml::v3::impl::table_iterator<true>, toml::v3::key&&, std::unique_ptr<toml::v3::node, std::default_delete<toml::v3::node> >&&)' /usr/local/bin/ld: DataState.cpp:(.text+0x2c59): undefined reference to `toml::v3::impl::print_to_stream(std::ostream&, toml::v3::table const&)' /usr/local/bin/ld: hyprpm/CMakeFiles/hyprpm.dir/src/core/DataState.cpp.o: in function `DataState::pluginRepoExists(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': DataState.cpp:(.text+0x3739): undefined reference to `toml::v3::ex::parse_file(std::basic_string_view<char, std::char_traits<char> >)' /usr/local/bin/ld: DataState.cpp:(.text+0x3783): undefined reference to `toml::v3::table::get(std::basic_string_view<char, std::char_traits<char> >)' /usr/local/bin/ld: DataState.cpp:(.text+0x37ab): undefined reference to `toml::v3::table::get(std::basic_string_view<char, std::char_traits<char> >)' [...]
FreeBSD uuid(3) has slightly different API than Linux and doesn't support random UUIDs unlike NetBSD. Instead use external implementation. hyprwm/Hyprland@7778f01194d8
9c19d4f
to
b914a77
Compare
I've dropped Meson workaround and rebased after aquamarine switch. |
ninja -C build | ||
ninja -C build install --tags runtime,man | ||
meson compile -C build | ||
meson install -C build --skip-subprojects |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this not mean udis86 will not be found?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
udis86 is not part of Hyprland plugin API unlike wlroots was before aquamarine. --skip-subprojects
is still necessary to avoid installing hyprland-protocols (plugins use preprocessed headers instead). Hyprland itself doesn't support building against system-wide copy of udis86 (Alpine patches this), and the bundled version uses CMake to build the submodule.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's fine by me. However, I've made progress towards allowing Hyprland to build with a system-wide copy of udis86 (provided it's canihavesomecoffee's fork, which includes a .pc file). See this PR for more info about it, maybe leave your thoughts as well hyprwm/Hyprland#7885.
No description provided.