Hi,

the existing tutorial about plugin development is surely wonderful to start with that task. Anyway, I met some difficulties when you need to deal with external libraries. Not only dynamic ones, that I read are more tricky, but also static one: watching an example on how to develop a simple node that have to deal with a preexisting static library would be a good example, in my opinion.

regards michele

Component: 

Notes from Team Vuo

Vuo Pro: 

No — available with both Vuo CE and Vuo Pro

Complexity: 

●○○○ — Up to a few days of work

Potential: 

●○○ — Appeals to current community

Comments

Regarding external libraries,

jstrecker's picture
Submitted by

Regarding external libraries, there's documentation here: https://api.vuo.org/latest/group___managing_dependencies.html

All libraries referenced by the built-in Vuo nodes are now dynamically linked. We've opted for dynamic over static libraries because it avoids problems when multiple nodes depend on the same library, when multiple compositions run in the same process, and when live editing. I'm actually not sure if live editing works with static libraries currently, since we haven't recently tested.

This week we made a super simple example of a node class depending on a dylib that almost works. The one piece that doesn't work yet is @rpath, which is necessary to be able to use the node class on other computers without having to modify the dylib each time.

Anyway, here's the example code. The key points are:

  • Set the dynamic library's install name. You can either do this when compiling the dylib, like in the example, or use the install_name_tool command in Terminal (e.g. install_name_tool -id @rpath/libfoo.dylib libfoo.dylib).
  • In the node class's source code, under VuoModuleMetadata, add the library to the dependencies list. You would put the library name minus the "lib" and ".dylib". For example, for libfoo.dylib you would write "foo".

Besides external libraries, did you have anything else in mind that would be important to cover in an advanced tutorial?

Feature status

  • Submitted to vuo.org
  • Reviewed by Team Vuo
  • Open for community voting
  • Chosen to be implemented
  • Released

When we (Team Vuo) plan each release, we try to implement as many of the community's top-voted feature requests as we have time for.

If anyone would like to help this happen sooner, we're also accepting open source contributions and commissioned work.

Read more about how Vuo feature requests work.

Votes

6 votes so far!

Who voted?

useful design's picture
cremaschi's picture
lechbialek's picture