File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/extension.cpython-310.pyc
Back
o ;j�+ � @ sF d Z ddlmZ ddlZddlZddlmZ G dd� d�Zdd� ZdS ) zmdistutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.� )�annotationsN)�Iterablec @ s@ e Zd ZdZ dddd�Zdd� ZdS )� Extensiona� Just a collection of attributes that describes an extension module and everything needed to build it (hopefully in a portable way, but there are hooks that let you be as unportable as you need). Instance attributes: name : string the full name of the extension, including any packages -- ie. *not* a filename or pathname, but Python dotted name sources : Iterable[string | os.PathLike] iterable of source filenames (except strings, which could be misinterpreted as a single filename), relative to the distribution root (where the setup script lives), in Unix form (slash-separated) for portability. Can be any non-string iterable (list, tuple, set, etc.) containing strings or PathLike objects. Source files may be C, C++, SWIG (.i), platform-specific resource files, or whatever else is recognized by the "build_ext" command as source for a Python extension. include_dirs : [string] list of directories to search for C/C++ header files (in Unix form for portability) define_macros : [(name : string, value : string|None)] list of macros to define; each macro is defined using a 2-tuple, where 'value' is either the string to define it to or None to define it without a particular value (equivalent of "#define FOO" in source or -DFOO on Unix C compiler command line) undef_macros : [string] list of macros to undefine explicitly library_dirs : [string] list of directories to search for C/C++ libraries at link time libraries : [string] list of library names (not filenames or paths) to link against runtime_library_dirs : [string] list of directories to search for C/C++ libraries at run time (for shared extensions, this is when the extension is loaded) extra_objects : [string] list of extra files to link with (eg. object files not implied by 'sources', static library that must be explicitly specified, binary resource files, etc.) extra_compile_args : [string] any extra platform- and compiler-specific information to use when compiling the source files in 'sources'. For platforms and compilers where "command line" makes sense, this is typically a list of command-line arguments, but for other platforms it could be anything. extra_link_args : [string] any extra platform- and compiler-specific information to use when linking object files together to create the extension (or to create a new static Python interpreter). Similar interpretation as for 'extra_compile_args'. export_symbols : [string] list of symbols to be exported from a shared extension. Not used on all platforms, and not generally necessary for Python extensions, which typically export exactly one symbol: "init" + extension_name. swig_opts : [string] any extra options to pass to SWIG if a source file has the .i extension. depends : [string] list of files that the extension depends on language : string extension language (i.e. "c", "c++", "objc"). Will be detected from the source extensions if not provided. optional : boolean specifies that a build failure in the extension should not abort the build process, but simply not install the failing extension. N�name�str�sources� Iterable[str | os.PathLike[str]]�include_dirs�list[str] | None� define_macros�#list[tuple[str, str | None]] | None�undef_macros�library_dirs� libraries�runtime_library_dirs� extra_objects�extra_compile_args�extra_link_args�export_symbols� swig_opts�depends�language� str | None�optional�bool | Nonec K s t |t�s td��t |t�rtd��ztttj|��| _W n ty( td��w || _|p/g | _ |p4g | _ |p9g | _|p>g | _|pCg | _ |pHg | _| pMg | _| pRg | _|pWg | _|p\g | _| pag | _|pfg | _|| _|| _t|�dkr�dd� |D �}d�t|��}d|� �}t�|� d S d S ) Nz'name' must be a stringzJ'sources' must be an iterable of strings or PathLike objects, not a stringz<'sources' must be an iterable of strings or PathLike objectsr c S s g | ]}t |��qS � )�repr)�.0�optionr r �S/opt/saltstack/salt/lib/python3.10/site-packages/setuptools/_distutils/extension.py� <listcomp>� s z&Extension.__init__.<locals>.<listcomp>z, zUnknown Extension options: )� isinstancer � TypeError�list�map�os�fspathr r r r r r r r r r r r r r r r �len�join�sorted�warnings�warn)�selfr r r r r r r r r r r r r r r r �kw�options�msgr r r �__init__\ sD ��� �zExtension.__init__c C s. d| j j� d| j j� d| j�dt| �d�d� S )N�<�.�(z) at z#x�>)� __class__� __module__�__qualname__r �id)r, r r r �__repr__� s .zExtension.__repr__)NNNNNNNNNNNNNN) r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r )�__name__r6 r7 �__doc__r0 r9 r r r r r s$ H�<r c C s� ddl m}m}m} ddlm} ddlm} || �}|| dddddd�}�z0g } |�� } | du r3�n|� | �r9q(| d | d krGd krSn n |� d | � d�� q(|| |�} || �} | d }t|g �}d} | dd� D ]�}| dur{| �|� d} qmt j�|�d }|dd � }|d d� }|dv r�|j�|� qm|dkr�|j�|� qm|dkr�|�d�}|dkr�|j�|df� qm|j�|d|� ||d d� f� qm|dkr�|j�|� qm|dkr�|j�|� qm|dkr�|j�|� qm|dkr�|j�|� qm|dk�r|j�|� qm|dk�r|j} qm|dk�r|j} qm|dk�r!|j} qm|dk�r3|j�|� |�s2|j} qm|dv �r?|j�|� qm|� d|� d �� qm|�|� q)W |�� |S |�� w )z3Reads a Setup file and returns Extension instances.r )�_variable_rx�expand_makefile_vars�parse_makefile)�TextFile)�split_quotedT)Zstrip_commentsZskip_blanksZ join_linesZ lstrip_wsZ rstrip_wsN����*�'z' lines not handled yet� � )z.cz.ccz.cppz.cxxz.c++z.mz.mmz-Iz-D�=z-Uz-Cz-lz-Lz-Rz-rpathz-Xlinkerz -Xcompilerz-u)z.az.soz.slz.oz.dylibzunrecognized argument ')Zdistutils.sysconfigr<