Skip to content

limix/build-capi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

build-capi

PyPIl PyPIv Anaconda-Server Badge

Build and distribute C/C++ static libraries via Python packages.

Getting Started

You can have a setup.py similar to

from os.path import join
from setuptools import setup

def get_lib():
  from build_capi import CApiLib

  mylib = CApiLib('pkg_name.lib.nmylib',
                  sources=[join('pkg_name', 'sources', 'example.c')],
                  include_dirs=[join('pkg_name', 'include')])

setup(
      name='pkg_name',
      # ...
      setup_requires=['build_capi'],
      capi_libs=[get_lib],
      include_package_data=True,
      data_files=[(join('pkg_name', 'include'), join('pkg_name', 'include',
                                                     'example.h'))],
      package_data={'': [join('pkg_name', 'lib', '*.*')]})

and then have a pkg_name/__init__.py

def get_include():
  import pkg_name
  from os.path import join, dirname
  return join(dirname(pkg_name.__file__), 'include')

def get_lib():
  import pkg_name
  from os.path import join, dirname
  return join(dirname(pkg_name.__file__), 'lib')

Please, refer to build_capi/example/prj_name for a minimal example of project using build_capi.

Install

The recommended way of installing it is via conda

conda install -c conda-forge build-capi

An alternative way would be via pip

pip install build-capi

Authors

License

This project is licensed under the MIT License - see the LICENSE file for details

About

Build and distribute C/C++ static libraries via Python packages.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published