User Tools

Site Tools


pcb:plugins

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
pcb:plugins [2018/06/23 10:26]
cparker
pcb:plugins [2018/06/23 13:19]
cparker [Plugin Mechanics]
Line 1: Line 1:
 +======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 [[geda:​pcb_developer_introduction_2| pcb Developer Introduction]] page. This page will discuss how plugins interact with the pcb system. 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 [[geda:​pcb_developer_introduction_2| pcb Developer Introduction]] page. This page will discuss how plugins interact with the pcb system.
  
 =====Plugin Mechanics===== =====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. 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==== ====Registration====
  
pcb/plugins.txt ยท Last modified: 2018/07/12 16:40 by cparker