User Tools

Site Tools


pcb:plugins

This is an old revision of the document!


pcb Plugins

pcb has a plug-in mechanism that allows developers to add or modify its functionality. Plugins can add pcb actions, hook into the GUI HIDs, create new exporters, and more. For a tutorial on the basics of writing and installing a pluging, see the hello world example on the pcb Developer Introduction page. This page will discuss how plugins interact with the pcb system.

Plugin Mechanics

pcb plugins are essentially shared libraries that pcb will load at run-time. Because of this, they can be written in just about any language that can be compiled into a shared library. I haven't verified anything other than C and C++, but it ought to be possible. If you've successfully written a plugin in another language, let me know!

At runtime, pcb scans several directories for .so/.dll files (see src/common/hidinit.c:hid_load_dir). If it finds one, it opens it and looks for a couple of symbols: “hid_<file basename>_init” and “pcb_plugin_init”. If it finds one, it executes it as a function. These functions are responsible for registering the code they represent with pcb.

Registration

HID Structures

Plugin Resources

Handy Plugin Template

Plugin Repositories

List of Plugins

pcb/plugins.1529774431.txt.gz · Last modified: 2018/06/23 13:20 by cparker