beim Kompilieren von C-Code, der GNOME-Bibliotheken verwendet, nutzt man normalerweise die Einstellungen, die `pkg-config` einem ausgibt.
Hier eine Funktion, die diese Flags in einem für `distutils` verständlichen Format übernimmt, damit man keine Handarbeit mehr beim Bau von Setupfiles für Python-Extensions hat:
Code: Alles auswählen
from Cython.Distutils import build_ext
from distutils.core import setup
from distutils.extension import Extension
from subprocess import PIPE, Popen
def pkgconfig(*packages):
flags = {
'-D': 'define_macros',
'-I': 'include_dirs',
'-L': 'library_dirs',
'-l': 'libraries'}
cmd = ['pkg-config', '--cflags', '--libs'] + list(packages)
proc = Popen(cmd, stdout=PIPE, stderr=PIPE)
output, error = proc.stdout.read(), proc.stderr.read()
if error:
raise ValueError(error)
config = {}
for token in output.split():
flag, value = token[:2], token[2:]
config.setdefault(flags[flag], []).append(value)
if config.has_key('define_macros'):
macros = [(name, None) for name in config['define_macros']]
config['define_macros'] = macros
return config
setup(
cmdclass = {'build_ext': build_ext},
ext_modules = [
Extension('webkittest', ['webkittest.pyx'], **pkgconfig('webkit-1.0'))
]
)

Meine Vorlage war: http://code.activestate.com/recipes/502261/
EDIT: Wer findet den User, der sich in den Flags versteckt? ;P