• Antony Lee's avatar
    Add helper to build in-tree extensions. (#2831) · 1be0a0a6
    Antony Lee authored
    
    
    For single-file extensions, a convenient pattern offered by cython
    is to place the source files directly in the python source tree
    (`foo/__init__.py`, `foo/ext.pyx`), deriving the package names from
    their filesystem location.  Adapt this pattern for pybind11, using an
    `intree_extensions` helper, which should be thought of as the moral
    equivalent to `cythonize`.
    
    Differences with cythonize: I chose not to include globbing support
    (`intree_extensions(glob.glob("**/*.cpp"))` seems sufficient), nor to
    provide extension-customization kwargs (directly setting the attributes
    on the resulting Pybind11Extension objects seems sufficient).
    
    We could choose to have `intree_extension` (singular instead) and make
    users write `[*map(intree_extension, glob.glob("**/*.cpp"))]`; no strong
    opinion here.
    Co-authored-by: default avatarAaron Gokaslan <skylion.aaron@gmail.com>
    1be0a0a6
compiling.rst 25.7 KB