�� r�$Lc�����������@ ��s���d��Z��d�d�k�l�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 �e�i�d�j�Z�e�o5�e�i �d�d�j�p!�d�e�i �j�o�e�i �d�d�j�Z�e�i�d �j�Z�e�i�d �j�Z�e�o�d�d�k�Z�n/�e�o�d�d�k�Z�n�e�o�d�d�k�Z�n�d�d�k�Z�d�d�k�Z�d�e�i�i�f�d�������YZ�d �e�f�d�������YZ�d�e�f�d�������YZ�d�e�f�d�������YZ�d����Z�d����Z�d����Z�d����Z�d����Z �d�d�d���Z"�d����Z#�d����Z$�d�d�d�d�d���Z%�d����Z&�d�S(���s��SCons.Tool.icl Tool-specific initialization for the Intel C/C++ compiler. Supports Linux and Windows compilers, v7 and up. There normally shouldn't be any need to import this module directly. It will usually be imported through the generic SCons.Tool.Tool() selection method. i����(���t���divisions>���src/engine/SCons/Tool/intelc.py 5023 2010/06/14 22:05:46 sconsNt���win32t���PROCESSOR_ARCHITECTUREt���AMD64t���PROCESSOR_ARCHITEW6432t���linux2t���darwint���IntelCErrorc�����������B ��s���e��Z�RS(����(���t���__name__t ���__module__(����(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyR���8���s���t���MissingRegistryErrorc�����������B ��s���e��Z�RS(����(���R���R ���(����(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyR ���:���s���t���MissingDirErrorc�����������B ��s���e��Z�RS(����(���R���R ���(����(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyR���<���s���t���NoRegistryModuleErrorc�����������B ��s���e��Z�RS(����(���R���R ���(����(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyR���>���s���c���������C ��s1���h��}�x�|��D]�}�d�|�|�<q �Wt��|�i������S(���s����Return a sequence containing only one copy of each unique element from input sequence s. Does not preserve order. Input sequence must be hashable (i.e. must be usable as a dictionary key).i���(���t���listt���keys(���t���st���ut���x(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyt���uniquifyA���s �����c���������C ��s����t��i�d�|����}�|�o<�|�i����\�}�}�}�t�|���d�t�|���t�|���d�St�|����}�t�o�|�S|�d�j��o �|�d�S|�Sd�S(���s#��Normalize a Linux compiler version number. Intel changed from "80" to "9.0" in 2005, so we assume if the number is greater than 60 it's an old-style number and otherwise new-style. Always returns an old-style float like 80 or 90 for compatibility with Windows. Shades of Y2K!s���([0-9]+)\.([0-9]+)\.([0-9]+)g������$@g�����@�@i<���N(���t���ret���matcht���groupst���floatt ���is_windows(���t���vstrt���mt���vmajt���vmint���buildt���f(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyt���linux_ver_normalizeJ���s����' � c���������C ��s����|��p�d�S|��i����}��t�o-�h�d�d�6d�d�6d�d�6d�d�6d�d�6}�n�t�o-�h�d�d�6d�d�6d�d�6d�d�6d�d�6}�n�t�o&�h�d�d�6d�d�6d�d�6d�d�6}�n�y�|�|��}��Wn;�t�j �o/�t�i�i�d�|��t �|�i ������f�����n�X|��S( ���sW���Check for valid ABI (application binary interface) name, and map into canonical onet���ia32t���x86t���ia64t���em64tt���amd64t���x86_64s3���Intel compiler: Invalid ABI %s, valid values are %sN(���t���Nonet���lowerR���t���is_linuxt���is_mact���KeyErrort���SConst���Errorst ���UserErrorR ���R���(���t���abit ���valid_abis(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyt ���check_abi]���s4���� !c���������C ��s���t��t�|���t�|������S(���sO���Compare strings as floats, but Intel changed Linux naming convention at 9.0(���t���cmpR���(���t���at���b(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyt���vercmp|���s����c���������C ��sk���t��o�|��|�j�o�|��Sd�SnG�d�}�x9�|�D]1�}�t�i�t�|���t�|������|�j��o�|�Sq.�Wd�Sd�S(���s`���See if we can match v (string) in vlist (list of strings) Linux has to match in a fuzzy way.g����MbP?N(���R���R%���t���matht���fabsR���(���t���vt���vlistt���fuzzt���vi(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyt���get_version_from_list����s���� ��& c������ ���C ��s����t��o�d�|�d�|�i����}�n�d�|�d�|�i����}�y�t�i�i�t�i�i�|���}�Wn2�t�i�i�j �o �t�d�|�|�|�f�����n�Xy!�t�i�i�|�|����d�}�|�SWn/�t�i�i�j �o�t�d�|�|��f�����n�Xd�S(���sN��� Return a value from the Intel compiler registry tree. (Windows only) s)���Software\Wow6432Node\Intel\Compilers\C++\s���\s���Software\Intel\Compilers\C++\sI���%s was not found in the registry, for Intel compiler version %s, abi='%s'i����s$���%s\%s was not found in the registry.N( ���t���is_win64t���upperR*���t���Utilt���RegOpenKeyExt���HKEY_LOCAL_MACHINEt���RegErrorR ���t���RegQueryValueEx(���t ���valuenamet���versionR-���t���Kt���kR6���(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyt���get_intel_registry_value����s����c����������C ��s���g��}��t��olt�o �d�}�n�d�}�y�t�i�i�t�i�i�|���}�Wn�t�j �o�g��SXd�}�g��}��y��x��|�d�j��o��t�i�i�|�|���}�t�}�xZ�d�D]R�}�y�t �d �|�|���}�Wn�t �j �o �q��n�Xt�i�i �|���o �t�}�q��q��W|�o�|��i�|���nG�y�t �d �|�d���}�Wn�t �j �o�} �d �|�GHn�Xd�t�|���GH|�d�}�ql�WWqvt�j �o�qvXn��t�o��xJ�t�i�d ���D]9�}�t�i�d�|���} �| �o�|��i�| �i�d�����q�q�Wx��t�i�d���D]9�}�t�i�d�|���} �| �o�|��i�| �i�d�����q�q�WnY�t�oQ�xN�t�i�d���D]9�}�t�i�d�|���} �| �o�|��i�| �i�d�����q5q5Wn�t�t�|������S(���sn���Returns a sorted list of strings, like "70" or "80" or "9.0" with most recent compiler version first. s(���Software\WoW6432Node\Intel\Compilers\C++s���Software\Intel\Compilers\C++i����id���t���IA32t���IA32et���IA64t���EM64Tt ���ProductDirs����scons: *** Ignoring the registry key for the Intel compiler version %s. scons: *** It seems that the compiler was uninstalled and that the registry scons: *** was not cleaned up properly. s���scons: *** Ignoring i���s���/opt/intel_cc_*s���cc_(.*)$s���/opt/intel/cc*/*s ���([0-9.]+)$(���RG���RH���RI���RJ���(���R���R;���R*���R=���R>���R?���t���WindowsErrort ���RegEnumKeyt���FalseRF���R ���t���ost���patht���existst���Truet���appendt���strt���EnvironmentErrorR'���t���globR���t���searcht���groupR(���t���sortedR���(���t���versionst���keynameRE���t���it���subkeyt���okt���try_abit���dt���valuet���eR���(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyt���get_all_compiler_versions����sl���� � �� ��"�"c���������C ��sC��t��o��t�i�i�p�t�d�����n�t�d�|��|���}�t�i�i�t�i�i �|�d�d�����o=�t�i�i�t�i�i �|�d�|�d�����o�t �d�|�����q?n��t�p�t�o��d �}�|�d�j�o �d�}�n�d�}�xF�|�D]>�}�t�i�i�t�i�i �|�|��d �d�����o�|�|��}�Pq��q��W|�p�t �d�|��|�|�f�����q?n�|�S(���s���� Return the main path to the top-level dir of the Intel compiler, using the given version. The compiler will be in <top>/bin/icl.exe (icc on linux), the include dir is <top>/include, etc. s$���No Windows registry module was foundRK���t���Bins���icl.exes���Can't find Intel compiler in %ss���/opt/intel/cc/%ss���/opt/intel_cc_%sR$���s���/opt/intel/cce/%st���bint���iccs5���Can't find version %s Intel compiler in %s (abi='%s')(���s���/opt/intel/cc/%ss���/opt/intel_cc_%s(���s���/opt/intel/cce/%sN(���R���R*���R=���t���can_read_regR���RF���RO���RP���RQ���t���joinR���R(���R'���R%���(���RC���R-���t���topt���dirsR`���(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyt���get_intel_compiler_top����s(���� &) �) !i����c���������C ��sh��t��p�t�p�t�p�d�St�o�t�i�i�i�|����n=�t�o�t�i�i�i�|����n�t��o�t�i�i�i�|����n�t����}�|�p�|�o�|�d�}�q��nH�t �|�|���}�|�p+�t�i �i�d�|�d�d�i�|�������n�|�}�t �|���}�|�d�j�oZ�t��p�t�o1�t�i����d�}�|�d�j�o �d�}�qSd�}�qWt�o �d �}�qWd�}�n�|�oG�|�o?�y�t�|�|���}�Wq�t�i�i�t�f�j �o �d�}�q�Xn�|�p��d �t�i�i�f�d�������Y}�t��p�t�o�|��i�d���p�t�oN�|��i�d ���o=�t�i�i�|���t�i�i�|�d�t�|���t�|���f���qyt�i�i�|���t�i�i�|�d�t�|���t�|���f���n�|�o|�o]�d�t�|���t�|���|�|�f�GHt�o�t�i�d�|���n�t��o�t�i�d�|���q�n�|�|��d�<t�o`�h�d�d�6d�d�6d�d�6d�d�6} �x;�| �i����D])�} �|��i �| �t�i!�i�|�| �| �����q$Wn�t��o`�h�d�d�6d�d�6d�d�6d�d�6} �x;�| �i����D])�} �|��i �| �t�i!�i�|�| �| �����q�Wn�t�o��d8�d9�d:�f�} �|�d�j�o �d �}�n�x��| �D]��} �y3�t"�| �d!�|�|���}�|�i#�d"�|�t�i$���}�Wn:�t�j �o.�|��i �| �d�t�i!�i�|�| �d#�����q�X|��i �| �d�|�i%�t�i&�����q�Wq�n�t�o"�d �|��d$�<d �|��d%�<d&�|��d'�<n)�d�|��d$�<d(�|��d%�<d)�|��d*�<d+�|��d,�<|�o�t�|���|��d-�<n�t�o_t�i'�i(�d.�d ���}�d/�} �y8�t�i�i)�t�i�i*�| ���}�t�i�i+�|�d0���d�}�Wn%�t,�t�i�i�f�j �o �d �}�n�Xd1�}�d�}�xO�|�|�g�D]A�}�|�o4�|�i-�d2���d3�j�p�t�i!�i.�|���o�|�}�Pq�q�W|�pm�|�}�t�i!�i.�|���pP�d4�t�i�i�f�d5�������Y}�t�i�i�|���t�i�i�|�d6�|�|�|�f���qRn�|�|��d7�d.�<n�d�S(;���s���Add Builders and construction variables for Intel C/C++ compiler to an Environment. args: version: (string) compiler version to use, like "80" abi: (string) 'win32' or whatever Itanium version wants topdir: (string) compiler top dir, like "c:\Program Files\Intel\Compiler70" If topdir is used, version and abi are ignored. verbose: (int) if >0, prints compiler version used. Ni����s#���Invalid Intel compiler version %s: s���installed versions are %ss���, i���R$���R���R"���t���ICLTopDirWarningc�����������B ��s���e��Z�RS(����(���R���R ���(����(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyRl���R��s���Rf���t���icls8���Failed to find Intel compiler for version='%s', abi='%s's<���Can't find Intel compiler top dir for version='%s', abi='%s's8���Intel C compiler: using version %s (%g), abi %s, in '%s's���%s/bin/icc --versiont���INTEL_C_COMPILER_TOPt���includet���INCLUDEt���libt���LIBRe���t���PATHt���LD_LIBRARY_PATHt ���IncludeDirt���Includet���LibDirt���Libt���BinDirRd���t����i���s���$(ICInstallDir)i���t���CCt���CXXt���xilinkt���LINKt���icpct���xiart���ARt���xildt���LDt���INTEL_C_COMPILER_VERSIONt���INTEL_LICENSE_FILEs���SOFTWARE\Intel\Licensest���w_cpps,���C:\Program Files\Common Files\Intel\Licensest���@i����t���ICLLicenseDirWarningc�����������B ��s���e��Z�RS(����(���R���R ���(����(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyR�������s���s����Intel license dir was not found. Tried using the INTEL_LICENSE_FILE environment variable (%s), the registry (%s) and the default path (%s). Using the default path as a last resort.t���ENV(���Rp���Ru���s���Include(���Rr���Rw���s���Lib(���s���PATHRy���s���Bin(/���R(���R'���R���R*���t���Toolt���msvct���generatet���gccRc���R:���R+���R,���Rh���R/���R%���RO���t���unameR;���Rk���R=���R@���R���t���Warningst���Warningt���Detectt���enableWarningClasst���warnRT���t���reprR���t���systemR���t���PrependENVPathRP���RF���t���replacet���sept���splitt���pathsept���environt���getR>���R?���RA���t���AttributeErrort���findRQ���(���t���envRC���R-���t���topdirt���verboseR7���R6���t���uname_mRl���t���pathst���pRP���t ���envlicdirRD���RE���t ���reglicdirt ���defaultlicdirt���licdirt���ldR����(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyR������s����� �+ �+ �,, �0 c���������C ��s����t��p�t�p�t�p�d�Sy �t����}�Wn%�t�i�i�t�f�j �o �d��}�n�X|�d��j �o�t �|���d�j�}�|�pC�t�o�|��i �d���St�o�|��i �d���St��o�|��i �d���Sn�|�S(���Ni����Rm���Rf���(���R(���R'���R���Rc���R*���R=���R@���R���R%���t���lenR����(���R����RZ���t���detected(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyRQ������s���� ('���t���__doc__t ���__future__R����t���__revision__R4���t���syst���os.pathRO���RV���t���stringR���t���platformR���R����R;���R'���R(���t���SCons.Tool.msvcR*���t���SCons.Tool.gcct ���SCons.Utilt���SCons.WarningsR+���t ���InternalErrorR���R ���R���R���R���R���R/���R3���R:���R%���RF���Rc���Rk���R����RQ���(����(����(����s4���install/lib/scons-2.0.0.final.0/SCons/Tool/intelc.pyt���<module> ���s>���H M �