mirror of
https://git.proxmox.com/git/libxdgmime-perl.git
synced 2025-12-06 10:12:30 +00:00
No description
|
|
||
|---|---|---|
| debian | ||
| Xdgmime | ||
| xdgmime-source | ||
| exports.h | ||
| Makefile | ||
| README | ||
Updating the bindings
#####################
* The upstream sources are added https://gitlab.freedesktop.org/xdg/xdgmime as
git-subtree in xdgmime-source use git-subtree to update them
* All functions in upstream's xdgmime.h are also present as CPP defines (for
adding XDG_PREFIX to the function name, which confuses h2xs into creating
constant symbols for them. These constant symbols then create errors in the
automatically generated tests.
* By running `make update-bindings` h2xs is called with the appropriate
parameters to create a fresh xs module from xdgmime.h. Only symbols matching
XDG_ are treated as constants (-M '^XDG'), thus avoiding the problematic
defines.
Rationale of relevant h2xs parameters:
* -P - avoids POD part in .pm - which only contains boilerplate and would need
adopting every time
* -F -DHAVE_MMAP - simply sets the define during compilation
* -M '^XDG_' - treat only defines starting with XDG as constants (see above)
* -t PV - set the default constant type to PV (a.k.a. string see man perlguts)
(fitting with the 3 XDG_ constants)
* All functions needed in the perl-module need to be added to
Xdgmime/lib/Xdgmime.pl in the EXPORT_TAGS (and since pmg-api and others use
them without fully qualifying them with the module name also to the EXPORT)
array, and implemented in Xdgmime/Xdgemime.xs
* C::Scan is not used anymore but can be installed via CPAN, should you need
an initial prototype for a new function
0.) initial package generated with following commands:
######################################################
git clone git://anongit.freedesktop.org/xdg/xdgmime
man h2xs
man perlxs
man perlxstut
h2xs -Afn Xdgmime
cp xdgmime-source/src/xdgmime*.[ch] Xdgmime/
create exports.h file in Xdgmime/exports.h
# Note: following requires package 'libc-scan-perl'
# downloaded that from debian etch archive
h2xs -Oxan Xdgmime exports.h
edit Xdgmime/Xdgmime.xs
edit Xdgmime/lib/Xdgmime.pm
edit Xdgmime/Makefile (add -DHAVE_MMAP)