�
��2Yc�����������@���s����d��d�l��Z��d��d�l�Z�d��d�l�Z�d��d�l�Z�d��d�l�Z�d��d�l�Z�d��d�l�m�Z�d��d�l�m	�Z	�d��d�l
�m�Z�d��d�l�m
�Z
�d�d�l�m�Z�d�e�f�d	�������YZ�d�S(
���i����N(���t���MSVCCompiler(���t
���UnixCCompiler(���t���Mingw32CCompiler(���t���customize_compileri���(���t���utilst	���CCompilerc�����������B���sz���e��Z�d��Z�d
�Z�d��Z�e�j�e�j�d
�d���Z	�d����Z
�d����Z�d����Z�d����Z
�d����Z�d����Z�d����Z�d	����Z�RS(���t����c���������C���s:��|�d�k�r��|�d��k�r]�|�j�d���d�k�sB�|�j�d���d�k�rK�d�}�q]�t�j�j����}�n��|�d�k�r��|�d�k�r��t�d�|�����q��n�t�j�j����}�|�d�k�r��d�d	�l�m�}�|�j����|��_	�n�t�j�j
�d
�|���|��_	�t�|��j	���t�|��j	�t
���rT|��j	�j�d�g�k�r#g��|��j	�_�n��|��j	�j�d��k�rT|��j	�j	�d�g�|��j	�_�qTn��|��j����r�d
�t�j�d�<d�t�j�k�r�d�t�j�k�r�t�j�j�d���t�j�d�<q�t�j�j�d���r�t�j�j�d���t�j�d�<q�n��d�|��_�d�|��_�nI�t�|��j	�t
���r|��j	�j	�d�|��_�n�d�j�|��j	�j	���|��_�d�|��_�d��S(���Nt���ntt���MSYSTEMt���MINGW32t���MINGW64t���mingw32t���msvcs'���Specified Compiler '%s' is unsupported.i���(���t���msvccompilert���compilert���msvcrts���-Et���1t���DISTUTILS_USE_SDKt���MSSdkt
���WindowsSDKDirt���VCInstallDirs���cl.exes���-wd4996i����t��� s���-Wno-deprecated-declarations(���t���Nonet���gett	���distutilst	���ccompilert���get_default_compilert
���SystemExitR���R
���t���get_msvc_compilerR���t���new_compilerR���t
���isinstanceR���t
���dll_librariest���preprocessort
���check_is_msvct���ost���environt���compiler_cmdt���_cflags_no_deprecation_warningst���join(���t���selfR#���t���osnamet
���compiler_nameR
���(����(����ss���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/ccompiler.pyt���__init__+���s@����*	

	c���	������C���s���|�s8|��j�����r[�x��|�|�D]7�}�|��j�j�|���x�|�D]�}�|��j�j�|���q:�Wq�Wn^�|��j�j�d���t�j�d�k�r��|��j�j�d���n��|�j�d���t�j	�d�k�r��|�j�d���n��x"�|�|�D]�}�|��j�j�|���q��W|��j�����s�xH�|�D]=�}�|�j�d�|���t�j
�j�|���r��|�j�d�|���q��q��Wq�n��|�j�d���x>�|�D]6�}�|�j�d	���rq|�j�|���qL|�j�d
�|���qLWxN�|�D]F�}�|�j�d�|���t�j
�j�|���r�|�j�d���|�j�|���q�q�Wd��S(���Nt���.R���s���-Wl,-rpath,.t���darwins���-Wl,--no-as-neededs���-Ls���-Wl,-rpath,s���-L.s���.las���-ls���-rpath(
���R!���R���t���add_libraryt���add_library_dirR"���t���namet���add_runtime_library_dirt���appendt���syst���platformt���patht���isabst���endswith(	���R'���t���argst���libtoolt	���librariest���extra_librariest���libpathst���libraryt���libpatht���library_path(����(����ss���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/ccompiler.pyt���get_internal_link_flagsp���s:����






c���������C���s^���xW�|�D]O�}�|�s&�|��j��j�|���q�|�j�d���rE�|�j�|���q�|�j�d�|���q�Wd��S(���Ns���.las���-l(���R���R-���R6���R1���(���R'���R7���R8���R9���R<���(����(����ss���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/ccompiler.pyt���get_external_link_flags����s����
c���	������C���s����d�g�}�|��j��|���\�}�}�}�d�g�}�|�j�|���|�j�|���|��j����r��|�j�d���|�j�d
���|�j�d���|�j�d���n��|��j�j�d�|�d�|�d	�|�d
�|�d�|���d��S(���Ns���-CR+���t���_USE_DECLSPECS_FOR_SALt���_CRT_SECURE_NO_WARNINGSt���_CRT_NONSTDC_NO_WARNINGSt���SAL_NO_ATTRIBUTE_DECLARATIONSt���sourcet���output_filet���macrost���include_dirst���extra_postargs(���RA���N(���RB���N(���RC���N(���RD���N(���t���_set_cpp_optionst���extendR!���R1���R���R���t
���preprocess(	���R'���RE���t���outputt���cpp_optionsRI���t
���include_pathsRG���t���postargsRH���(����(����ss���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/ccompiler.pyRL�������s����		




c���������C���s���g��}�g��}�d�j��|���}�|�j�t�j�d�|�j�t�j�����}�|��j�|���\�}	�}
�}�x�|�D]�}�|�j�|���q^�Wt�|��j�t���rBt�j	�j
�d���}
�|
�rBx��t�t�j
�|
�����D]��\�}�}�|�j�d���r��|�j�d���}�|�d�k�r	|�d�|�!|�|�d�f�}�n�|�d�d��f�}�|�|
�k�r8|
�j�|���q8q��q��WqBn��|��j�d	�k�rh|�rh|�j�d
���n��|�j�|��j���|�j�|	���|�j�|���|��j�j�d�|�d�|
�d
�|�d�|�d�t�|�|�d�|�j�t�j���!����S(���NR���i����t���CFLAGSs���-Dt���=i����i���i���t���gccs���-Wallt���sourcesRG���RH���RI���t
���output_dir(���R&���t���rfindR"���t���sepRJ���R1���R���R���R���R#���R���t	���enumeratet���shlext���splitt
���startswitht���findR���R$���R%���RK���t���compilet���str(���R'���t���pkg_config_cflagst���cpp_includesRE���t
���init_sectionsRI���t���includest
���source_strt
���tmpdir_idxRO���RG���t
���extra_argst���includet���cflagst���it���cflagt���stridxt���macroset(����(����ss���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/ccompiler.pyR]�������s<����$
"



c���	������C���sk���g��}�g��}�g��}�g��}�x�|�D]�}�|�j��|���q�W|��j�j�d�|��j�j�d�|�d�|�d�|�d�|���d��S(���Nt���target_desct���objectst���output_filenamet
���extra_preargsRI���(���R1���R���t���linkt
���EXECUTABLE(	���R'���RM���Rm���t���lib_argsRo���RI���t���library_dirsR9���t���arg(����(����ss���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/ccompiler.pyRp�������s����
c���������C���s���g��}�g��}�|��j�����rV�t�j�j�d���}�|�j�d���}�|�j�d���|�j�d���nt�j�|���}�|�r��t�j�d�k�r��|�j�t�j	�t�j�j�d�d�������n��|�j
�|���|�j�d���n��|�j
�t�j�j�d	�d
���d�g���t�j�|��j
�d�g�d
�t�j��}�|�j����\�}�}	�xK�|�j�d���j����D]4�}
�|
�j�d���r*|
�t�d���j�t�j���}�q*q*Wg��}�g��}�x>|�D]6}
�t�}�d�|
�d�|
�d�|
�d�|
�d�|
�g�}�x�|�D]�}�|�r�Pn��|�j�d���r�|�d�}�n��x�|�D]�}�|�r�Pn��t�j�j�|�|���}�t�j�j�|���r�|��j�����r%t�j�d�d���\�}�}�t�j�|���d�|�g�}�t�j�|�|�g�|�d
�t�j��}�t�|�d����~�}�xt�|�j����j����D]`�}
�d�|
�k�r�|
�j����}�x?�|�D]4�}�|�j�d���r�|�j�|�d�d���t�}�Pq�q�Wq�q�WWd��QX|�j����t�j �|���q�t�j�|�|�g�d
�t�j��}�|�j����\�}�}	�x4�|�j�d���j����D]�}
�|�j�|
���t�}�PqlWq�q�Wq�W|�su|�j�|
���ququWt�|���d�k�r�t!�d�d �j�|�������n��|�S(!���Nt���LIBt���;s���dumpbin.exes���-symbolsR���t���SHELLs���sh.exes���--mode=executet���DLLTOOLs���dlltool.exes
���--identifys���-print-search-dirst���stdoutt���asciis���libraries: s���lib%s.dll.as���lib%s.as���%s.dll.as���%s.as���%s.libRR���i���t���prefixs���g-ir-win32-resolve-lib-s���-out:t���rt���__IMPORT_DESCRIPTOR_i���s���.dlli����s4���ERROR: can't resolve libraries to shared libraries: s���, ("���R!���R"���R#���R���RZ���R1���R���t���get_libtool_commandR/���t���whichRK���t
���subprocesst���PopenR$���t���PIPEt���communicatet���decodet
���splitlinesR[���t���lent���pathsept���FalseR4���R&���t���existst���tempfilet���mkstempt���closet���callt���opent���readt���Truet���unlinkR���(���R'���R9���t���optionsR7���t	���libsearchR=���R8���t���proct���ot���et���linet���shlibst���not_resolvedt���libt���foundt
���candidatest���lt���ct���implibt���tmp_fdt���tmp_filenamet���output_flagt���tmp_fileobjt���line_tokenst���item(����(����ss���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/ccompiler.pyt���resolve_windows_libs��s�����	
(
"#









c���������C���s���t��|��j�t���r�t�St�Sd��S(���N(���R���R���R����R����R����(���R'���(����(����ss���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/ccompiler.pyR!���h��s����c���������C���s'��g��}�g��}�g��}�x|�D]��}�t��j�|���}�|�j�d���rW�|�j�|�t�d�����q�|�j�d���r��|�t�d���}�|�j�d���}�|�d�k�r��|�}	�d��}
�n�|�|� }	�|�|�d�}
�|�j�|	�|
�f���q�|�j�d���r��|�j�|�t�d���f���q�|�d
�k�r�|�j�|���q�q�W|�|�|�f�S(���Ns���-Is���-DRR���i����i���s���-Us���-g3s���-ggdb3s���-gstabs3s���-gcoff3s���-gxcoff3s���-gvms3(���s���-g3s���-ggdb3s���-gstabs3s���-gcoff3s���-gxcoff3s���-gvms3(���R���t���cflag_real_include_pathR[���R1���R����R\���R���(���R'���R����Rb���RG���t
���other_optionsR����t���optiont���macrot���macro_indext
���macro_namet���macro_value(����(����ss���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/ccompiler.pyRJ���o��s*����
	
N(���t���__name__t
���__module__R$���R���R���R%���R"���R#���R/���R*���R?���R@���RL���R]���Rp���R����R!���RJ���(����(����(����ss���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/ccompiler.pyR���%���s���B	3			*		d	(���R"���RY���R����R����R2���R���t���distutils.msvccompilerR����t���distutils.unixccompilerR���t���distutils.cygwinccompilerR���t���distutils.sysconfigR���R���R���t���objectR���(����(����(����ss���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/ccompiler.pyt���<module>���s���