� ,�Re(��:�dZddlZddlZGd�d��Zd�ZdS)zmdistutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.�Nc�<�eZdZdZ dd�Zd�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 : [string] list of source filenames, relative to the distribution root (where the setup script lives), in Unix form (slash-separated) for portability. 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. Nc ��t|t��std���t|t��rt d�|D����std���||_||_|pg|_|pg|_|pg|_ |pg|_ |pg|_ |pg|_ | pg|_ | pg|_| pg|_| pg|_| pg|_|pg|_||_||_t+|��dkrId�|D��}d�t/|����}d|z}t1j|��dSdS)Nz'name' must be a stringc3�@K�|]}t|t��V��dS)N)� isinstance�str)�.0�vs ��/builddir/build/BUILDROOT/alt-python311-setuptools-65.6.3-2.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/setuptools/_distutils/extension.py� z%Extension.__init__..ms,����1V�1V��*�Q��2D�2D�1V�1V�1V�1V�1V�1V�z#'sources' must be a list of stringsrc�,�g|]}t|����S�)�repr)r �options r � z&Extension.__init__..�s��5�5�5��t�F�|�|�5�5�5r z, zUnknown Extension options: %s)rr�AssertionError�list�all�name�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�language�optional�len�join�sorted�warnings�warn)�selfrrrrrrrrrrr r!r"r#r$r%�kw�options�msgs r �__init__zExtension.__init__Wsz��(�$��$�$� <� �!:�;�;� ;��7�D�)�)� H�c�1V�1V�g�1V�1V�1V�.V�.V� H� �!F�G�G� G��� ��� �(�.�B���*�0�b���(�.�B���(�.�B���"��b���$8�$>�B��!�*�0�b���"4�":����.�4�"���,�2����"��b����}�"�� � �� � �� � �r�7�7�Q�;�;�5�5�"�5�5�5�G��i�i��w���0�0�G�1�G�;�C� �M�#� � � � � � �;r c�~�d�|jj|jj|jt |����S)Nz<{}.{}({!r}) at {:#x}>)�format� __class__� __module__� __qualname__r�id)r+s r �__repr__zExtension.__repr__�s8��'�.�.� �N� %� �N� '� �I� �t�H�H�  � � r )NNNNNNNNNNNNNN)�__name__r3r4�__doc__r/r6rr r rrso������>�>�L�����!���������#/�/�/�/�b � � � � r rc��ddlm}m}m}ddlm}ddlm}||��}||ddddd���} g} |���} | ��n�|� | ��r�/| d| d cxkrd krnn|� d | z���d|| |��} || ��} | d} t| g��} d} | dd�D�]?}| �| � |��d} �tj�|��d}|dd �}|d d�}|d vr| j� |���u|dkr| j� |����|dkri|�d��}|d kr| j� |df����| j� |d|�||d zd�f����|dkr| j� |����'|dkr| j� |����I|dkr| j� |����k|dkr| j� |�����|dkr| j� |�����|dkr | j} ���|dkr | j} ���|dkr | j} ���|dkr%| j� |��|s| j} ��|dvr| j� |����'|� d|z����A|� | ����� |���n#|���wxYw|S)z3Reads a Setup file and returns Extension instances.r)�parse_makefile�expand_makefile_vars� _variable_rx)�TextFile)� split_quoted�)�strip_comments� skip_blanks� join_lines� lstrip_ws� rstrip_wsTN������*z'%s' 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 '%s')�distutils.sysconfigr:r;r<�distutils.text_filer=�distutils.utilr>�readline�matchr*r�append�os�path�splitextrr�findrrrrrrr r�close)�filenamer:r;r<r=r>�vars�file� extensions�line�words�module�ext�append_next_word�word�suffix�switch�value�equalss r �read_setup_filerb�s$��V�V�V�V�V�V�V�V�V�V�,�,�,�,�,�,�+�+�+�+�+�+� �>�(� #� #�D� �8�������  � � �D�Q�� �L #��=�=�?�?�D��|���!�!�$�'�'� ���A�w�$�r�(�)�)�)�)�c�)�)�)�)�)�� � �6��=�>�>�>��'�'��d�3�3�D� �L��&�&�E��1�X�F��F�B�'�'�C�#� ��a�b�b� �2 C�2 C��#�/�$�+�+�D�1�1�1�'+�$����)�)�$�/�/��2���a��c����Q�R�R����O�O�O��K�&�&�t�,�,�,�,��t�^�^��$�+�+�E�2�2�2�2��t�^�^�"�Z�Z��_�_�F���|�|��)�0�0�%���?�?�?�?��)�0�0�%��&��/�5��RS����CV�1W�X�X�X�X��t�^�^��$�+�+�E�2�2�2�2��t�^�^��*�1�1�$�7�7�7�7��t�^�^��M�(�(��/�/�/�/��t�^�^��$�+�+�E�2�2�2�2��t�^�^��,�3�3�E�:�:�:�:��X�%�%�'*�'?�$�$��Z�'�'�'*�':�$�$��\�)�)�'*�'=�$�$��t�^�^��'�.�.�t�4�4�4� �?�+.�+>�(���C�C�C� �%�,�,�T�2�2�2�2��I�I�:�T�A�B�B�B�B� � � �c� "� "� "�YL #��V � � � � � � ��� � � � � � ���� �s �K9M�M)r8rOr)rrbrr r �rcsr����  � � � �����z �z �z �z �z �z �z �z �zg�g�g�g�gr