�� r�$Lc�����������@���s���d��Z��d�Z�d�d�k�Z�d�d�k�Z�d�d�k�Z�d�d�k�Z�d�d�k�Z�d�d�k�Z�d�d�k �Z�d�d�k �Z�d�d�k�Z�d�d�k�Z�g��Z �e�i�i�i����Z�e�i�i�i����Z�e�i�i�i����Z�e�i�i�i����Z�e�i�i�i����Z�e�i�i�h��d�d��Z�d�d�d�d �d �d�d�d �d�d�d�d�d�d�d�d�d�d�d�g�Z�d�g�Z�d�d�g�Z�d�d�d�g�Z�x�e�D]�Z�e�i�e�e���qfWx�e�D]�Z�e�i�e�e���q�Wx.�e�D]&�Z�e�i�e�e���e�i�e�e���q�Wd�e �f�d �������YZ!�d!����Z"�d"����Z#�d#����Z$�d$����Z%�d%����Z&�d&����Z'�d'����Z(�d(����Z)�d)����Z*�d*����Z+�d+����Z,�d,�e �f�d-�������YZ-�d.�e �f�d/�������YZ.�d0����Z/�d1����Z0�d2����Z1�d3����Z2�d�S(4���s���SCons.Tool SCons tool selection. This looks for modules that define a callable object that can modify a construction environment as appropriate for a given tool (or tool chain). Note that because this subsystem just *selects* a callable that can modify a construction environment, it's possible for people to define their own "tool specification" in an arbitrary callable function. No one needs to use or tie in to this subsystem in order to roll their own tool definition. s@���src/engine/SCons/Tool/__init__.py 5023 2010/06/14 22:05:46 sconsi����Nt���namet���SourceFileScanners���.cs���.Cs���.cxxs���.cpps���.c++s���.ccs���.hs���.Hs���.hxxs���.hpps���.hhs���.Fs���.fpps���.FPPs���.ms���.mms���.Ss���.spps���.SPPs���.ds���.idls���.IDLs���.texs���.ltxs���.latext���Toolc�����������B���s/���e��Z�g��d����Z�d����Z�d����Z�d����Z�RS(���c���������K���sg���|�|��_��|�t�|��_�|�|��_�|��i����}�|�i�|��_�|�i�|��_�t�|�d���o�|�i�|��_�n�d��S(���Nt���options( ���R����t���DefaultToolpatht���toolpatht���init_kwt���_tool_modulet���generatet���existst���hasattrR���(���t���selfR����R���t���kwt���module(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���__init__X���s���� c��� ������C���s��t��i�}�|��i�t��i�t��_�zy[�t�i�|��i�|��i���\�}�}�}�z�t�i�|��i�|�|�|���SWd��|�o�|�i����n�XWn��t�j �o��}�t �|���d�|��i�j�o�t �i�i�|�����n�y�d�d��k �}�Wn�t�j �o�q7XxQ�|��i�D]A�}�y#�|�i�|���}�|�i�|��i���SWq��t�j �o �}�q��Xq��Wn�XWd��|�t��_�Xd�|��i�} �y�t��i�| �SWn�t�j �o�yXt��i�d�i�} �yi�t�i�|��i�| ���\�}�}�}�t�i�| �|�|�|���}�t�t �i�|��i�|���|�o�|�i����n�|�SWn��t�j �o��}�t �|���d�|��i�j�o�t �i�i�|�����n�yV�d�d��k �}�|�i�t��i�d�i�d���}�|�i�| ���}�t�t �i�|��i�|���|�SWq�t�j �o.�}�d�|��i�|�f�}�t �i�i�|�����q�Xn�XWqt�j �o.�}�d�|��i�|�f�}�t �i�i�|�����qXn�Xd��S(���Ns���No module named %si����s���SCons.Tool.s ���SCons.Tooli����s���No tool named '%s': %s(���t���syst���pathR���t���impt���find_moduleR����t���load_modulet���closet���ImportErrort���strt���SConst���Errorst���EnvironmentErrort ���zipimportt���zipimportert���modulest���KeyErrort���__path__t���setattrR���( ���R���t ���oldpythonpatht���fileR���t���desct���eR���t���aPatht���importert ���full_namet���smpathR ���t���m(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyR���d���sh���� ! � c���������O���s����|��i��d��j �o@�|�d��j �o&�|�}�|��i��i����}�|�i�|���qP�|��i��}�n�|�i�d�|��i�g���t�|��d���on�d�d��k�}�d�|�j�o-�d�d�k�l �}�|�i �i �d�|���|�d�<n�|�d�}�|��i�|���|�i�|���n�|��i �|�|�|���d��S(���Nt���TOOLSR���i����(���t ���ARGUMENTSt���args(���R���t���Nonet���copyt���updatet���AppendR����R ���t���SCons.Variablest���SCons.ScriptR*���t ���VariablesR���t���UpdateR���(���R���t���envR+���R���t���call_kwR���R*���t���opts(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���__call__����s ���� c���������C���s���|��i��S(���N(���R����(���R���(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���__str__����s����(���t���__name__t ���__module__R���R���R7���R8���(����(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyR���W���s��� ; c���������C���s����y�|��d�d�}�Wnl�t��j �o`�d�d�k�}�|�i�i�d�|�i�i�d�d�d�d �d �d�d�d �d�d�d�t���}�|�|��d�d�<n�X|�S(���s����This is a utility function that creates the Program Builder in an Environment if it is not there already. If it is already there, we return the existing one. t���BUILDERSt���Programi����Nt���actiont���emitters���$PROGEMITTERt���prefixs���$PROGPREFIXt���suffixs���$PROGSUFFIXt ���src_suffixs ���$OBJSUFFIXt���src_buildert���Objectt���target_scanner(���R���t���SCons.Defaultst���Buildert���Defaultst ���LinkActiont���ProgramScanner(���R4���t���programR���(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���createProgBuilder����s���� c������ ���C���s����y�|��d�d�}�Wn��t��j �o��t�i�i�d�d���g�}�|��i�d���o&�t�i�i�d�d���}�|�i�|���n�t�i�i�d�|�d �d �d�d�d �d�d�d�d�d���}�|�|��d�d�<|�|��d�d�<n�X|�S(���s����This is a utility function that creates the StaticLibrary Builder in an Environment if it is not there already. If it is already there, we return the existing one. R;���t ���StaticLibrarys���$ARCOMs ���$ARCOMSTRt���ranlibs ���$RANLIBCOMs ���$RANLIBCOMSTRR=���R>���s���$LIBEMITTERR?���s ���$LIBPREFIXR@���s ���$LIBSUFFIXRA���s ���$OBJSUFFIXRB���t���StaticObjectt���Library(���R���R���t���Actiont���Detectt���appendRF���(���R4���t ���static_libt���action_listt ���ranlib_action(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���createStaticLibBuilder����s ���� c���������C���s����y�|��d�d�}�Wn~�t��j �or�d�d�k�}�|�i�i�|�i�i�g�}�|�i�i�d�|�d�d�d�d �d �d�d�t�d �d�d�d���}�|�|��d�d�<n�X|�S(���s����This is a utility function that creates the SharedLibrary Builder in an Environment if it is not there already. If it is already there, we return the existing one. R;���t ���SharedLibraryi����NR=���R>���s ���$SHLIBEMITTERR?���s���$SHLIBPREFIXR@���s���$SHLIBSUFFIXRD���RA���s���$SHOBJSUFFIXRB���t���SharedObject(���R���RE���RG���t���SharedCheckt���ShLinkActionRF���RI���(���R4���t ���shared_libR���RT���(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���createSharedLibBuilder����s���� c���������C���s����y�|��d�d�}�Wn~�t��j �or�d�d�k�}�|�i�i�|�i�i�g�}�|�i�i�d�|�d�d�d�d �d �d�d�t�d �d�d�d���}�|�|��d�d�<n�X|�S(���s����This is a utility function that creates the LoadableModule Builder in an Environment if it is not there already. If it is already there, we return the existing one. R;���t���LoadableModulei����NR=���R>���s���$LDMODULEEMITTERR?���s���$LDMODULEPREFIXR@���s���$LDMODULESUFFIXRD���RA���s���$SHOBJSUFFIXRB���RX���(���R���RE���RG���RY���t���LdModuleLinkActionRF���RI���(���R4���t ���ld_moduleR���RT���(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���createLoadableModuleBuilder��s���� c���������C���s��y�|��d�d�}�Wnn�t��j �ob�t�i�i�d�h��d�h��d�d�d�d�d �d �d�g�d�t�d �d���}�|�|��d�d�<|�|��d�d�<n�Xy�|��d�d�}�Wn`�t��j �oT�t�i�i�d�h��d�h��d�d�d�d�d �d �d�g�d�t�d �d���}�|�|��d�d�<n�X|�|�f�S(���s`��This is a utility function that creates the StaticObject and SharedObject Builders in an Environment if they are not there already. If they are there already, we return the existing ones. This is a separate function because soooo many Tools use this functionality. The return is a 2-tuple of (StaticObject, SharedObject) R;���RN���R=���R>���R?���s ���$OBJPREFIXR@���s ���$OBJSUFFIXRB���t���CFilet���CXXFilet���source_scannert ���single_sourcei���RC���RX���s���$SHOBJPREFIXs���$SHOBJSUFFIX(���R���R���RF���R���(���R4���t ���static_objt ���shared_obj(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���createObjBuilders��s0���� c���������C���s����y�|��d�d�}�WnY�t��j �oM�t�i�i�d�h��d�h��d�h�d�d �6��}�|�|��d�d�<|��i�d�d���n�Xy�|��d�d �}�WnY�t��j �oM�t�i�i�d�h��d�h��d�h�d �d �6��}�|�|��d�d �<|��i�d�d���n�X|�|�f�S(���sD��This is a utility function that creates the CFile/CXXFile Builders in an Environment if they are not there already. If they are there already, we return the existing ones. This is a separate function because soooo many Tools use this functionality. The return is a 2-tuple of (CFile, CXXFile) R;���Ra���R=���R>���R@���s���$CFILESUFFIXt���CFILESUFFIXs���.cRb���s���$CXXFILESUFFIXt ���CXXFILESUFFIXs���.ccN(���R���R���RF���R,���t ���SetDefault(���R4���t���c_filet���cxx_file(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���createCFileBuildersE��s"���� c���������C���s����y�|��d�d�}�Wnx�t��j �ol�t�i�i�i����}�t�i�i�d�d���}�t�i�i�d�|�d�d�d�d �d �d�d�|�i���}�|�|��d�d�<n�X|�S( ���NR;���t���Jars���$JARCOMs ���$JARCOMSTRR=���R@���s ���$JARSUFFIXRA���s���$JAVACLASSSUFIXRB���t ���JavaClassFilet���source_factory(���R���R���t���Nodet���FSt���get_default_fsRP���RF���t���Entry(���R4���t���java_jart���fst���jar_com(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���CreateJarBuilderj��s����c���������C���s����y�|��d�d�}�Wn{�t��j �oo�t�i�i�i����}�t�i�i�d�d���}�t�i�i�d�|�d�d�d�|�i�d �|�i�d �d���}�|�|��d�d�<n�X|�S(���NR;���t���JavaHs ���$JAVAHCOMs���$JAVAHCOMSTRR=���RA���s���$JAVACLASSSUFFIXt���target_factoryRp���RB���Ro���( ���R���R���Rq���Rr���Rs���RP���RF���Rt���t���File(���R4���t ���java_javahRv���t���java_javah_com(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���CreateJavaHBuilderx��s���� c������ ���C���s����y�|��d�d�}�Wn��t��j �ox�t�i�i�i����}�t�i�i�d�d���}�t�i�i�d�|�d�h��d�d�d �d �g�d�|�i�d�|�i���}�|�|��d�d�<n�X|�S( ���NR;���Ro���s ���$JAVACCOMs���$JAVACCOMSTRR=���R>���RA���s���$JAVASUFFIXRB���t���JavaFileRz���Rp���( ���R���R���Rq���Rr���Rs���RP���RF���Rt���R{���(���R4���t���java_class_fileRv���t ���javac_com(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���CreateJavaClassFileBuilder���s���� c������ ���C���s����y�|��d�d�}�Wnu�t��j �oi�t�i�i�i����}�t�i�i�d�d���}�t�i�i�d�|�d�h��d�|�i�d�|�i���}�|�|��d�d�<n�X|�S( ���NR;���t���JavaClassDirs ���$JAVACCOMs���$JAVACCOMSTRR=���R>���Rz���Rp���(���R���R���Rq���Rr���Rs���RP���RF���t���Dir(���R4���t���java_class_dirRv���R����(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���CreateJavaClassDirBuilder���s���� c������ ���C���sl���y�|��d�d�}�WnS�t��j �oG�t�i�i�d�h��d�h��d�h�d�d��6��}�|�|��d�d�<d�|��d�<n�X|�S( ���NR;���R���R=���R>���R@���s���$JAVASUFFIXs���.javat ���JAVASUFFIX(���R���R���RF���R,���(���R4���t ���java_file(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���CreateJavaFileBuilder���s����t���ToolInitializerMethodc�����������B���s)���e��Z�d��Z�d����Z�d����Z�d����Z�RS(���s��� This is added to a construction environment in place of a method(s) normally called for a Builder (env.Object, env.StaticObject, etc.). When called, it has its associated ToolInitializer object search the specified list of tools and apply the first one that exists to the construction environment. It then calls whatever builder was (presumably) added to the construction environment in place of this particular instance. c���������C���s���|�|��_��|�|��_�d�S(���s���� Note: we store the tool name as __name__ so it can be used by the class that attaches this to a construction environment. N(���R9���t���initializer(���R���R����R����(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyR������s���� c���������C���sZ���t��|�|��i���}�|��i�i�|���t��|�|��i���}�|�|��j�o�d�S|��i�i�|���|�S(���s���� Returns the appropriate real Builder for this method name after having the associated ToolInitializer object apply the appropriate Tool module. N(���t���getattrR9���R����t���apply_toolsR,���t���remove_methods(���R���R4���t���builder(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���get_builder���s���� c���������O���s4���|��i��|���}�|�d�j�o�g��g��f�S|�|�|����S(���s ��� N(���R����R,���(���R���R4���R+���R���R����(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyR7������s���� (���R9���R:���t���__doc__R���R����R7���(����(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyR�������s��� t���ToolInitializerc�����������B���s)���e��Z�d��Z�d����Z�d����Z�d����Z�RS(���s��� A class for delayed initialization of Tools modules. Instances of this class associate a list of Tool modules with a list of Builder method names that will be added by those Tool modules. As part of instantiating this object for a particular construction environment, we also add the appropriate ToolInitializerMethod objects for the various Builder methods that we want to use to delay Tool searches until necessary. c���������C���s����t��i�i�|���p �|�g�}�n�t��i�i�|���p �|�g�}�n�|�|��_�|�|��_�|�|��_�h��|��_�x7�|�D]/�}�t�|�|����}�|�|��i�|�<|�i�|���qk�Wd��S(���N( ���R���t���Utilt���is_ListR4���t���toolst���namest���methodsR����t ���AddMethod(���R���R4���R����R����R����t���method(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyR������s���� � c���������C���s+���x$�|��i��i����D]�}�|�i�|���q�Wd�S(���s���� Removes the methods that were added by the tool initialization so we no longer copy and re-bind them when the construction environment gets cloned. N(���R����t���valuest���RemoveMethod(���R���R4���R����(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyR�������s�����c���������C���sL���xE�|��i��D]:�}�t�i�i�|���}�|�i�|���o�|�i�|���d�Sq �Wd�S(���s��� Searches the list of associated Tool modules for one that exists, and applies that to the construction environment. N(���R����R���R���R ���(���R���R4���t���tt���tool(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyR�������s���� � (���R9���R:���R����R���R����R����(����(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyR�������s��� c���������C���sI���t��|��d�g�d�d�g���d����}�d����}�|��i�|���|��i�|���d��S(���Nt���installt���_InternalInstallt���_InternalInstallAsc���������_���s���|��i��|�|����S(���N(���R����(���R���R+���R���(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���Install��s����c���������_���s���|��i��|�|����S(���N(���R����(���R���R+���R���(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt ���InstallAs��s����(���R����R����(���R4���R����R����(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���Initializers��s ���� c���������C���s6���x/�|��D]'�}�t��|���}�|�i�|���o�|�Sq�Wd��S(���N(���R���R ���R,���(���R����R4���R����R����(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���FindTool��s����� c���������C���s���|�d���}�t��t�|�|������S(���Nc���������S���s���t��|����i�|���S(���N(���R���R ���(���R����R4���(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt ���ToolExists"��s����(���t���listt���filter(���R����R4���R����(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���FindAllTools!��s����c���������C���s"��g��}�t��|����d�j�o��d�d�d�d�d�g�}�d�d�d �d �d�d�d �d�g�}�d�d �d�d�d�d�g�}�d�d�d�d�g�}�d�d�d�d�d�d�d�g�}�d�d�d�g�}�d�d �g�}�n�t��|����d!�j�oF�d�d�g�}�d�d �g�}�d�d�g�}�d�g�}�d�d�g�}�d�g�}�n�t��|����d"�j�oX�d#�d�g�}�d$�d �d �g�}�d%�d�d�g�}�d&�d�g�}�d�d�d'�d�d�g�}�d(�g�}�nt��|����d)�j�od�d*�d�g�}�d+�d �d �g�}�d,�d�d�g�}�d&�d�g�}�d-�d.�d/�d�d�d'�d�d�d�g �}�d0�g�}�n�t��|����d1�j�oX�d2�d�g�}�d3�d �d �g�}�d4�d�d�g�}�d&�d�g�}�d�d�d'�d�d�g�}�d�g�}�n:t��|����d5�j�oX�d6�d�g�}�d7�d �d �g�}�d8�d�d�g�}�d&�d�g�}�d�d�d9�d�d�g�}�d�g�}�n��t��|����d:�j�oL�d;�d�g�}�d �d �g�}�d�d�g�}�d&�g�}�d�d�d�d�g�}�d�g�}�np�d�d�d�g�}�d �d�d �d�d �g�}�d�d�d �d�d�g�}�d�d�d�g�}�d�d�d<�d�d�d�d'�g�}�d�d�g�}�t�|�|���p�|�d=�} �| �o/�| �d�j�o"�d��} �d��}�d��}�d��} �d��}�n��| �dY�j�o �d��} �n�t�|�|���p�|�d=�} �t�|�|���p�|�d=�}�t�|�|���p�|�d=�}�t�|�|���p�|�d=�} �t�|�|���p�|�d=�}�t�|�d>�d?�d@�dA�dB�dC�dD�dE�dF�dG�dH�dI�dJ�dK�dL�dM�dN�dO�dP�dQ�dR�dS�dT�dU�dV�dW�dX�g�|���}�|�| �| �| �|�|�g�|�}�g��}�|�D]�}�|�o�|�|�qq~�S(Z���Nt���win32t���mslinkt���gnulinkt���ilinkt���linkloct���ilink32t���msvct���mingwt���gcct���intelct���iclt���icct���cct���bcc32s���g++s���c++t���masmt���nasmt���gast���386asmt���gfortrant���g77t���iflt���cvft���f95t���f90t���fortrant���mslibt���art���tlibt���msvst���midlt���os2t���irixt���sgilinkt���sgiccs���sgic++t���ast���f77t���sgiart���sunost���sunlinkt���sunccs���sunc++t���sunf95t���sunf90t���sunf77t���sunart���hpuxt���hplinkt���hpccs���hpc++t���aixt���aixlinkt���aixccs���aixc++t���aixf77t���darwint ���applelinkt���iforti����t���dmdt ���filesystemt���m4t���wixt���lext���yacct���rpcgent���swigt���jart���javact���javaht���rmict���dvipdft���dvipst���gst���text���latext���pdflatext���pdftext���tart���zipt���rpmt ���BitKeepert���CVSt���Perforcet���RCSt���SCCS(���R����R����R����(���R���R����R,���R����(���t���platformR4���t���other_plat_toolst���linkerst���c_compilerst ���cxx_compilerst ���assemblerst���fortran_compilerst���arst ���c_compilert���cxx_compilert���linkert ���assemblert���fortran_compilerR����t���other_toolsR����t���_[1]t���x(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt ���tool_list&��s����� (3���R����t���__revision__R���R���t ���SCons.BuilderR���t���SCons.Errorst ���SCons.Node.FSt ���SCons.Scannert���SCons.Scanner.Ct���SCons.Scanner.Dt���SCons.Scanner.LaTeXt���SCons.Scanner.ProgR���t���Scannert���Ct���CScannert���Dt���DScannert���LaTeXt���LaTeXScannert���PDFLaTeXScannert���ProgRI���t���BaseR���t ���CSuffixest ���DSuffixest���IDLSuffixest ���LaTeXSuffixesR@���t���add_scannert���objectR���RK���RV���R\���R`���Rg���Rm���Rx���R~���R����R����R����R����R����R����R����R����R ��(����(����(����s6���install/lib/scons-2.0.0.final.0/SCons/Tool/__init__.pyt���<module>���sl��� ���e ) % 03