� ,�Re�9���dZddlZddlZddlmZmZmZmZmZddl m Z m Z ddl m Z ddlmZddlmZejd e��Gd �d e ��ZdS) z�distutils.bcppcompiler Contains BorlandCCompiler, an implementation of the abstract CCompiler class for the Borland C++ compiler. �N�)�DistutilsExecError� CompileError�LibError� LinkError�UnknownFileError)� CCompiler�gen_preprocess_options)� write_file)�newer)�logz�bcppcompiler is deprecated and slated to be removed in the future. Please discontinue use or file an issue with pypa/distutils describing your use case.c���eZdZdZdZiZdgZgd�ZeezZdZ dZ dZ dxZ Z d Zd�fd � Z dd �Z dd�Z dd�Zdd�Zdd�Z dd�Z�xZS)� BCPPCompilerzConcrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. �bcppz.c)z.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exerc���t���|||��d|_d|_d|_d|_gd�|_gd�|_gd�|_gd�|_ g|_ gd�|_ gd�|_ dS) Nz bcc32.exez ilink32.exeztlib.exe)�/tWMz/O2�/q�/g0)rz/Odrr)z/Tpd�/Gnr�/x)rrr)rrrz/r) �super�__init__�cc�linker�lib�preprocess_options�compile_options�compile_options_debug�ldflags_shared�ldflags_shared_debug�ldflags_static� ldflags_exe�ldflags_exe_debug)�self�verbose�dry_run�force� __class__s ���/builddir/build/BUILDROOT/alt-python311-setuptools-65.6.3-2.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/setuptools/_distutils/bcppcompiler.pyrzBCPPCompiler.__init__Bs���� ������'�5�1�1�1� ���#�� ����"&���;�;�;���%A�%A�%A��"�9�9�9���$?�$?�$?��!� ���.�.�.���!:�!:�!:�����Nc �~�|�||||||��\}} }} } |pg} | �d��|r| �|j��n| �|j��| D�]H} | | \}}n#t $rY�wxYwt j�|��}t j�| ��} |� t j� | ����|dkr��|dkr= |� dd| |g��n!#t$r}t|���d}~wwxYw��||jvrd}n||jvrd}nd}d| z} |� |jg| z| z||gz|z|gz����)#t$r}t|���d}~wwxYw| S) Nz-c�.res�.rc�brcc32z-fo�z-P�-o)�_setup_compile�append�extendrr�KeyError�os�path�normpath�mkpath�dirname�spawnrr� _c_extensions�_cpp_extensionsr)r$�sources� output_dir�macros� include_dirs�debug� extra_preargs�extra_postargs�depends�objects�pp_opts�build� compile_opts�obj�src�ext�msg� input_opt� output_opts r)�compilezBCPPCompiler.compileZsQ��;?�:M�:M� �� �g�w��; �; �7�����%�%�*�� ����D�!�!�!� � 6� � � �� :� ;� ;� ;� ;� � � �� 4� 5� 5� 5��1 (�1 (�C� � ��:���S�S��� � � ��� �����'�"�"�3�'�'�C��'�"�"�3�'�'�C� �K�K������,�,� -� -� -��f�}�}���e�|�|�,��J�J��%��c�:�;�;�;�;��)�,�,�,�&�s�+�+�+�����,������d�(�(�(�� � ���,�,�,� � � � � ����J� (�� � ��W�I�"�#���!�*�-�.�%� %� �e� ������&� (� (� (�"�3�'�'�'����� (�����sB�7 B� B�B�D+�+ E �5E�E �--F� F:�&F5�5F:c�T�|�||��\}}|�||���}|�||��rL|dg|z}|r |�|jg|z��dS#t $r}t |���d}~wwxYwtjd|��dS)N)r>z/u�skipping %s (up-to-date)) �_fix_object_args�library_filename� _need_linkr:rrrr rA) r$rE�output_libnamer>rA� target_lang�output_filename�lib_argsrLs r)�create_static_libzBCPPCompiler.create_static_lib�s���!%� 5� 5�g�z� J� J���*��/�/��:�/�V�V�� �?�?�7�O� 4� 4� C�'��.��8�H�� �� $�� � �D�H�:��0�1�1�1�1�1��%� $� $� $��s�m�m�#����� $���� �I�0�/� B� B� B� B� Bs�A2�2 B�<B � Bc��|�||��\}}|�|||��\}}}|r"tjdt |����|� t j�||��}|�||���r�|tj kr$d}| r|j dd�}n3|j dd�}n#d}| r|j dd�}n|jdd�}|�d}n�t j�|��\}}t j�|��\}}t j�|d��}t j�|d|z��}dg}|pgD]+}|�d�||�����,|�t*||fd |z��t-t jj|��}|g}g}|D]r}t j�t j�|����\}}|d kr|�|���]|�|���s|D]7}|�d t j�|��z���8|�d ��|�|��|�d |g��|�d��|D]F}|�||| ��}|�|�|���1|�|���G|�d��|�d��|�d |g��|�d ��|�|��| r| |dd�<| r|�| ��|�t j�|���� |�|jg|z��dS#t<$r}t?|���d}~wwxYwtj d|��dS)Nz7I don't know what to do with 'runtime_library_dirs': %s�c0w32�c0d32r/rz%s.def�EXPORTSz {}=_{}z writing %sr,z/L%sz/L.�,z,,�import32�cw32mtrQ)!rR� _fix_lib_argsr �warning�strr5r6�joinrTr � EXECUTABLEr#r"r r�split�splitextr9r2�format�executer �mapr7�normcaser3�find_library_filer8r:rrrrA) r$� target_descrErWr>� libraries� library_dirs�runtime_library_dirs�export_symbolsrArBrC� build_temprV� startup_obj�ld_args�def_file�head�tail�modnamerK�temp_dir�contents�sym�objects2� resources�file�base�ellr�libfilerLs r)�linkzBCPPCompiler.link�s|��(!%� 5� 5�g�z� J� J���*�:>�:L�:L� �|�%9�; �; �7��L�"6� � � �K�I��(�)�)� � � � � !� �g�l�l�:��G�G�O� �?�?�7�O� 4� 4�a C��i�2�2�2�%� ��2�"�4�Q�Q�Q�7�G�G�"�.�q�q�q�1�G�G�%� ��5�"�7����:�G�G�"�1�!�!�!�4�G��%�����W�]�]�?�;�;� ��d�!�w�/�/��5�5� ����7�?�?�7�1�:�6�6���7�<�<��(�W�2D�E�E��%�;��)�/�R�A�A�C��O�O�J�$5�$5�c�3�$?�$?�@�@�@�@�� � �Z�(�H�)=�|�h�?V�W�W�W��2�7�+�W�5�5�H�#�m�G��I� � )� )�� �g�.�.�r�w�/?�/?��/E�/E�F�F� ��s��&�=�=��$�$�T�*�*�*�*��N�N�4�(�(�(�(�#� ?� ?�����v���(8�(8��(=�(=�=�>�>�>�>� �N�N�5� !� !� !� �N�N�7� #� #� #� �N�N�C��1� 2� 2� 2� �N�N�4� � � � � ,� ,���0�0��s�E�J�J���?��N�N�3�'�'�'�'��N�N�7�+�+�+�+� �N�N�:� &� &� &� �N�N�8� $� $� $� �N�N�C��?� +� +� +� �N�N�3� � � � �N�N�9� %� %� %�� ,�+����� �� /����~�.�.�.� �K�K������8�8� 9� 9� 9� %�� � �D�K�=�7�2�3�3�3�3�3��%� %� %� %���n�n�$����� %���� �I�0�/� B� B� B� B� Bs�>P� P<�(P7�7P<c��|r|dz}|dz|dz||f}n|dz|f}|D]_}|D]Z}tj�||�|����}tj�|��r|ccS�[�`dS)N�_d�_bcpp)r5r6rdrS�exists) r$�dirsrrA�dlib� try_names�dir�namer�s r)rlzBCPPCompiler.find_library_fileDs��� � -���:�D�����w���c�B�I�I��w���,�I�� � �C�!� #� #���'�,�,�s�D�,A�,A�$�,G�,G�H�H���7�>�>�'�*�*�#�"�N�N�N�N�N�#� #� �4r*r/c��|�d}g}|D�]J}tj�tj�|����\}}||jddgzvr#t d�||�����|rtj�|��}|dkr7|�tj� |||z������|dkr8|�tj� ||dz������|�tj� |||j z������L|S)Nr/r-r,z"unknown file type '{}' (from '{}')) r5r6rgrk�src_extensionsrrh�basenamer2rd� obj_extension)r$�source_filenames� strip_dirr>� obj_names�src_namerrKs r)�object_filenameszBCPPCompiler.object_filenames^sD�� � ��J�� �(� V� V�H��'�*�*�2�7�+;�+;�H�+E�+E�F�F�K�T�3��4�.�%���@�A�A�&�8�?�?��X�N�N����� .��w�'�'��-�-���f�}�}�� � �����j�$��*�!E�!E�F�F�F�F������ � �����j�$��-�!H�!H�I�I�I�I�� � �����j�$��AS�:S�!T�!T�U�U�U�U��r*c�0�|�d||��\}}}t||��}dg|z} |�| �d|z��|r|| dd�<|r| �|��| �|��|js|�t ||��r||r2|�tj� |���� |� | ��dS#t$r#} t| ��t| ���d} ~ wwxYwdS)Nz cpp32.exer0r)�_fix_compile_argsr r2r3r'r r8r5r6r9r:r�printr) r$�source� output_filer?r@rBrC�_rF�pp_argsrLs r)� preprocesszBCPPCompiler.preprocessws@��%)�$:�$:�4���$V�$V�!��F�L�(���>�>���-�'�)�� � "� �N�N�4�+�-� .� .� .� � (�'�G�B�Q�B�K� � +� �N�N�>� *� *� *����v���� �:� (��,��f�k�0J�0J�,�� :�� � �B�G�O�O�K�8�8�9�9�9� (�� � �7�#�#�#�#�#��%� (� (� (��c� � � �"�3�'�'�'����� (���� -�,s�C&�& D�0D�D)rrr)NNNrNNN)NrN) NNNNNrNNNN)r)rr/)NNNNN)�__name__� __module__� __qualname__�__doc__� compiler_type� executablesr;r<r�r��static_lib_extension�shared_lib_extension�static_lib_format�shared_lib_format� exe_extensionrrOrYr�rlr�r�� __classcell__)r(s@r)rr'sp����������M��K��F�M�-�-�-�O�#�_�4�N��M�!��!��,2�2��)��M�;�;�;�;�;�;�6�������I�I�I�I�\NR�C�C�C�C�2���!�������CC�CC�CC�CC�R����4����8�����(�(�(�(�(�(�(�(r*r)r�r5�warnings�errorsrrrrr� ccompilerr r � file_utilr �dep_utilr �_logr �warn�DeprecationWarningr�r*r)�r�s���� � � � �������������������9�8�8�8�8�8�8�8�!�!�!�!�!�!��������������� �4�� ���o(�o(�o(�o(�o(�9�o(�o(�o(�o(�o(r*