��
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�l�Z�d�d�k	�l
�Z
�d�d�k�Z�d����Z�d����Z
�e�i�i�d�d	���Z�e�i�i�d
�e�d�e
�d�e�i�i�i�d
�e�i�i�i���Z�d�e�f�d�������YZ�d����Z�d����Z�d����Z�d�S(���s����SCons.Tool.javac

Tool-specific initialization for javac.

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.

s=���src/engine/SCons/Tool/javac.py 5023 2010/06/14 22:05:46 sconsi����N(���t���_my_normcase(���t���parse_java_filec���������C���s���t��i�i�|����i�t��i�d���S(���s1���Turn a string (path name) into a Java class name.t���.(���t���ost���patht���normpatht���replacet���sep(���R���(����(����s3���install/lib/scons-2.0.0.final.0/SCons/Tool/javac.pyt	���classname,���s����c������
������s���|�i��d�d���}�|�i��d�d���}�|��d�i�t�i�i�i���|��d�}�|�d�i����i����}�t�|�t�i�i�i	���o�|�i
�i����}�nC�t�|�t�i�i�i���o�|�i����}�n�t�i�i
�d�|�i�����g��}�t�|������x|�D]}	�|	�i����i����}	�t�|	�t�i�i�i	���o�|�i�|	���q��t�|	�t�i�i�i���o��t�i�i����}
�|	�i�����������f�d����}�x6�t�i���i������D]�\�}�}
�}�|�|
�|�|���q�W|	�i�|�|
���|�i�t�|
�i��������q��t�i�i
�d�|	�i�����q��W|�i��d�d	���}�g��}�x�|�D]�}�g��}�t�}�d�}�|�i����p��t�|�i����i����|���\�}�}�|�o��t�}�|�o$�|��d�i�|���}�|�t�i�}�n�|��d�}�d
�}�x`�|�D]T�}�|�i	�|�|���}�|�|�i �_!�|�|�i �_"�t#�|�|���|�i �_$�|�i�|���q�Wqn�|�o��|�i%�t&�|��� }�|�o$�|��d�i�|���i	�|�|���}�n�|��d�i	�|�|���}�|�|�i �_!�|�i
�|�i �_"�t#�|���|�i �_$�|�i�|���n�x�|�D]�}�|�i'�|�g���q�W|�i�|���qW|�|�f�S(���sa���Create and return lists of source java files
    and their corresponding target class files.
    t
���JAVASUFFIXs���.javat���JAVACLASSSUFFIXs���.classi����s)���Java source must be File or Dir, not '%s'c������������s����t��g��}�|�D]'�}�t�|���i������o�|�|�q�q�~���}���i�|���}�g��}�|�D]�}�|�|�i�|���q[�~�}	�x�|	�D]�}
�t�|��|
�<q��Wd��S(���N(���t���sortedR����t���endswitht���Dirt���Filet���True(���t���argt���dirpatht	���filenamest���_[1]t���nt
���java_filest���mydirt���_[2]t���ft
���java_pathst���jp(���t���jst���dirnode(����s3���install/lib/scons-2.0.0.final.0/SCons/Tool/javac.pyt���find_java_filesK���s����-*�t���JAVAVERSIONs���1.4t����N((���t���gett���must_be_samet���SConst���Nodet���FSR
���t���rentryt���disambiguatet
���isinstanceR���t���dirt���rdirt���Errorst	���UserErrort	���__class__R����t���appendt���Utilt���OrderedDictR���t���walkt���get_abspatht���extendt���listt���keysR���t���Nonet
���is_derivedR���t���rfilet���FalseR���t
���attributest
���java_classdirt���java_sourcedirR���t���java_classnamet���namet���lent���set_specific_source(���t���targett���sourcet���envt���java_suffixt���class_suffixt���classdirt���st	���sourcedirt���slistt���entryt���resultR���R���t���dirnamesR���t���versiont
���full_tlistR���t���tlistt���source_file_basedt���pkg_dirt���classest���dt���pt���ct���tt���base(����(���R���R���s3���install/lib/scons-2.0.0.final.0/SCons/Tool/javac.pyt���emit_java_classes0���s�����
���
!
�$�s	���$JAVACCOMs���$JAVACCOMSTRt���actiont���emittert���target_factoryt���source_factoryt���pathoptc�����������B���s#���e��Z�d��Z�d�d���Z�d����Z�RS(���s����
    Callable object for generating javac-style path options from
    a construction variable (e.g. -classpath, -sourcepath).
    c���������C���s���|�|��_��|�|��_�|�|��_�d��S(���N(���t���optt���vart���default(���t���selfR]���R^���R_���(����(����s3���install/lib/scons-2.0.0.final.0/SCons/Tool/javac.pyt���__init__����s����		c���������C���s����|�|��i��}�|�o!�t�i�i�|���o
�|�g�}�n�|��i�o�|�|�|��i�g�}�n�|�o�|��i�t�i�i�|���g�Sg��Sd��S(���N(	���R^���R"���R.���t���is_ListR_���R]���R���t���pathsept���join(���R`���R@���RA���RB���t
���for_signatureR���(����(����s3���install/lib/scons-2.0.0.final.0/SCons/Tool/javac.pyt���__call__����s����


N(���t���__name__t
���__module__t���__doc__R5���Ra���Rf���(����(����(����s3���install/lib/scons-2.0.0.final.0/SCons/Tool/javac.pyR\�������s���c���
������O���st��t��i�i�|���p
�|�g�}�n�t��i�i�|���p
�|�g�}�n�|�|�d�g�t�|���t�|���}�|��i�d���}�g��}�x��t�|�|���D]��\�}�}�t�|�t��i�i�i	���o3�t�|�t��i�i�i
���o
�|��i�}	�qP|��i�}	�no�t
�i�i�|���o
�|��i�}	�nO�t
�i�i�|���o
�|��i�}	�n/�|�t�|���|�j�o
�|��i�}	�n
�|��i�}	�|�i�|	�|�|�|�|�����q��W|�S(���sX���
    A pseudo-Builder wrapper around the separate JavaClass{File,Dir}
    Builders.
    i����s���$JAVASUFFIX(���R"���R.���Rb���R>���t���substt���zipR'���R#���R$���t���BaseR���t
���JavaClassFilet���JavaClassDirR���R���t���isfilet���isdirR2���(
���RB���R@���RA���t���argst���kwRC���RJ���RU���RF���t���b(����(����s3���install/lib/scons-2.0.0.final.0/SCons/Tool/javac.pyt���Java����s,����

%�




	 c���������C���s��t��i�i�|����}�t��i�i�|����}�t��i�i�|����}�|�i�d�t���|�i�|��i�d���t���t�|�_	�|��i
�t���d�|��d�<t��i�i
�d���|��d�<g��|��d�<g��|��d�<g��|��d�<t�|��d	�<d
�|��d�<d�|��d
�<d�|��d�<d�|��d�<d�|��d�<d�|��d�<d�|��d�<d�|��d�<d�S(���sD���Add Builders and construction variables for javac to an Environment.s���$JAVASUFFIXt���javact���JAVACR���t
���JAVACFLAGSt���JAVABOOTCLASSPATHt
���JAVACLASSPATHt���JAVASOURCEPATHt���_javapathopts7���${_javapathopt("-bootclasspath", "JAVABOOTCLASSPATH")} t���_JAVABOOTCLASSPATHs/���${_javapathopt("-classpath", "JAVACLASSPATH")} t���_JAVACLASSPATHsK���${_javapathopt("-sourcepath", "JAVASOURCEPATH", "_JAVASOURCEPATHDEFAULT")} t���_JAVASOURCEPATHs#���${TARGET.attributes.java_sourcedir}t���_JAVASOURCEPATHDEFAULTsv���$JAVAC $JAVACFLAGS $_JAVABOOTCLASSPATH $_JAVACLASSPATH -d ${TARGET.attributes.java_classdir} $_JAVASOURCEPATH $SOURCESt	���_JAVACCOMs���${TEMPFILE('$_JAVACCOM')}t���JAVACCOMs���.classR
���s���.javaR	���N(���R"���t���Toolt���CreateJavaFileBuildert���CreateJavaClassFileBuildert���CreateJavaClassDirBuildert���add_emitterR5���RW���Rj���RY���t	���AddMethodRt���R.���t���CLVarR\���(���RB���t	���java_filet
���java_classt���java_class_dir(����(����s3���install/lib/scons-2.0.0.final.0/SCons/Tool/javac.pyt���generate����s*����	












c���������C���s���d�S(���Ni���(����(���RB���(����(����s3���install/lib/scons-2.0.0.final.0/SCons/Tool/javac.pyt���exists����s����(���Ri���t���__revision__R���t���os.patht���SCons.ActionR"���t
���SCons.Buildert
���SCons.Node.FSR����t���SCons.Tool.JavaCommonR���t
���SCons.UtilR���RW���t���Actiont
���JavaActiont���BuilderR#���R$���t���Entryt���JavaBuildert���objectR\���Rt���R����R����(����(����(����s3���install/lib/scons-2.0.0.final.0/SCons/Tool/javac.pyt���<module>	���s&���		S	$