Skip to main content

zc.buildout recipe that parses compile time options from config scripts

Project description

The LibInc recipe can parse CFLAGS, LDFLAGS and other information tipically returned by libraries config scripts like gdal-config, libpng-config and others. The parsed information can be used by other recipes as hexagonit.recipe.cmmi or zc.recipe.egg to make the build process more robust.

The initial version of this recipe has been written within the PrimaGIS topic of the 2007 Plone Naples Sprint and it is used for the PCL/PrimaGIS buildout.

Home page: http://www.bopen.eu/open-source/bopen.recipe.libinc

Copyright (c) 2007-2010 B-Open Solutions srl (http://bopen.eu). All rights reserved.

Distributed under the terms of the ZPL 2.1 http://www.zope.org/Resources/License/ZPL-2.1

Detailed Documentation

Warning: Work in progress

This zc.buildout recipe is pre-alpha quality.

Supported options

flags-command

a list of commands that return the linking options, one per line

Example usage

We’ll use a simple config command to demonstrate the recipe.

>>> import os.path
>>> testdata = join(os.path.dirname(__file__), 'testdata')
>>> ls(testdata)
-  sample-config

The options are accessible by other recipes:

>>> mkdir(sample_buildout, 'recipes')
>>> write(sample_buildout, 'recipes', 'echo.py',
... """
... import logging
...
... class Echo:
...     def __init__(self, buildout, name, options):
...         self.name, self.options = name, options
...
...     def install(self):
...         logging.getLogger(self.name).info(self.options.get('echo', ''))
...         return ()
...
...     def update(self):
...         pass
... """)
>>> write(sample_buildout, 'recipes', 'setup.py',
... """
... from setuptools import setup
...
... setup(
...     name = "recipes",
...     entry_points = {'zc.buildout': ['echo= echo:Echo']},
...     )
... """)

Let’s create a buildout to build and install the package.

>>> write(sample_buildout, 'buildout.cfg',
... """
... [buildout]
... develop = recipes
... parts = package
...
... [package]
... recipe = recipes:echo
... echo =
...     include-dirs: ${config-package:include-dirs}
...     library-dirs: ${config-package:library-dirs}
...     libraries: ${config-package:libraries}
...     cflags: ${config-package:cflags}
...     ldflags: ${config-package:ldflags}
...
... [config-package]
... recipe = bopen.recipe.libinc
... flags-command =
...     %(testdata)s/sample-config --cflags
...     %(testdata)s/sample-config --libs
...     %(testdata)s/sample-config --version
... include-dirs = /usr/include/mysample
... library-dirs = /usr/lib/mysample
... libraries = mysample
... """ % {'testdata': testdata})
>>> print system(buildout + ' -N')
Develop: ...
config-package: .../testdata/sample-config --cflags -> -I/usr/include -I/usr/include/sample
config-package: .../testdata/sample-config --libs -> -L/usr/lib -L/usr/lib/sample -lsample -lsample_rt
config-package: .../testdata/sample-config --version -> 1.0
config-package:
    include-dirs: /usr/include /usr/include/sample /usr/include/mysample
    library-dirs: /usr/lib /usr/lib/sample /usr/lib/mysample
    libraries: sample sample_rt mysample
    cflags: -I/usr/include -I/usr/include/sample -I/usr/include/mysample
    ldflags: -L/usr/lib -L/usr/lib/sample -L/usr/lib/mysample -lsample -lsample_rt -lmysample
Installing config-package.
Installing package.
package:
    include-dirs: /usr/include /usr/include/sample /usr/include/mysample
    library-dirs: /usr/lib /usr/lib/sample /usr/lib/mysample
    libraries: sample sample_rt mysample
    cflags: -I/usr/include -I/usr/include/sample -I/usr/include/mysample
    ldflags: -L/usr/lib -L/usr/lib/sample -L/usr/lib/mysample -lsample -lsample_rt -lmysample

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bopen.recipe.libinc-0.3.0.tar.gz (4.7 kB view details)

Uploaded Source

Built Distributions

bopen.recipe.libinc-0.3.0-py2.6.egg (9.2 kB view details)

Uploaded Source

bopen.recipe.libinc-0.3.0-py2.5.egg (9.2 kB view details)

Uploaded Source

bopen.recipe.libinc-0.3.0-py2.4.egg (9.1 kB view details)

Uploaded Source

File details

Details for the file bopen.recipe.libinc-0.3.0.tar.gz.

File metadata

File hashes

Hashes for bopen.recipe.libinc-0.3.0.tar.gz
Algorithm Hash digest
SHA256 734d2850813300d932c75d4b37c8f3307be6771325d83208de1b9b20b44aa24d
MD5 68d1d8f856f061ec5935f0471d310826
BLAKE2b-256 f0bc830459aa14eb5c673c055f95a65426b61c9591a7ad8de1037b704c98e558

See more details on using hashes here.

Provenance

File details

Details for the file bopen.recipe.libinc-0.3.0-py2.6.egg.

File metadata

File hashes

Hashes for bopen.recipe.libinc-0.3.0-py2.6.egg
Algorithm Hash digest
SHA256 8c56b9d1e902db1e495de2a732a3a693d50cc1259211dad1db6b9b10a7a03eed
MD5 beea7653fea3743f6cc18d4008d95fb4
BLAKE2b-256 b8caab8a80301546829243bb7a6f4c289d660b453f070564381da7884ac2ab5b

See more details on using hashes here.

Provenance

File details

Details for the file bopen.recipe.libinc-0.3.0-py2.5.egg.

File metadata

File hashes

Hashes for bopen.recipe.libinc-0.3.0-py2.5.egg
Algorithm Hash digest
SHA256 3de06856db28b4a4ccf6a6b4fdae7061ce8bb85809a04bfc8c1179586eb01ec1
MD5 7c863f9ea0a8d548e84d3c4bb1d45d71
BLAKE2b-256 fc841828e9306c2a31dac8567d5059c14de785d59afc327ee77db0a50b4ef878

See more details on using hashes here.

Provenance

File details

Details for the file bopen.recipe.libinc-0.3.0-py2.4.egg.

File metadata

File hashes

Hashes for bopen.recipe.libinc-0.3.0-py2.4.egg
Algorithm Hash digest
SHA256 c1e64d9de74d3e79a8de92910f08454d5fd82190b697417fdd7ebd1b5bb5d767
MD5 f55f67f25a3e245025c6b84d9962fca4
BLAKE2b-256 9e0e52378ef39a21fb5c69f90f90c939b04f468d6518f1cf42a5f6e711e0ba3c

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page