mirror of https://codeberg.org/topola/topola.git
docs(INSTALL): native run-time dependencies
This commit is contained in:
parent
1f7c6eafc7
commit
7f48888c14
26
INSTALL.md
26
INSTALL.md
|
|
@ -103,6 +103,32 @@ You can then invoke the application from your terminal by running
|
||||||
topola-egui
|
topola-egui
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Native run-time dependencies
|
||||||
|
|
||||||
|
On Linux and BSDs, the `egui` depends on the native graphics libraries (X11, Wayland),
|
||||||
|
and requires [GNOME `zenity`](https://gitlab.gnome.org/GNOME/zenity) when using `xdg-portal`
|
||||||
|
(which is the default) as the backend for [`rfd`](https://docs.rs/rfd) (which we use for file chooser dialogs).
|
||||||
|
|
||||||
|
If the Topola GUI crashes on startup (no window is shown), necessary graphics libraries (X11, Wayland)
|
||||||
|
might be missing. Note that running `ldd` on the `topola-egui` executable doesn't show these,
|
||||||
|
they are loaded dynamically (via some `dlopen`-like mechanism) on startup.
|
||||||
|
|
||||||
|
If no file chooser dialog is shown (e.g. when trying to Open a DSN file),
|
||||||
|
and, if `topola-egui` is started from a terminal, an error message like:
|
||||||
|
```
|
||||||
|
[2025-01-01T01:16:17Z ERROR rfd::backend::xdg_desktop_portal] pick_file error No such file or directory (os error 2)
|
||||||
|
```
|
||||||
|
is emitted (which should only happen on Linux/BSDs and similar environments), then
|
||||||
|
[GNOME `zenity`](https://gitlab.gnome.org/GNOME/zenity) is not installed, but is required
|
||||||
|
for the file choser to work.
|
||||||
|
Alternatively, one might try the alternative `gtk3` backend for `rfd` by enabling the `gtk3`
|
||||||
|
feature of `topola-egui`, e.g.
|
||||||
|
```
|
||||||
|
cargo build -p topola-egui --release --no-default-features --features disable_contracts --features gtk3
|
||||||
|
```
|
||||||
|
This is mostly interesting for people who want to package Topola, and allow exposing features
|
||||||
|
(e.g. Gentoo Linux / Portage)
|
||||||
|
|
||||||
#### Building and running without installing
|
#### Building and running without installing
|
||||||
|
|
||||||
If you chose not to install the GUI application, you can build and run
|
If you chose not to install the GUI application, you can build and run
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,10 @@ version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["disable_contracts"]
|
default = ["disable_contracts", "xdg-portal"]
|
||||||
disable_contracts = ["topola/disable_contracts"]
|
disable_contracts = ["topola/disable_contracts"]
|
||||||
|
gtk3 = ["rfd/gtk3"]
|
||||||
|
xdg-portal = ["rfd/xdg-portal"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
derive-getters.workspace = true
|
derive-getters.workspace = true
|
||||||
|
|
@ -21,7 +23,6 @@ icu_experimental = "0.2"
|
||||||
icu_locale_core = "2.0.0-beta1"
|
icu_locale_core = "2.0.0-beta1"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
petgraph.workspace = true
|
petgraph.workspace = true
|
||||||
rfd = "0.15"
|
|
||||||
rstar.workspace = true
|
rstar.workspace = true
|
||||||
serde.workspace = true
|
serde.workspace = true
|
||||||
serde_json.workspace = true
|
serde_json.workspace = true
|
||||||
|
|
@ -41,6 +42,10 @@ version = "0.29"
|
||||||
default-features = false
|
default-features = false
|
||||||
features = ["accesskit", "default_fonts", "glow", "persistence"]
|
features = ["accesskit", "default_fonts", "glow", "persistence"]
|
||||||
|
|
||||||
|
[dependencies.rfd]
|
||||||
|
version = "0.15"
|
||||||
|
default-features = false
|
||||||
|
|
||||||
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
||||||
futures-lite = "2.5"
|
futures-lite = "2.5"
|
||||||
env_logger = "0.11"
|
env_logger = "0.11"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue