B
    ›³ëbö  ã               @   sR   d 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  m	Z	 dd„ Z
dd„ ZdS )aˆ  SCons.Tool.dmd

Tool-specific initialization for the Digital Mars D compiler.
(http://digitalmars.com/d)

Originally coded by Andy Friesen (andy@ikagames.com)
15 November 2003

Evolved by Russel Winder (russel@winder.org.uk)
2010-02-07 onwards

Compiler variables:

DC
  The name of the D compiler to use.
  Defaults to dmd or gdmd, whichever is found.

DPATH
  List of paths to search for import modules.

DVERSIONS
  List of version tags to enable when compiling.

DDEBUG
  List of debug tags to enable when compiling.

Linker related variables:

LIBS
  List of library files to link in.

DLINK
  Name of the linker to use.
  Defaults to dmd or gdmd, whichever is found.

DLINKFLAGS
  List of linker flags.

Lib tool variables:

DLIB
  Name of the lib tool to use.  Defaults to lib.

DLIBFLAGS
  List of flags to pass to the lib tool.

LIBS
  Same as for the linker. (libraries to pull into the .lib)

é    Nc             C   sP  t j | ¡\}}| dt jj¡ | dt jj¡ | dt jj¡ | dt jj	¡ |  
dddg¡pbd| d< d| d< d| d	< d
| d< d| d< d| d< d| d< d| d< dg| d< g | d< g | d< g | d< | d rÚt | | d ¡ d| d< d| d< d| d< d| d< d | d!< d| d"< d#| d$< d| d%< d| d&< d| d'< t j d¡| d(< d)| d*< d| d+< t j d,¡| d-< d.| d/< | d0 d1krtdnd2| d3< | d0 d1krŽd4nd| d5< d6| d7< d8| d9< d| d:< d;| d<< | d0 d1krÈd=nd>| d?< d@ | d0 d1krædAnd¡| dB< d#| dC< d| dD< | d0 dEkrdFndG| dH< d| dI< dJ| dK< dL| dM< t jjdNtjdO| dP dQ< d S )RNz.dÚdmdÚldmd2ÚgdmdZDCzI$DC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -c -of$TARGET $SOURCESZDCOMzI${_concat(DINCPREFIX, DPATH, DINCSUFFIX, __env__, RDirs, TARGET, SOURCE)}Z
_DINCFLAGSz6${_concat(DVERPREFIX, DVERSIONS, DVERSUFFIX, __env__)}Z
_DVERFLAGSz7${_concat(DDEBUGPREFIX, DDEBUG, DDEBUGSUFFIX, __env__)}Z_DDEBUGFLAGSz5${_concat(DFLAGPREFIX, DFLAGS, DFLAGSUFFIX, __env__)}Z_DFLAGSz$DCZSHDCzO$DC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -c -fPIC -of$TARGET $SOURCESZSHDCOMz#/ZDPATHZDFLAGSZ	DVERSIONSZDDEBUGz-IZ
DINCPREFIXÚ Z
DINCSUFFIXz	-version=Z
DVERPREFIXZ
DVERSUFFIXz-debug=ZDDEBUGPREFIXZDDEBUGSUFFIXú-ZDFLAGPREFIXZDFLAGSUFFIXZDFILESUFFIXZDLINKZ
DLINKFLAGSzK$DLINK -of$TARGET $DLINKFLAGS $__DRPATH $SOURCES $_DLIBDIRFLAGS $_DLIBFLAGSZDLINKCOMZSHDLINKz-$DLINKFLAGS -shared -defaultlib=libphobos2.soZSHDLINKFLAGSzc$DLINK -of$TARGET $SHDLINKFLAGS $__SHDLIBVERSIONFLAGS $__DRPATH $SOURCES $_DLIBDIRFLAGS $_DLIBFLAGSZ
SHDLINKCOMZPLATFORMZwin32z-L-lZDLIBLINKPREFIXz.libZDLIBLINKSUFFIXzW${_stripixes(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, LIBPREFIXES, LIBSUFFIXES,  __env__)}Z
_DLIBFLAGSz-L-LZDLIBDIRPREFIXZDLIBDIRSUFFIXzQ${_concat(DLIBDIRPREFIX, LIBPATH, DLIBDIRSUFFIX, __env__, RDirs, TARGET, SOURCE)}Z_DLIBDIRFLAGSÚlibzar crZDLIBz1$DLIB $_DLIBFLAGS {0}$TARGET $SOURCES $_DLIBFLAGSz-c ZDLIBCOMZDLIBFLAGPREFIXZDLIBFLAGSUFFIXÚdarwinz	-L-rpath,z	-L-rpath=ZDRPATHPREFIXZDRPATHSUFFIXz6${_concat(DRPATHPREFIX, RPATH, DRPATHSUFFIX, __env__)}Z_DRPATHz+$SHDLIBVERSIONFLAGS -L-soname=$_SHLIBSONAMEZ_SHDLIBVERSIONFLAGSzw$DC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -of$TARGET $DLINKFLAGS $__DRPATH $SOURCES $_DLIBDIRFLAGS $_DLIBFLAGS)ÚactionZemitterZBUILDERSZProgramAllAtOnce)ÚSConsÚToolZcreateObjBuildersZ
add_actionZDefaultsZDActionZ	ShDActionZadd_emitterZStaticObjectEmitterZSharedObjectEmitterÚDetectÚDCommonZaddDPATHToEnvZUtilZCLVarÚformatZBuilderZallAtOnceEmitter)ÚenvZ
static_objZ
shared_obj© r   ú-lib/python3.7/site-packages/SCons/Tool/dmd.pyÚgenerateU   sh    
r   c             C   s   |   dddg¡S )Nr   r   r   )r   )r   r   r   r   Úexists¢   s    r   )Ú__doc__ZSCons.Actionr
   ZSCons.BuilderZSCons.DefaultsZSCons.Scanner.DZ
SCons.ToolZSCons.Tool.DCommonr   r   r   r   r   r   r   r   Ú<module>I   s   M