Hi everyone xd, I was trying to make a libgtop binding for rust. If I understood right it’s possible to make a libgtop binding with Gir, because it’s GLib based.
I was following this tutorial for making that, but it failed when I tried to create the sys crate, this is the output that I got:
[WARN libgir::library_postprocessing] Field `glibtop::input` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop::output` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_cpu::xcpu_total` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_cpu::xcpu_user` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_cpu::xcpu_nice` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_cpu::xcpu_sys` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_cpu::xcpu_idle` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_cpu::xcpu_iowait` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_cpu::xcpu_irq` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_cpu::xcpu_softirq` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_loadavg::loadavg` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_mountentry::devname` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_mountentry::mountdir` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_mountentry::type_` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_netload::address6` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_netload::prefix6` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_netload::hwaddress` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_proc_kernel::wchan` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_map_entry::filename` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_proc_signal::signal` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_proc_signal::blocked` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_proc_signal::sigignore` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_proc_signal::sigcatch` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_proc_state::cmd` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_proc_time::xcpu_utime` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_proc_time::xcpu_stime` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_proc_uid::groups` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_proc_wd::root` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_proc_wd::exe` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_sysinfo::cpuinfo` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_command::parameter` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_open_files_entry_info_sock::dest_host` missing c:type assumed to be `fixed_array`
[WARN libgir::library_postprocessing] Field `glibtop_open_files_entry_info_localsock::name` missing c:type assumed to be `fixed_array`
thread 'main' panicked at 'Missing `GLib` namespace!', src/analysis/namespaces.rs:76:32
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
This is my Gir.toml
file:
[options]
library = "GTop"
version = "2.0"
target_path = "."
min_cfg_version = "2.0"
work_mode = "sys"
girs_directories = ["../gir-files/"]
external_libraries = [
"GLib",
"GObject",
"Gio",
]
Aditionally, this is my crate structure:
/home/auriel/Documentos/libgtop/
├── Cargo.lock
├── Cargo.toml
├── gir-files
│ ├── Atk-1.0.gir
│ ├── cairo-1.0.gir
│ ├── dl.py
│ ├── fix.sh
│ ├── fontconfig-2.0.gir
│ ├── freetype2-2.0.gir
│ ├── Gdk-3.0.gir
│ ├── Gdk-4.0.gir
│ ├── GdkPixbuf-2.0.gir
│ ├── GdkPixdata-2.0.gir
│ ├── GdkWayland-4.0.gir
│ ├── GdkX11-3.0.gir
│ ├── GdkX11-4.0.gir
│ ├── Gio-2.0.gir
│ ├── GL-1.0.gir
│ ├── GLib-2.0.gir
│ ├── GModule-2.0.gir
│ ├── GObject-2.0.gir
│ ├── Graphene-1.0.gir
│ ├── Gsk-4.0.gir
│ ├── Gtk-3.0.gir
│ ├── Gtk-4.0.gir
│ ├── GTop-2.0.gir
│ ├── HarfBuzz-0.0.gir
│ ├── libxml2-2.0.gir
│ ├── Pango-1.0.gir
│ ├── PangoCairo-1.0.gir
│ ├── PangoFc-1.0.gir
│ ├── PangoFT2-1.0.gir
│ ├── PangoOT-1.0.gir
│ ├── PangoXft-1.0.gir
│ ├── README.md
│ ├── reformat.sh
│ ├── Vulkan-1.0.gir
│ ├── win32-1.0.gir
│ ├── xfixes-4.0.gir
│ ├── xft-2.0.gir
│ ├── xlib-2.0.gir
│ └── xrandr-1.3.gir
├── libgtop-sys
│ ├── Gir.toml
│ └── src
│ └── lib.rs
├── src
│ └── lib.rs
└── target
├── CACHEDIR.TAG
└── debug
It’s a little dirty because I copied gir-files from gtk-rs/gir-files and added GTop-2.0.gir which was on my system already.
So, my question, given all the conext is, how can I add Glib
to my namespace? So Gir can run properly.