Skip to content

BansheeMediaPlayer/hyena

Repository files navigation

This is a library of useful GUI and non-GUI C# code, originally used in Banshee.

NOTE
** It is not API stable, and so is not installed to the GAC.**

There are three ways to use Hyena in your app:

1) Require it as an external dep; copy its .dll files into your project

   Applications using it should make a local copy of whatever components you use.
   That is, you should consider Hyena a build-time dependency, not a run-time, since
   at run-time your app will contain a copy of Hyena.

   There are variables defined in the pkg-config files that contain assemblies 
   and files needed for a given component of Hyena (eg hyena, hyena.data.sqlite, 
   and hyena.gui).

   pkg-config --variable=Assemblies hyena
   pkg-config --variable=Files hyena
   
   You can look at PDF Mod for an example of how to use Hyena:

   https://git.gnome.org/cgit/pdfmod/tree/configure.ac
   https://git.gnome.org/cgit/pdfmod/tree/Makefile.am
   https://git.gnome.org/cgit/pdfmod/tree/src/Makefile.am

2) Include it as a submodule in your git repo

   This is advantageous if you want to closely track and maybe contribute
   back to Hyena.  It also means developers don't have to install Hyena
   themselves from packages or git.

     git submodule add git:https://git.gnome.org/hyena lib/Hyena
     git submodule update --init
     git add .gitmodules

   Then you'll need to add Hyena to your build system.  See Banshee's setup:

     https://git.gnome.org/cgit/banshee/tree/configure.ac
     https://git.gnome.org/cgit/banshee/tree/Makefile.am

   You can also include the appropriate .csproj in your .sln.  Set them to
   build under the 'Submodule' configuration, and the binaries will get
   outputted to ../../bin from the Hyena checkout directory.

3) Bundle the .dll files in your project

   It's an expedient, but not good form for FOSS projects.