pluc merged into gephex--main--0.5
Georg Seidel <[email protected]>
| Newsgroups | gmane.comp.video.gephex.devel |
|---|---|
| Message-ID | <[email protected]> |
Pluc (and with it gidlc) are 90% done. They handle "self contained"
plugins with links and units that
are either implemented in C or C++.
Self contained means that all used link types are defined in the plugin
itself. So to really start porting
units handling of not self contained plugins must be implemented (I'm
thinking about one common
directory where every plugin puts it's interface files s.t. the other
plugins can use them).
Here is a rough description of the commands that pluc knows so far.
The calling syntax is
> pluc <cmd> [<options>] <plugin_spec>
Some commands are:
setup-plugin: equivalent to calling pluc with "create-am",
"create-ifs" and "create-skeleton"
This command creates the automake file and the skeleton code for
a new plugin
from it's specification files.
You must provide the --gidlc option (see create-skeleton).
create-am: creates the Makefile.am for this plugin
by default it will not overwrite an existing Makefile.am, use
--force to do this
create-skeleton: creates skeleton code for each unit and link
results in one .h file and one .c or .cpp file per unit/link
does not overwrite existing files.
You must tell pluc where the gidlc binary is located with the
"--gidlc=..." option.
That's because pluc uses gidlc for the actual code generation,
it calls gidlc twice
for every link/unit.
create-ifs: creates all unit, link, unitfactory and linkfactory
interfaces for the plugin
create-export-(header|code): creates the api that is visible from
outside the plugin
(i.e. the dock, board, unboard, undock functions).
The output files are named <plugin_name>_export.(c|h).
Note that I did not test the created skeleton code yet. Probably it
still contains some bugs
but is nevertheless useful as a starting point.
Note also that the cpp skeleton code for plugins is really quite
minimal, the unit developer
can really focus on the update method.
Regards,
georg