コード例 #1
0
def get_extension_modules(config):
    """Handle extension modules"""

    EXTENSION_FIELDS = ("sources",
                        "include_dirs",
                        "define_macros",
                        "undef_macros",
                        "library_dirs",
                        "libraries",
                        "runtime_library_dirs",
                        "extra_objects",
                        "extra_compile_args",
                        "extra_link_args",
                        "export_symbols",
                        "swig_opts",
                        "depends")

    ext_modules = []
    for section in config:
        if ':' in section:
            labels = section.split(':', 1)
        else:
            # Backwards compatibility for old syntax; don't use this though
            labels = section.split('=', 1)
        labels = [l.strip() for l in labels]
        if (len(labels) == 2) and (labels[0] == 'extension'):
            ext_args = {}
            for field in EXTENSION_FIELDS:
                value = has_get_option(config, section, field)
                # All extension module options besides name can have multiple
                # values
                if not value:
                    continue
                value = split_multiline(value)
                if field == 'define_macros':
                    macros = []
                    for macro in value:
                        macro = macro.split('=', 1)
                        if len(macro) == 1:
                            macro = (macro[0].strip(), None)
                        else:
                            macro = (macro[0].strip(), macro[1].strip())
                        macros.append(macro)
                    value = macros
                ext_args[field] = value
            if ext_args:
                if 'name' not in ext_args:
                    ext_args['name'] = labels[1]
                ext_modules.append(extension.Extension(ext_args.pop('name'),
                                                       **ext_args))
    return ext_modules
コード例 #2
0
ファイル: setup.py プロジェクト: mikkezavala/nkit4py
cpp_module = extension.Extension(
    'nkit4py',
    define_macros=define_macros,
    include_dirs=[
        './deps/include', './deps/expat-2.1.0/lib', './deps/nkit/src', './src'
    ],
    library_dirs=[],
    libraries=libraries,
    extra_compile_args=cflags,
    sources=[
        './src/module.cpp', './deps/expat-2.1.0/lib/xmlparse.c',
        './deps/expat-2.1.0/lib/xmltok.c', './deps/expat-2.1.0/lib/xmlrole.c',
        "./deps/yajl-2.0.5/src/yajl_lex.c",
        "./deps/yajl-2.0.5/src/yajl_encode.c",
        "./deps/yajl-2.0.5/src/yajl_parser.c",
        "./deps/yajl-2.0.5/src/yajl_version.c",
        "./deps/yajl-2.0.5/src/yajl_alloc.c",
        "./deps/yajl-2.0.5/src/yajl_buf.c",
        "./deps/yajl-2.0.5/src/yajl_tree.c",
        "./deps/yajl-2.0.5/src/yajl_gen.c", "./deps/yajl-2.0.5/src/yajl.c",
        "./deps/nkit/src/constants.cpp", "./deps/nkit/src/tools.cpp",
        "./deps/nkit/src/dynamic/dynamic.cpp",
        "./deps/nkit/src/dynamic/dynamic_json.cpp",
        "./deps/nkit/src/dynamic/dynamic_path.cpp",
        "./deps/nkit/src/dynamic/dynamic_table.cpp",
        "./deps/nkit/src/dynamic/dynamic_table_index_comparators.cpp",
        "./deps/nkit/src/dynamic/dynamic_xml.cpp",
        "./deps/nkit/src/logger/rotate_logger.cpp",
        "./deps/nkit/src/encoding/transcode.cpp",
        "./deps/nkit/src/xml/xml2var.cpp",
        "./deps/nkit/3rd/netbsd/strptime.cpp"
    ])
コード例 #3
0
    name='edgedb-server',
    description='EdgeDB Server',
    author='MagicStack Inc.',
    author_email='*****@*****.**',
    packages=['edb'],
    include_package_data=True,
    cmdclass=COMMAND_CLASSES,
    entry_points={
        'console_scripts': [
            'edgedb-server = edb.server.main:main',
        ],
    },
    ext_modules=[
        setuptools_extension.Extension(
            "edb.server.cache.stmt_cache",
            ["edb/server/cache/stmt_cache.pyx"],
            extra_compile_args=EXT_CFLAGS,
            extra_link_args=EXT_LDFLAGS),

        setuptools_extension.Extension(
            "edb.protocol.protocol",
            ["edb/protocol/protocol.pyx"],
            extra_compile_args=EXT_CFLAGS,
            extra_link_args=EXT_LDFLAGS),

        setuptools_extension.Extension(
            "edb.server.pgproto.pgproto",
            ["edb/server/pgproto/pgproto.pyx"],
            extra_compile_args=EXT_CFLAGS,
            extra_link_args=EXT_LDFLAGS),
コード例 #4
0
ファイル: setup.py プロジェクト: onurgaloglu/numpy-stl
import os
import sys
import warnings
from setuptools import setup, extension
from setuptools.command.build_ext import build_ext

setup_kwargs = {}

try:
    import numpy
    from Cython import Build

    setup_kwargs['ext_modules'] = Build.cythonize([
        extension.Extension(
            'stl._speedups',
            ['stl/_speedups.pyx'],
            include_dirs=[numpy.get_include()],
        ),
    ])
except ImportError:
    print('WARNING', file=sys.stderr)
    print('Cython and Numpy is required for building extension.',
          file=sys.stderr)
    print('Falling back to pure Python implementation.', file=sys.stderr)

# To prevent importing about and thereby breaking the coverage info we use this
# exec hack
about = {}
with open('stl/__about__.py') as fp:
    exec(fp.read(), about)
コード例 #5
0
ファイル: setup.py プロジェクト: paulyc/pymapnik2
    description="Python bindings for mapnik",
    long_description=long_description,
    classifiers=[
        "Programming Language :: Python",
        "Topic :: Software Development :: Libraries :: Python Modules",
    ],
    keywords='',
    author='Mathieu Le Marec - Pasquet & the mapnik community',
    author_email='*****@*****.**',
    url='http://pypi.python.org/pypi/mapnik',
    license='LGPL',
    include_package_data=True,
    zip_safe=False,
    packages=find_packages('src'),
    package_dir={'': 'src'},
    extras_require={'tests': test_requires},
    ext_modules=[
        extension.Extension(
            "_mapnik",
            files,
            include_dirs=[sources_dir, agg_sources_dir],
            extra_compile_args=cf.split(),
            libraries=compilation_flags.get('libraries', []),
            extra_link_args=ldf.split(),
        ),
    ],
    install_requires=['setuptools'],
    test_suite='nose.collector',
    entry_points={},
)