�`^c@s�dZdZddlZddlZddlmZddlmZeed�rcej dZ
ndZ
d efd
��YZdS(skdistutils.command.install_lib
Implements the Distutils 'install_lib' command
(install all Python modules).s$Id$i�N(tCommand(tDistutilsOptionErrortextseptpys.pytinstall_libc Bs�eZdZddd d!d#d$d%gZdd
dgZid
d
6Zd�Zd�Zd�Z d�Z
d�Zd�Zd�Z
d�Zd�Zd�ZRS(&s7install all Python modules (extensions and pure Python)sinstall-dir=tdsdirectory to install tos
build-dir=tbs'build directory (where to install from)tforcetfs-force installation (overwrite existing files)tcompiletcscompile .py to .pyc [default]s
no-compilesdon't compile .py filess optimize=tOslalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]s
skip-buildsskip the build stepscCs:d|_d|_d|_d|_d|_d|_dS(Ni(tNonetinstall_dirt build_dirRR toptimizet
skip_build(tself((s3/sys/lib/python2.7/distutils/command/install_lib.pytinitialize_options7s c Cs�|jddddddd�|jdkr:d
|_n|jdkrUd|_nt|jt�s�y.t|j�|_|jdkr�t�nWq�ttfk
r�td
�q�XndS(Ntinstallt build_libRRR
RR RRiiisoptimize must be 0, 1, or 2(Rs build_dir(sinstall_libsinstall_dir(sforcesforce(scompilescompile(soptimizesoptimize(s
skip_builds
skip_build(iii( tset_undefined_optionsR RRt
isinstancetinttAssertionErrort
ValueErrorR(R((s3/sys/lib/python2.7/distutils/command/install_lib.pytfinalize_options@s$
cCsE|j�|j�}|dk rA|jj�rA|j|�ndS(N(tbuildRRtdistributionthas_pure_modulestbyte_compile(Rtoutfiles((s3/sys/lib/python2.7/distutils/command/install_lib.pytrunZs
cCsN|jsJ|jj�r(|jd�n|jj�rJ|jd�qJndS(Ntbuild_pyt build_ext(RRRtrun_commandthas_ext_modules(R((s3/sys/lib/python2.7/distutils/command/install_lib.pyRjs
cCsLtjj|j�r0|j|j|j�}n|jd|j�dS|S(Ns3'%s' does not exist -- no Python modules to install(tostpathtisdirRt copy_treeR
twarn(RR((s3/sys/lib/python2.7/distutils/command/install_lib.pyRqs cCs�tjr|jd�dSddlm}|jd�j}|jrp||ddd|jd|d |j �n|j
dkr�||d|j
d|jd|d
|jd |j �ndS(Ns%byte-compiling is disabled, skipping.i�(RRRiRtprefixtdry_runtverbose(tsystdont_write_bytecodeR)tdistutils.utilRtget_finalized_commandtrootR RR+RR,(RtfilesRtinstall_root((s3/sys/lib/python2.7/distutils/command/install_lib.pyRzs
c
Cs�|s
gS|j|�}|j�}t||�}t|�ttj�}g}x.|D]&} |jtjj|| |��qZW|S(N( R0tget_outputstgetattrtlenR%tseptappendR&tjoin(
Rthas_anyt build_cmdt
cmd_optiont
output_dirtbuild_filesRt
prefix_lentoutputstfile((s3/sys/lib/python2.7/distutils/command/install_lib.pyt_mutate_outputs�s
$cCs�g}x�|D]z}tjjtjj|��d}|tkrGq
n|jrd|j|d�n|jdkr
|j|d�q
q
W|S(NiR
ito(R%R&tsplitexttnormcasetPYTHON_SOURCE_EXTENSIONR R8R(Rtpy_filenamestbytecode_filestpy_filetext((s3/sys/lib/python2.7/distutils/command/install_lib.pyt_bytecode_filenames�s
" cCsu|j|jj�dd|j�}|jr?|j|�}ng}|j|jj�dd|j�}|||S(s�Return the list of files that would be installed if this command
were actually run. Not affected by the "dry-run" flag or whether
modules have actually been built yet.
R!RR"(RBRRR
R RKR$(Rtpure_outputstbytecode_outputstext_outputs((s3/sys/lib/python2.7/distutils/command/install_lib.pyR4�s cCsrg}|jj�r:|jd�}|j|j��n|jj�rn|jd�}|j|j��n|S(s�Get the list of files that are input to this command, ie. the
files that get installed as they are named in the build tree.
The files in this list correspond one-to-one to the output
filenames returned by 'get_outputs()'.
R!R"(RRR0textendR4R$(RtinputsR!R"((s3/sys/lib/python2.7/distutils/command/install_lib.pyt
get_inputs�s(sinstall-dir=Rsdirectory to install to(s
build-dir=Rs'build directory (where to install from)(sforceRs-force installation (overwrite existing files)(scompileR
scompile .py to .pyc [default]N(s
no-compileNsdon't compile .py files(s optimize=Rslalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0](s
skip-buildNsskip the build steps(t__name__t
__module__tdescriptionRtuser_optionstboolean_optionstnegative_optRRR RRRRBRKR4RQ(((s3/sys/lib/python2.7/distutils/command/install_lib.pyRs*
(t__doc__t__revision__R%R-tdistutils.coreRtdistutils.errorsRthasattrRRFR(((s3/sys/lib/python2.7/distutils/command/install_lib.pyt<module>s
|