valabind(1)

🌸 NAME 🌸

okay so this is the valabind(1) manual page, bestie β€” the vala to swig interface conversor. no cap, that's the whole vibe of the name section. πŸ’…


✨ SYNOPSIS ✨

valabind [-h] [-x] [-v] [-V vapidir] [-o ofile] [-m modname]
         [-p profile] [-N namespace] [-D SYMBOL] [--swig] [--node-ffi]
         [--ctypes] [--gir] [--cxx] vapifile

the positional at the end is vapifile, iykyk.


πŸ’– DESCRIPTION πŸ’–

Valabind is a program written in Vala that aims to generate nodejs, c++ or SWIG interfaces (.i) from a vala-generated or hand-made vapi files. literally the whole point, bestie.

SWIG opens the door to create bindings for Python, Perl, ruby, lua, and many other scripting languages. it's giving β€œone tool, so many friend groups.” 🫢

πŸŽ€ options, bestie

  • -h β€” show help message. so helpful, so iconic.
  • -o OUTPUT β€” specify output file name. the synopsis calls this one ofile, fyi.
  • -m NAME β€” specify module name. the synopsis calls this one modname.
  • -N NS β€” include given namespace for processing. synopsis says namespace.
  • -D SYMBOL β€” define a preprocessor symbol inside Vala code.
  • -p PROFILE β€” select Vala profile (posix, gobject, dova). pick your fighter. ✨
  • -x β€” generate c++ code for SWIG bindings.
  • -v β€” show version information.
  • -V PATH β€” specify an alternative vapidir path. the notes below call it -V VAPIDIR, so don't @ me.
  • --swig β€” appears in the synopsis; the original page gives it no separate one-liner, so no invented lore here.
  • --node-ffi β€” appears in the synopsis; no separate description is given on this page.
  • --ctypes β€” appears in the synopsis; no separate description is given on this page.
  • --gir β€” appears in the synopsis; no separate description is given on this page.
  • --cxx β€” appears in the synopsis; no separate description is given on this page.

πŸ¦‹ NOTES πŸ¦‹

okay this part is important, bestie. Valabind processes a single module at a time: the module named with -m is the only one whose classes, structs, enums and methods are emitted in the output. Any additional vapifile arguments passed on the command line are not processed as independent modules β€” only the first class of the first file ends up being walked. 😭

To resolve types that come from other modules (e.g. a r_core.vapi that references symbols declared in r_asm.vapi), drop the extra vapis and their sibling .deps files under the directory passed to -V VAPIDIR and invoke valabind with just the single positional vapi you want emitted. that's the move. πŸŽ€

🚨 Reproducing the pipeline by hand with every .vapi on the command line is a common mistake and will silently produce a nearly empty binding. not the slay you want, fr fr.

🌈 ENVIRONMENT 🌈

  • XDG_DATA_DIRS β€” Standard freedesktop environment variable to point to the share prefix directory where vala looks for vapi files.

⭐ HYPER-REFERENCES ⭐


πŸ’œ SEE ALSO πŸ’œ

  • valabind-cc(1) β€” the see-also bestie. go read it after this. πŸ‘‘

πŸ‘‘ AUTHORS πŸ‘‘

  • pancake β€” <pancake@nopcode.org>
  • Eduard Burtescu β€” <edy.burt@gmail.com>

πŸ’Œ cute sign-off: this valabind(1) page is sourced from radare and dated Nov 15, 2012. byeee bestie, go generate some interfaces πŸ’‹
πŸ“¦ where this page comes from