Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
cura / opt / cura / lib / python3 / dist-packages / __pycache__ / sipconfig.cpython-34.pyc
Size: Mime:
î
Ñ4PWÓxã@sÀddlZddlZddlZddlZddlZidd6dd6dd6dd	6dd
6dd6d
d6d
d6dd6dd6dd6dd6dd6dd6dd6dd6dd 6dd!6ZiZdd"6d#d$6d%d&6d'd(6dd)6dd*6d+d,6dd-6dd.6dd/6dd06dd16dd26d3d46dd56dd66d7d86dd96dd:6d;d<6d=d>6d?d@6dAdB6dCdD6dEdF6dGdH6d'dI6ddJ6ddK6d+dL6ddM6ddN6ddO6ddP6ddQ6ddR6d3dS6ddT6ddU6d7dV6ddW6ddX6d;dY6d=dZ6d?d[6dd\6d]d^6dd_6dd`6dda6dbdc6dbdd6dde6ddf6ddg6ddh6ddi6ddj6dkdl6ddm6ddn6dkdo6dpdq6ddr6dds6ddt6ddu6ddv6dwdx6dwdy6ddz6dd{6dd|6dd}6dd~6dd€6dd6dd‚6dƒd„6dd…6dd†6d‡dˆ6dGd‰6dGdŠ6dd‹6dŒd6dŽd6dd6d‘d’6d“d”6ZgaGd•d–„d–eƒZ	Gd—d˜„d˜ƒZ
Gd™dš„dšƒZGd›dœ„dœƒZGddž„džeƒZ
GdŸd „d eƒZGd¡d¢„d¢eƒZGd£d¤„d¤eƒZGd¥d¦„d¦eƒZd§d¨„Zd©dªd«„Zd¬d­„Zddd®d¯„Zdd°d±„Zdd²d³„Zd´dµ„Zd¶d·„Zd¸d¹„Zddºd»d¼„Zddd½d¾„Zd¿dÀ„ZdddÁd„ZdS)ÃéNÚÚarchz/usr/binÚdefault_bin_dirz/usr/lib/python3/dist-packagesÚdefault_mod_dirz//home/ultimaker/cura-build/build/inst/share/sipÚdefault_sip_dirÚdeployment_targetz	linux-g++Úplatformz/usr/include/python3.4mÚpy_conf_inc_dirÚ
py_inc_dirz/usr/lib/python3.4/configÚ
py_lib_diriÚ
py_versionÚqt_frameworkz-/home/ultimaker/cura-build/build/inst/bin/sipÚsip_binzì--bindir=/home/ultimaker/cura-build/build/inst/bin --destdir=/home/ultimaker/cura-build/build/inst/lib/python3/dist-packages --incdir=/home/ultimaker/cura-build/build/inst/include --sipdir=/home/ultimaker/cura-build/build/inst/share/sipZsip_config_argsz-/home/ultimaker/cura-build/build/inst/includeÚsip_inc_dirz?/home/ultimaker/cura-build/build/inst/lib/python3/dist-packagesÚsip_mod_diriÚsip_versionz4.17Úsip_version_strÚ	universalÚ	AIX_SHLIBzar cqsÚARZgccÚCCz-pipeÚCFLAGSZ
CFLAGS_APPÚCFLAGS_CONSOLEz-gÚCFLAGS_DEBUGÚCFLAGS_EXCEPTIONS_OFFÚCFLAGS_EXCEPTIONS_ONÚ	CFLAGS_MTÚ
CFLAGS_MT_DBGÚ
CFLAGS_MT_DLLÚCFLAGS_MT_DLLDBGz-O2ÚCFLAGS_RELEASEÚCFLAGS_RTTI_OFFÚCFLAGS_RTTI_ONz-fPICÚCFLAGS_SHLIBÚCFLAGS_STL_OFFÚ
CFLAGS_STL_ONz-D_REENTRANTÚ
CFLAGS_THREADz-wÚCFLAGS_WARN_OFFz-Wall -WÚCFLAGS_WARN_ONztest -dÚCHK_DIR_EXISTSz'qt warn_on release incremental link_prlÚCONFIGzcp -fÚCOPYzg++ÚCXXÚCXXFLAGSÚCXXFLAGS_APPÚCXXFLAGS_CONSOLEÚCXXFLAGS_DEBUGÚCXXFLAGS_EXCEPTIONS_OFFÚCXXFLAGS_EXCEPTIONS_ONÚCXXFLAGS_MTÚCXXFLAGS_MT_DBGÚCXXFLAGS_MT_DLLÚCXXFLAGS_MT_DLLDBGÚCXXFLAGS_RELEASEÚCXXFLAGS_RTTI_OFFÚCXXFLAGS_RTTI_ONÚCXXFLAGS_SHLIBÚCXXFLAGS_STL_OFFÚCXXFLAGS_STL_ONÚCXXFLAGS_THREADÚCXXFLAGS_WARN_OFFÚCXXFLAGS_WARN_ONÚDEFINESzrm -fÚDEL_FILEÚEXTENSION_PLUGINÚEXTENSION_SHLIBÚINCDIRz/usr/X11R6/includeÚ
INCDIR_OPENGLÚ
INCDIR_X11ÚLFLAGSÚLFLAGS_CONSOLEÚLFLAGS_CONSOLE_DLLÚLFLAGS_DEBUGÚ
LFLAGS_DLLÚ
LFLAGS_OPENGLz-sharedÚ
LFLAGS_PLUGINÚLFLAGS_RELEASEÚLFLAGS_RPATHÚLFLAGS_SHLIBz-Wl,-soname,Z
LFLAGS_SONAMEÚ
LFLAGS_THREADÚLFLAGS_WINDOWSÚLFLAGS_WINDOWS_DLLÚLIBÚLIBDIRz/usr/X11R6/libÚ
LIBDIR_OPENGLÚ
LIBDIR_X11ÚLIBSÚLIBS_CONSOLEÚ	LIBS_COREÚLIBS_GUIÚLIBS_NETWORKz
-lGLU -lGLÚLIBS_OPENGLÚLIBS_RTÚ	LIBS_RTMTz	-lpthreadÚLIBS_THREADÚLIBS_WEBKITÚLIBS_WINDOWSz-lXext -lX11 -lmÚLIBS_X11ÚLINKÚ
LINK_SHLIBZLINK_SHLIB_CMDÚUNIXÚMAKEFILE_GENERATORzmkdir -pÚMKDIRÚRANLIBz-Wl,-rpath,ÚRPATHÚstripÚSTRIPc@sIeZdZdZddd„Zdd„Zdd„Zd	d
„ZdS)Ú
Configurationz8The class that represents SIP configuration values.
    NcCsd|_xU|jjD]G}|tkr.qntj|j}t|dƒr|j|_PqqW|rp|}ng}|j	t
ƒ|adS)z˜Initialise an instance of the class.

        sub_cfg is the list of sub-class configurations.  It should be None
        when called normally.
        NÚ_default_macros)Ú_macrosÚ	__class__Ú__mro__ÚobjectÚsysÚmodulesÚ
__module__ÚhasattrrnÚappendÚ_pkg_configÚ
_config_stack)ÚselfZsub_cfgÚclsÚmodÚcfg©r~úL/home/ultimaker/cura-build/build/inst/lib/python3/dist-packages/sipconfig.pyÚ__init__•s		
zConfiguration.__init__cCsFx/tD]'}y||SWqtk
r-YqXqWtd|ƒ‚dS)z¦Allow configuration values and user options to be handled as
        instance variables.

        name is the name of the configuration value or user option.
        z6"%s" is not a valid configuration value or user optionN)ryÚKeyErrorÚAttributeError)rzÚnamer}r~r~rÚ__getattr__³s

	zConfiguration.__getattr__cCs|jS)zAReturn the dictionary of platform specific build macros.
        )ro)rzr~r~rÚbuild_macrosÁszConfiguration.build_macroscCs
||_dS)zSet the dictionary of build macros to be use when generating
        Makefiles.

        macros is the dictionary of platform specific build macros.
        N)ro)rzÚmacrosr~r~rÚset_build_macrosÆszConfiguration.set_build_macros)Ú__name__ruÚ__qualname__Ú__doc__r€r„r…r‡r~r~r~rrm’s
rmc@sUeZdZdZddd„Zdd„Zdd„Zd	d
„Zdd„ZdS)
Ú_UniqueListz=A limited list that ensures all its elements are unique.
    NcCs%|dkrg|_n	||_dS)zRInitialise the instance.

        value is the initial value of the list.
        N)Ú_list)rzÚvaluer~r~rr€Òsz_UniqueList.__init__cCs&||jkr"|jj|ƒndS)zgAppend a value to the list if it isn't already present.

        value is the value to append.
        N)rŒrw)rzrr~r~rrwÜsz_UniqueList.appendcCs|jj|ƒdS)zhA normal list extend ignoring the uniqueness.

        value is the list of elements to append.
        N)rŒÚextend)rzrr~r~rÚlextendäsz_UniqueList.lextendcCs"x|D]}|j|ƒqWdS)zˆAppend each element of a value to a list if it isn't already
        present.

        value is the list of elements to append.
        N)rw)rzrÚelr~r~rrŽës
z_UniqueList.extendcCs|jS)z'Return the list as a raw list.
        )rŒ)rzr~r~rÚas_listôsz_UniqueList.as_list)	rˆrur‰rŠr€rwrrŽr‘r~r~r~rr‹Ïs
	r‹c@s^eZdZdZdd„Zdd„Zdd„Zdd	„Zd
d„Zdd
„Z	dS)Ú_Macroz/A macro that can be manipulated as a list.
    cCs||_|j|ƒdS)zzInitialise the instance.

        name is the name of the macro.
        value is the initial value of the macro.
        N)Ú_nameÚset)rzrƒrr~r~rr€ýs	z_Macro.__init__cCsZg|_t|tƒr'|jƒ}nt|ƒtkrI|j|ƒn
|j|ƒdS)zšExplicitly set the value of the macro.

        value is the new value.  It may be a string, a list of strings or a
        _UniqueList instance.
        N)Ú_macroÚ
isinstancer‹r‘ÚtypeÚlistrŽrw)rzrr~r~rr”s	z
_Macro.setcCs|r|jj|ƒndS)zLAppend a value to the macro.

        value is the value to append.
        N)r•rw)rzrr~r~rrwsz
_Macro.appendcCs"x|D]}|j|ƒqWdS)zgAppend each element of a value to the macro.

        value is the list of elements to append.
        N)rw)rzrrr~r~rrŽs
z
_Macro.extendc	Cs#y|jj|ƒWnYnXdS)zŠRemove a value from the macro.  It doesn't matter if the value 
        wasn't present. 
 
        value is the value to remove. 
        N)r•Úremove)rzrr~r~rr™&sz
_Macro.removecCs|jS)z$Return the macro as a list.
        )r•)rzr~r~rr‘1sz_Macro.as_listN)
rˆrur‰rŠr€r”rwrŽr™r‘r~r~r~rr’ús	r’c@sHeZdZdZddddddddddddddd„
Zdd„Zdd	d
„Zdd„Zd
d„Zdd„Z	ddd„Z
dd„Zdd„Zddd„Z
ddd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zdd.d/„ZdS)0ÚMakefilez9The base class for the different types of Makefiles.
    réNcCs3|rdt|dƒs"tdƒn|jdkrUt|ƒtkrUddg}qUn|j|_n	||_||_||_||_	||_
||_||_||_
|
|_||_d|_|	råtjj|	ƒ|_ntjƒ|_|j|_|dkr|j|_n	||_|
dkr?|j|_n	|
|_|dkrc|j|_n	||_d|_|jƒ}x¸t|jƒƒD]¤}yt ||ƒ}Wnt!k
rË||}YnX|dksî|dd…d krý|j"ƒ}n|dd…dkr"|j"ƒ}nt#||ƒ|j$|<q”W|j%ddƒ|_&g|_'g|_(g|_)g|_*g|_+g|_,g|_-g|_.t/j0dkrÃd}d}d}d}nd}d}d}d}|j%d|ƒ|_1|j%d|ƒ|_2|j%d|ƒ|_3|j%d|ƒ|_4dS)!aInitialise an instance of the target.  All the macros are left
        unchanged allowing scripts to manipulate them at will.

        configuration is the current configuration.
        console is set if the target is a console (rather than windows) target.
        qt is set if the target uses Qt.  For Qt v4 a list of Qt libraries may
        be specified and a simple non-zero value implies QtCore and QtGui.
        opengl is set if the target uses OpenGL.
        python is set if the target #includes Python.h.
        debug is set to generated a debugging version of the target.
        threaded is set if the target requires thread support.  It is
        automatically set if the target uses Qt and Qt has thread support
        enabled.
        warnings is set if compiler warning messages are required.
        debug is set if debugging symbols should be generated.
        dir is the directory for build files and Makefiles.
        makefile is the name of the Makefile.
        installs is a list of extra install targets.  Each element is a two
        part list, the first of which is the source and the second is the
        destination.  If the source is another list then it is a set of source
        files and the destination is a directory.
        universal is the name of the SDK if the target is a MacOS/X universal
        binary.  If it is None then the value is taken from the configuration.
        arch is the space separated MacOS/X architectures to build.  If it is
        None then it is taken from the configuration.
        deployment_target MacOS/X deployment target.  If it is None then it is
        taken from the configuration.
        Ú
qt_versionz8The target uses Qt but pyqtconfig has not been imported.iÚQtCoreÚQtGuirNrr@r*érDrUérXrgrfÚwin32ÚcopyZdelÚmkdirzif not existzcp -fzrm -fzmkdir -pztest -dr+rArhr))zDEFINESr*)zINCDIRzLIBDIR)5rvÚerrorrœr—r˜Zqt_threadedÚ	_threadedÚconfigÚconsoleÚ_qtÚ_openglÚ_pythonÚ	_warningsÚ_debugÚ	_makefileÚ	_installsÚ_infixÚosÚpathÚabspathÚdirÚgetcwdÚ_src_dirrÚ
_universalrÚ_archrÚ_deployment_targetÚ
_finalisedr…ÚkeysÚgetattrr‚Úsplitr’Ú__dict__Úoptional_stringÚ	generatorÚextra_cflagsÚextra_cxxflagsÚ
extra_definesÚextra_include_dirsÚextra_lflagsÚextra_lib_dirsÚ
extra_libsÚextra_source_dirsrsrr¢Úrmr£Úchkdir)rzÚ
configurationr§ÚqtÚopenglÚpythonÚthreadedÚwarningsÚdebugr³ÚmakefileÚinstallsrrrr†ÚmÚvalZdef_copyZdef_rmZ	def_mkdirZdef_chk_dir_existsr~r~rr€:s‚ 
															
"									zMakefile.__init__c5Cs¥|jrZ|jjjƒ}d|k}d|k}d|k}d|k}|jj}nd}d}d}d}d}tƒ}|j|jƒ|j|jdƒƒtƒ}|j|j	ƒ|j|jdƒƒtƒ}	|	j|j
ƒ|	j|jd	ƒƒtd
gƒ}
|
j|jƒ|
j|jdƒƒtƒ}|j|jƒ|j|jdƒƒtƒ}|j|j
ƒ|j|jd
ƒƒtjdkrOg}
g}x;|jjƒD]*}d|}|
j|ƒ|j|ƒqÃW|jr%|
jd|jƒ|jd|jƒn|j|
ƒ|j|
ƒ|j|ƒng}xI|jD]>}|j|j|ƒƒ|jr_|j|j|ƒƒq_q_W|j|jdƒƒtƒ}xT|j
D]I}tjj|ƒ}d|krôqÊn|d–krqÊn|j|ƒqÊW|jr¯|
j|jjƒ|
j|jjƒtjdkr©|j|jjƒd|jjd?|jjd?d@f}|j|j|ƒƒq¯tjdkr¯|j|jjƒd|jjd?|jjd?d@f}|jdkrQ|d}tjj |jj|j|ƒƒ}tj!|tj"ƒrQ|}qQn|j#r“|d}|jd kr“|jd!ƒ|jd!ƒq“n|j|j|ƒƒq¯n|jd—kr¨|rÓd%}d&}nd'}d(}|j|j|ƒƒ|j|j|ƒƒ|r d)}d*}nd+}d,}|j|j|ƒƒ|j|j|ƒƒ|rmd-}d.}nd/}d0}|j|j|ƒƒ|j|j|ƒƒn|j#rç|rÆd1}d2}nd3}d4}d5} d6}!d7}"n3|rüd8}d9}nd:}d;}d<} d=}!d>}"|jd˜krœ|j$ra|j|j|ƒƒ|j|j|ƒƒn|j%rœ|j|jd?ƒƒ|j|jd@ƒƒqœn|j|j| ƒƒ|j|j|!ƒƒ|j|j|"ƒƒ|j&rödA}#dB}$ndC}#dD}$|j|j|#ƒƒ|j|j|$ƒƒ|j$r||j|jdEƒƒ|j|jdFƒƒ|j|jdGƒƒn|jr¤y|jj'}%Wnt(k
rµ|jj)}%YnXtjj |%dHƒ}&|jdIkrð|rð|	jdJƒn|j#s	|	jdKƒn|dLkrû	xü|jD]Õ}'|'dMkrA|	jdNƒnl|'dOkr]|	jdPƒnP|'dQkry|	jdRƒn4|'dSkr•|	jdTƒn|'dUkr±|	jdVƒnü|'dWkrÍ|	jdXƒnà|'dYkré|	jdZƒnÄ|'d[kr	|	jd\ƒn¨|'d]kr!	|	jd^ƒnŒ|'d_kr=	|	jd`ƒnp|'dakrY	|	jdbƒnT|'dckru	|	jddƒn8|'dekr‘	|	jdfƒn|'dgkr­	|	jdhƒn|dikr|'d_krÕ	|	jdRƒn|'d™krô	|	jdjƒqô	qqWn|j$r
|	jdkƒn|jdlƒ}(|j|(ƒ|j|(ƒ|dLkrª
tjj |&dmƒ})|j*|)dnƒ|_+idodM6dpdQ6dqdU6drdW6dsda6}*idšdO6d›dQ6dœdv6ddS6dždU6dŸdW6d dY6d¡d[6d¢d]6d£dw6d¤d_6d¥da6d¦dc6d§de6d¨dy6d©d{6}+idªd|6d«dO6d¬dQ6d­dv6d®dS6d¯dU6d°dW6d±dY6d²d[6d³d]6d´dw6dµd_6d¶da6d·dc6d¸de6d¹dg6dºdy6d»d{6},|dikr«|+}-n|,}-d]|jkrådQ|jkrå|jjdQƒqån|d}krGd||jkrGdQ|jkr"|jjdQƒndU|jkrG|jjdUƒqGnxú|jD]R}'|j,|'ƒ}.|j|j|.|j-|'ƒƒƒtjdkr
tƒ}/|'t.|*j/ƒƒkrÕ|/j|j|*|'ƒƒn|'t.|-j/ƒƒkrk
x{|-|'D]l}0|0|jkrø|j|j|j,|0ƒƒƒ|0t.|*j/ƒƒkrd
|/j|j|*|0ƒƒqd
qøqøWn|j|/j0ƒƒqQ|j|j|.|j-|'ƒƒƒqQWnš|jj1}1|jd¼kr	|r	|1t2|ƒj3d
dƒ}1|jj4d~kr	|1d}1q	n|j|j|1|jj5ƒƒ|j|j|jj1ƒƒtjj |&d€ƒ}2tj!|2tj"ƒsŒtjj |&|jjƒ}2n|
j|2ƒ|jdƒ}3|3r¤|dLkr‘xÔ|jD]Æ}'|'d{krù|
jtjj |3dd‚ƒƒqÄ|j-|'ƒrã|(d}4|'d|kr3|dƒkr3d„}'n|
jtjj |4|'d…d†ƒƒ|dikrŠ|'dQkr¯|
jtjj |4d‡d†ƒƒ|
jtjj |4dˆd†ƒƒqà|'dakrà|
jtjj |4d‰d†ƒƒqàqŠqÄ|3d}4|
jtjj |4|'ƒƒ|dikrÄ|'dQkr\|
jtjj |4dtƒƒ|
jtjj |4duƒƒqŠ|'dakrŠ|
jtjj |4dxƒƒqŠqÄqÄWn|
j|3ƒq¤n|j6r|
j|jdŠƒƒ|j|jd‹ƒƒ|j|jdŒƒƒ|j|jdrƒƒn|js|j6r†|dLks>|j6s>dQ|jkr†|
j|jdƒƒ|j|jdŽƒƒ|j|jdƒƒq†n|j$r¾|j|jdƒƒ|j|jd‘ƒƒn|j|jd’ƒƒ|j%rö|j|jd“ƒƒn|j|jd”ƒƒ|j|j7|j0ƒƒƒ|j8j9|ƒ|j:j9|ƒ|j;j9|	ƒ|j<j9|
ƒ|j=j9|ƒ|j>j9|ƒ|j?j9|ƒd|_@d•S)½zbFinalise the macros by doing any consolidation that isn't specific
        to a Makefile.
        ÚsharedZ
exceptionsZrttiZstlr›rrr-r@Ú.rDrGrUÚdarwinz-arch z-isysroot %sz-Wl,-syslibroot,%srXz/qpy/rú..Úcygwinzpython%u.%uéééÿr¡z
python%u%uÚBMAKEZ_bcppÚ_dÚMINGWz/D_DEBUGÚMSVCúMSVC.NETÚMSBUILDrr2rr1r"r9r!r8r%r<r$r;rr6rr4rr0rJrr5rr3r r7rNrr/r(r?r'r>r&r=rQÚmkspecsrfZQT_DLLZQT_NO_DEBUGirZQT_CORE_LIBÚ
QtDeclarativeZQT_DECLARATIVE_LIBržZ
QT_GUI_LIBÚQtMultimediaZQT_MULTIMEDIA_LIBÚ	QtNetworkZQT_NETWORK_LIBÚQtOpenGLZ
QT_OPENGL_LIBÚQtScriptZ
QT_SCRIPT_LIBÚ
QtScriptToolsZQT_SCRIPTTOOLS_LIBÚQtSqlZ
QT_SQL_LIBÚQtTestZQT_TEST_LIBÚQtWebKitZ
QT_WEBKIT_LIBÚQtXmlZ
QT_XML_LIBÚ
QtXmlPatternsZQT_XMLPATTERNS_LIBÚphononZ
QT_PHONON_LIBiZQT_WIDGETS_LIBZQT_THREAD_SUPPORTZ	LIBDIR_QTzqconfig.priZQT_LIBINFIXrZr[r\r]raÚ	QtWidgetsÚQtPrintSupportÚQtHelpÚQtSvgÚQtWebKitWidgetsÚ
QtDesignerÚ	Qt5AxBaseÚQAxContainerÚQtAssistantiznon-commercialZncÚdefaultZ	INCDIR_QTZActiveQtiÚQtAssistantClientz
.frameworkZHeaderszQtWidgets.frameworkzQtPrintSupport.frameworkzQtWebKitWidgets.frameworkrErLrVrFrWrcr`r_r^rYrbN)rrÖrØ)ràrárârÝ)ràrárârÝ)rêrë)rîrærêrèrðúQtGuiúQtCore)rñrðrü)rærêrðrûrü)rûrü)rü)rðrûrü)rü)rèrûrü)rü)rírðrûrü)rûrü)rærôrðrûrü)rü)rærü)rûrü)rörðrûrü)rærûrü)rærûrü)rü)rêrûrü)rûrü)rü)rûrü)rü)rèrûrü)rü)rírûrü)rûrü)rærûrü)rü)rærü)rûrü)rûrü)rûrü)ràrárârÝ)Ar¨r¦Úqt_winconfigr¼rœr‹rŽrÀÚ
optional_listrÁrÂrÃrÄrÅrsrr·rwr¶rrÆÚplatform_libÚ_dependent_libsr°r±Údirnamerªr
r	rrr¿ÚjoinÚaccessÚF_OKr¬r¥r§r«Zqt_data_dirr‚Zqt_dirÚ_extract_valuer¯Ú_qt_module_to_libÚ
_is_frameworkr˜rºr‘Úqt_libÚversion_to_stringÚreplaceZ
qt_editionr
r©Ú_platform_rpathsrr”r-r@rDrGrUrXr¹)5rzZwcfgZ
win_sharedZwin_exceptionsZwin_rttiZwin_stlrœZcflagsZcxxflagsZdefinesZincdirÚlflagsZlibdirZ
mac_cflagsZ
mac_lflagsÚaZaflagÚlibsÚlÚrpathsZl_dirZpy_libZbpy_libZbpy_lib_pathZcflags_exceptionsZcxxflags_exceptionsZcflags_rttiZ
cxxflags_rttiZ
cflags_stlZcxxflags_stlZ	cflags_mtZcxxflags_mtZcflags_debugZcxxflags_debugZlflags_debugZcflags_warnZ
cxxflags_warnZ
specd_baserãr|Z	libdir_qtZqconfigZwdepmapZ
qt5_depmapZ
qt4_depmapZ	qt_depmapÚlibZdepsZqdeprZspecdZqtincdirZidirr~r~rÚfinaliseÆs–
						

	

			((
$	

													
		




	"	')
#
	




	$		zMakefile.finalisecCs=|dkrd}n|jjdƒ|jjd|ƒdS)z9Add the link flags for creating a manifest file.
        Nz	$(TARGET)z	/MANIFESTz/MANIFESTFILE:%s.manifest)rGrw)rzÚtargetr~r~rÚ
_add_manifestªs	zMakefile._add_manifestcCs(|jjo'|jjdkp'|dkS)z;Return true if the given Qt module is a framework.
        irø)r¦r
rœ)rzr|r~r~rr³szMakefile._is_frameworkcCs·|jj}|dkrE|dkr<tjdkr<|}qKd}n|}||j7}|jrÇtjdkr}|d}qÇtjdkr«|j|ƒsÄ|d}qÄqÇ|dkrÇ|d}qÇnd	}tjdkrod
|jjjƒkro|d(ks|dkr–|dkr–|dkrJ|d krid!|d"d#…}qiql|d kr_d$}ql|d%}q–n'tjj	d&ƒr–|d kr–d$}n|r³d!|d'd#…}n|S))zoReturn the name of the Qt library corresponding to a module.

        mname is the name of the module.
        røir×rúr¡Údr¬iFrÕrrärõržròrårærçrèrérêrórërìrírîrïr÷rñrôrðiZQt5r›NTÚ4Úlinuxé)zQtCorez
QtDeclarativez
QtDesignerzQtGuizQtHelpzQtMultimediaz	QtNetworkzQtOpenGLzQtScriptz
QtScriptToolszQtSqlzQtSvgzQtTestzQtWebKitzQtXmlz
QtXmlPatternszphononzQAxContainerzQtPrintSupportzQtWebKitWidgetsz	QtWidgets)
r¦rœrsrr¯r¬rrýr¼Ú
startswith)rzÚmnamerœrZ
qt5_renamer~r~rr¸sF		
	
'			zMakefile._qt_module_to_libcCs|j|jƒS)z]Return an optional Makefile macro as a list.

        name is the name of the macro.
        )r½r‘)rzrƒr~r~rrþëszMakefile.optional_listrcCs+dj|j|ƒƒ}|s'|}n|S)z„Return an optional Makefile macro as a string.

        name is the name of the macro.
        default is the default value
        ú )rrþ)rzrƒrùÚsr~r~rr¾òs	zMakefile.optional_stringcCs,|j|ƒ}|s(td|ƒ‚n|S)z^Return a required Makefile macro as a string.

        name is the name of the macro.
        z "%s" must have a non-empty value)r¾Ú
ValueError)rzrƒrr~r~rÚrequired_stringÿszMakefile.required_stringcCsng}|jdƒ}|dkr3|jdƒ}n|dkrjx(|D]}|jt||ƒƒqFWn|S)zjReturn a list of platform specific rpath flags.

        rpaths is the cannonical list of rpaths.
        rjrrO)r¾rwÚ_quote)rzrÚflagsÚprefixÚrr~r~rrs
zMakefile._platform_rpathscCsL|jd	kr|d}n,tjdkr>|r>d|}n
d|}|S)
z¼Return a library name in platform specific form.

        clib is the library name in cannonical form.
        framework is set of the library is implemented as a MacOS framework.
        ràúMSVC.NETrârÝz.libr×z-framework z-l)zMSVCr#zMSBUILDzBMAKE)r¿rsr)rzÚclibÚ	frameworkZplibr~r~rrÿs


zMakefile.platform_libcCsG|jdkr1tjj|jj|dƒ}natjdkro|rotjj|jj|d|dƒ}n#tjj|jjd|dƒ}|j|d	ƒj	ƒ}|jj
d
krCg}|dkrë|jd
ƒ|jdƒn|dkr|jdƒnx9|D].}|j|j
|j|ƒ|ƒj	ƒƒqWn|S)zùReturn a list of additional libraries (in platform specific form)
        that must be linked with a library.

        clib is the library name in cannonical form.
        framework is set of the library is implemented as a MacOS framework.
        ràúMSVC.NETrârÝz.prlr×z
.frameworkrZQMAKE_PRL_LIBSiržÚQt5GuirðrñrìÚ	Qt5WebKitrô)zMSVCr&zMSBUILDzBMAKE)zQtGuir')zQtWebKitr()r¿r°r±rr¦Z
qt_lib_dirrsrrr¼rœrwrŽrÿr)rzr$r%Zprl_namerZ	xtra_libsZxtrar~r~rr,s"")#

)zMakefile._dependent_libscCsd}tj|tjƒrýyt|dƒ}Wn tk
rPtd|ƒYnX|jƒ}x|rï|jƒ}|rà|ddkrà|jdƒ}|dkrà|d|…jƒ|krà||dd…jƒ}Pqàn|jƒ}q`W|j	ƒn|S)	z”Return the stripped value from a name=value line in a file.

        fname is the name of the file.
        vname is the name of the value.
        rr"zUnable to open "%s"rú#ú=Nr›)
r°rrÚopenÚIOErrorr¤ÚreadlinerkÚfindÚclose)rzÚfnameZvnamerÚfÚlineÚeqr~r~rrLs"
	(
zMakefile._extract_valuec
CsÌt|ƒtkr!d}|}nHtjj|ƒrQtjj|ƒ|_|}ntjj|j|ƒ}i}yt	|dƒ}Wn t
k
r¤td|ƒYnXd}|jƒ}x¥|r^|j
ƒ}|rE|ddkrE|jdƒ}|dkrtd||fƒn||dd	…j
ƒ||d	|…j
ƒ<n|d}|jƒ}qºW|jƒxCdD];}y||Wqptk
rªtd||fƒYqpXqpWx9dD]1}y||Wq¶tk
ræd||<Yq¶Xq¶W|jdkrd}	nd}	g}
xA|djƒD]/}tjj|ƒ\}}|
j||	ƒq Wx_|djƒD]M}|js„td|ƒntjj|ƒ\}}|
jd||	ƒqdWdj|
ƒ|d<|S)zÆ
        Parse a build file and return the corresponding dictionary.

        filename is the name of the build file.  If it is a dictionary instead
        then its contents are validated.
        Z
dictionaryr"zUnable to open "%s"r›rr)r*z?"%s" line %d: Line must be in the form 'name = value value...'.NrÚsourcesz"%s" is missing from "%s".ÚheadersÚmoc_headersrràúMSVC.NETrârÝz.objz.oz/"%s" defines "moc_headers" for a non-Qt module.Úmoc_rÚobjects)ztargetr4)r5r6)zMSVCr7zMSBUILDzBMAKE)r—Údictr°r±Úisabsrrµrr³r+r,r¤r-rkr.r/rr¿r¼Úsplitextrwr¨)
rzÚfilenameZbfnameZbdictr1Zline_nrr2r3ÚiÚextZolistÚrootÚdiscardr~r~rÚparse_build_fileis`		
	1





		zMakefile.parse_build_filecCsš|jd|jƒx2|djƒD] }|jd|j|fƒq%WxJ|djƒD]8}tjj|ƒ\}}|jd|j|fƒqZWdS)zƒGenerate the clean target.

        mfile is the file object.
        build is the dictionary created from the build file.
        z	-%s $(TARGET)
r9z	-%s %s
r6z	-%s moc_%s.cpp
N)ÚwriterÈr¼r°r±r<)rzÚmfileÚbuildr1r@rAr~r~rÚclean_build_file_objectsºsz!Makefile.clean_build_file_objectscCs|js|jƒndS)z.The Makefile is now ready to be used.
        N)r¹r)rzr~r~rÚreadyÉs	zMakefile.readycCs|jƒytj|jƒWnYnXtjj|j|jƒ}yt|dƒ}Wn tk
ryt	d|ƒYnX|j
|ƒ|j|ƒ|j|ƒ|j
rt|j
ƒtkrÑ|j
g|_
nx-|j
D]\}}|j|||ƒqÛWn|j|ƒ|jƒdS)zGenerate the Makefile.
        ÚwzUnable to create "%s"N)rGr°Úmakedirsr³r±rr­r+r,r¤Úgenerate_macros_and_rulesÚgenerate_target_defaultÚgenerate_target_installr®r—r˜Úinstall_fileÚgenerate_target_cleanr/)rzZmfnamerDÚsrcÚdstr~r~rÚgenerateÏs(




	
zMakefile.generatec	CsG|jr |jd|jƒn|jd|jdƒƒ|jd|jdƒƒ|jd|jdƒƒg}|js|jdƒnx(|jd	ƒD]}|jd
|ƒqWx.|jdƒD]}|jdt|ƒƒqÈWg}|jd,krd}nd}xv|jdƒD]e}tj	dkrk|j
jrkdt|ƒ}|j|ƒ|j|ƒn|j|t|ƒƒqW|j|jdƒƒ|jddj
|ƒƒ|jd|jdƒƒ|jd|jdƒƒ|jd|jdƒƒ|jddj
|ƒƒ|jrJ|jdt|jd ƒƒƒnt|jƒ}|j|jkr~|j|jƒn|jƒr­|jd!dj
|jƒƒƒn|jd"krÌ|jd#ƒn,|jd$krë|jd%ƒn
|jd&ƒ|jd-kr|jd'ƒn,|jd(kr6|jd)ƒn
|jd*ƒd+S).zjThe default implementation of the macros and rules generation.

        mfile is the file object.
        z%export MACOSX_DEPLOYMENT_TARGET = %s
zCC = %s
rz	CXX = %s
r,z
LINK = %s
rdz-DNDEBUGr@z-DrDz-IràúMSVC.NETrâz	/LIBPATH:z-LrUr×z-FrXzCPPFLAGS = %s
rzCFLAGS = %s
rzCXXFLAGS = %s
r-zLFLAGS = %s
rGz
LIBS = %s
z	MOC = %s
ZMOCzVPATH = %s

rßz .SUFFIXES: .cpp .cxx .cc .C .c

rfz#.SUFFIXES: .c .o .cpp .cc .cxx .C

z .SUFFIXES: .c .cpp .cc .cxx .C

aG
{.}.cpp{}.obj::
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -Fo @<<
	$<
<<

{.}.cc{}.obj::
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -Fo @<<
	$<
<<

{.}.cxx{}.obj::
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -Fo @<<
	$<
<<

{.}.C{}.obj::
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -Fo @<<
	$<
<<

{.}.c{}.obj::
	$(CC) -c $(CFLAGS) $(CPPFLAGS) -Fo @<<
	$<
<<
rÝa
.cpp.obj:
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o$@ $<

.cc.obj:
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o$@ $<

.cxx.obj:
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o$@ $<

.C.obj:
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o$@ $<

.c.obj:
	$(CC) -c $(CFLAGS) $(CPPFLAGS) -o$@ $<
a
.cpp.o:
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $<

.cc.o:
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $<

.cxx.o:
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $<

.C.o:
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $<

.c.o:
	$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
N)úMSVCrRúMSBUILD)rSrRrT)r¸rCrr¬rwrþrr¿rsrr¦r
rŽrr¾r¨r‹rÇrµr³r‘)	rzrDZcppflagsr1rÚ
libdir_prefixÚldZfflagZvpathr~r~rrJðs`			
	##


z"Makefile.generate_macros_and_rulescCs|jdƒdS)z]The default implementation of the default target.

        mfile is the file object.
        z
all:
N)rC)rzrDr~r~rrKqsz Makefile.generate_target_defaultcCs|jdƒdS)z]The default implementation of the install target.

        mfile is the file object.
        z

install:
N)rC)rzrDr~r~rrLxsz Makefile.generate_target_installcCs|jdƒdS)z[The default implementation of the clean target.

        mfile is the file object.
        z
clean:
N)rC)rzrDr~r~rrNszMakefile.generate_target_cleancCs?|jdkrd|}n|jd|jt|ƒfƒ|jdkr[|jdƒn|jd|jt|ƒfƒt|ƒtkr™|g}n|rÀ|jdƒ}|sÀd}qÀnxx|D]p}ttj	j
|tj	j|ƒƒƒ}|jd|jt|ƒ|fƒ|rÇ|jd	||fƒqÇqÇWd
S)a@Install one or more files in a directory.

        mfile is the file object.
        src is the name of a single file to install, or the list of a number of
        files to install.
        dst is the name of the destination directory.
        strip is set if the files should be stripped after been installed.
        rfz
$(DESTDIR)z	@%s %s z|| z%s %s
rlrz
	%s %s %s
z	%s %s
N)
r¿rCrÉrr£r—r˜r¾r°r±rÚbasenamer¢)rzrDrOrPrkZ	strip_cmdÚsfrr~r~rrM†s"

  
'#zMakefile.install_file)rˆrur‰rŠr€rrrrrþr¾rrrÿrrrBrFrGrQrJrKrLrNrMr~r~r~rrš7s4	‰ÿå	3
 Q!ršc@sjeZdZdZddddd„Zdd„Zdd	„Zd
d„Zdd
„Zddd„Z	dS)ÚParentMakefilez1The class that represents a parent Makefile.
    Nršc	Cs/tj||d|d|d|ƒ||_dS)ziInitialise an instance of a parent Makefile.

        subdirs is the sequence of subdirectories.
        r³rÑrÒN)ršr€Ú_subdirs)rzrÊZsubdirsr³rÑrÒr~r~rr€°s"zParentMakefile.__init__cCsdS)zJGenerate the macros and rules.

        mfile is the file object.
        Nr~)rzrDr~r~rrJºsz(ParentMakefile.generate_macros_and_rulescCs|j|ƒdS)zHGenerate the default target.

        mfile is the file object.
        N)Ú_subdir_target)rzrDr~r~rrKÂsz&ParentMakefile.generate_target_defaultcCs|j|dƒdS)zHGenerate the install target.

        mfile is the file object.
        ZinstallN)r[)rzrDr~r~rrLÉsz&ParentMakefile.generate_target_installcCs|j|dƒdS)zFGenerate the clean target.

        mfile is the file object.
        ZcleanN)r[)rzrDr~r~rrNÐsz$ParentMakefile.generate_target_cleanÚallcCsÍ|dkrd}n
d|}|jd|dƒx’|jD]‡}|jdkrm|jd||fƒq>|jdkr–|jd	||fƒq>|jd
|ƒ|jd|ƒ|jdƒq>Wd
S)z„Create a target for a list of sub-directories.

        mfile is the file object.
        target is the name of the target.
        r\rrÚ
z:
rßz	@$(MAKE) -C %s%s
rfz	@(cd %s; $(MAKE)%s)
z	cd %s
z	$(MAKE)%s
z	@cd ..
N)rCrZr¿)rzrDrZtnamerr~r~rr[×s	
zParentMakefile._subdir_target)
rˆrur‰rŠr€rJrKrLrNr[r~r~r~rrY­s	rYc@sFeZdZdZdddddd„Zdd„Zdd	„ZdS)
ÚPythonModuleMakefilez8The class that represents a Python module Makefile.
    Nršc	Csqtj||d|d|d|ƒ|s1d}n|rRtjj||ƒ|_n	||_||_||_dS)acInitialise an instance of a parent Makefile.

        dstdir is the name of the directory where the module's Python code will
        be installed.
        srcdir is the name of the directory (relative to the directory in which
        the Makefile will be created) containing the module's Python code.  It
        defaults to the same directory.
        r³rÑrÒrÖN)ršr€r°r±rÚ_moddirÚ_srcdirÚ_dstdir)rzrÊZdstdirÚsrcdirr³rÑrÒr~r~rr€òs
"			zPythonModuleMakefile.__init__cCsdS)zJGenerate the macros and rules.

        mfile is the file object.
        Nr~)rzrDr~r~rrJ	sz.PythonModuleMakefile.generate_macros_and_rulesc	Cs
tj||ƒxótj|jƒD]ß\}}}x*dD]"}||kr9|j|ƒq9q9W|t|jƒd…}g}xg|D]_}|dkrq…ntjjtjj	||ƒƒr…|j
tjj	|j||ƒƒq…q…W|j|||j
|ƒq#WdS)zHGenerate the install target.

        mfile is the file object.
        ú.svnÚCVSNrš)rcrd)ršrLr°Úwalkr_r™Úlenr±Úisfilerrwr`rMra)	rzrDr@ÚdirsÚfilesZskipÚtailZflistr1r~r~rrLs"

!*z,PythonModuleMakefile.generate_target_install)rˆrur‰rŠr€rJrLr~r~r~rr^ïs
r^c@sšeZdZdZdddddddddddddddddd„Zdd	„Zd
d„Zdd
„Zdd„Zdd„Z	dd„Z
dS)ÚModuleMakefilezAThe class that represents a Python extension module Makefile
    Nrr›ršcCs@tj|||||d||	|
|||
|||ƒ|j|ƒ|_||_||_d|jdƒk|_|
s|r”d|_d|_	n||_||_	|jd|_
|jjdkrÜd|j
|_
nd|j
|_
tjd	kr|rd
|j
|_
ntjd	kr<|
r<|j
d|_
ndS)
a
Initialise an instance of a module Makefile.

        build_file is the file containing the target specific information.  If
        it is a dictionary instead then its contents are validated.
        install_dir is the directory the target will be installed in.
        static is set if the module should be built as a static library.
        strip is set if the module should be stripped of unneeded symbols when
        installed.  The default is 1.
        export_all is set if all the module's symbols should be exported rather
        than just the module's initialisation function.  Exporting all symbols
        increases the size of the module and slows down module load times but
        may avoid problems with modules that use exceptions.  The default is 0.
        r›Zembed_manifest_dllr*rriz	PyInit_%szinit%sr¡rrÞN)ršr€rBÚ_buildÚ_install_dirÚstaticrþÚ	_manifestÚ_stripÚ_limit_exportsÚ_targetr¦rÚ_entry_pointrsr)rzrÊÚ
build_fileÚinstall_dirrnr§rËrÌrÎrÏrÐr³rÑrÒrkÚ
export_allrrrr~r~rr€.s$7				
zModuleMakefile.__init__cCs©|jrd}nd}|jr4|jjdƒnÚ|jj|jdƒƒ|jj|jdƒƒ|jdƒ}|rŽ|jj|ƒn|jr d}nd}|j	r¼|j
ƒntjd	kr×d
g}n|jdƒ}|sþ|jdƒ}n|jj|ƒ|jj|j|ƒƒtjd	krI|jjd
ƒnt
j|ƒ|js•|jdƒr6|jdƒdkrÓd|jjg}|jr#|jdƒ|jdƒ|jd|jƒq#nPdd|jjg}|jr#|jdƒ|jdƒ|jd|jƒn|jj|ƒq•|jrjtjdd…dkru|jjd|jgƒqjtjdd…dkræ|jdƒdkrÃ|jjdd |jgƒqg|jjd!d"d#|jgƒqjtjdd…d$kr|jjd%|jgƒqjtjdd…d&krj|jdƒdkrj|jjd'|jgƒqjn|jd(ƒ}|r•|jj|ƒq•n|jjd)ƒdS)*z<Finalise the macros common to all module Makefiles.
        rHrRZSIP_STATIC_MODULEr#r:rKrIrSr×z-bundlerMrPz-undefined dynamic_lookuprrdzg++z-Wl,-bI:%s/python.expz-Wl,-bnoexpallz
-Wl,-bnoentryz-Wl,-bE:%s.expz
-qmkshrobjz-bI:%s/python.expz
-bnoexpallz	-bnoentryz
-bE:%s.expNérz-Wl,--version-script=%s.expÚsunosz-Wl,-z,noversionz
-Wl,-M,%s.expz-znoversionz-Mz%s.expzhp-uxz	-Wl,+e,%sÚirixz-Wl,-exported_symbol,%srez-Wl,--no-undefined)r§rnr@rwrrŽrþr-rGrorrsrršrr¾rr¦rrqrrrsrdr”r™)rzÚlflags_consoleZ
lflags_dllZ
lflags_pluginZ
aix_lflagsZ
link_shlibr~r~rr`sn						

		

	

	 #. zModuleMakefile.finalisecCstdƒ‚dS)z»Return the name of a SIP v3.x module when it is used as a library.
        This will raise an exception when used with SIP v4.x modules.

        mname is the name of the module.
        z.module_as_lib() can only be used with SIP v3.xN)r)rzrr~r~rÚ
module_as_libÄszModuleMakefile.module_as_libcCsÏ|jr*tjdkr!d}qœd}nrtjdkrBd}nZtjdkrZd}nBtjdkrrd}n*|jd	ƒ}|sœ|jd
dƒ}n|jd|jd|ƒ|jd
|jdƒ|jd|jd|jdfƒ|jdƒ|jr»|jdkr7|jd|jdƒƒq»|jdkrl|jd|jdƒƒd|_	q»|jd|jdƒƒ|jdƒ|_	|j	r»|jd|j	ƒq»nt
j||ƒdS) zUGenerate the macros and rules generation.

        mfile is the file object.
        r¡rr
Zpydr×ZsorÙZdllrBrCzTARGET = %s
rÖzOFILES = %s
r9zHFILES = %s %s
r5r6r]ràúMSVC.NETrârÝz	LIB = %s
rTrßzAR = %s
NrrizRANLIB = %s
)zMSVCr|zMSBUILDzBMAKE)rnrsrr¾rCrrrlr¿rÚ_ranlibršrJ)rzrDr?r~r~rrJÌs8						%
		z(ModuleMakefile.generate_macros_and_rulesc	Csl|jdƒ|jdƒxi|jdjƒD]T}tjj|ƒ\}}d|d}|jd||fƒ|jd|ƒq.W|jdƒ|jd+kr|jrÕ|jdƒ|jd
ƒ|jdƒqh|jdƒ|jdƒ|jdƒ|jrh|jdƒqhnP|jdkrJ|jr|jd|j	ƒ|jdƒx,|jdjƒD]}|jd|ƒqeW|jdƒqh|jdƒ|jd|j
ƒ|jdƒtjj|j|j
dƒ}yt
|dƒ}Wn tk
rtd|ƒYnX|jdƒ|jd|j|jfƒ|jƒn|jr|jd|j	ƒ|jdƒ|jrh|jd ƒqhnØ|jr[tjd!d"…d#krÒ|jd$|j|j
fƒq[tjd!d"…d%kr|jd$|j|j
fƒq[tjd!d&…d'kr[|jd(|j
ƒ|jd)|j|j
fƒq[n|jd*ƒd!S),zHGenerate the default target.

        mfile is the file object.
        z
all: $(TARGET)
z
$(OFILES): $(HFILES)
r6r8z.cppz
%s: %s
z	$(MOC) -o %s $<
z
$(TARGET): $(OFILES)
ràúMSVC.NETrâz	$(LIB) /OUT:$(TARGET) @<<
z
	  $(OFILES)
z<<
z&	$(LINK) $(LFLAGS) /OUT:$(TARGET) @<<
z	  $(OFILES) $(LIBS)
zE	mt -nologo -manifest $(TARGET).manifest -outputresource:$(TARGET);2
rÝz	-%s $(TARGET)
z	$(LIB) $(TARGET) @&&|
r9z+%s \
z|
z	$(LINK) @&&|
z,	$(LFLAGS) $(OFILES) ,$(TARGET),,$(LIBS),%s
z.defrHzUnable to create "%s"zEXPORTS
z%s=_%s
z	$(AR) $(TARGET) $(OFILES)
z	$(RANLIB) $(TARGET)
Nrwrz-	@echo '{ global: %s; local: *; };' > %s.exp
rxéÚaixz	@echo '#!' >%s.expz; \
	 echo '%s' >>%s.exp
z2	$(LINK) $(LFLAGS) -o $(TARGET) $(OFILES) $(LIBS)
)zMSVCr~zMSBUILD)rCrlr¼r°r±r<r¿rnrorÈrrrr³r+r,r¤rsr/r}rqrsr)	rzrDÚmfr@rAÚcppZofZdefnameZdfiler~r~rrK÷sd


	




		





	
		  #z&ModuleMakefile.generate_target_defaultcCsN|jdkr!|jj|_n|jdƒ|j|d|j|jƒdS)zHGenerate the install target.

        mfile is the file object.
        Nz
install: $(TARGET)
z	$(TARGET))rmr¦rrCrMrp)rzrDr~r~rrLEs
z&ModuleMakefile.generate_target_installcCsÂ|jdƒ|j||jƒ|jrJ|jrJ|jd|jƒn|jr¾tjdd…dksžtjdd…dksžtjdd…dkr¾|jd	|j|j	fƒndS)
zFGenerate the clean target.

        mfile is the file object.
        z
clean:
z	-%s $(TARGET).manifest
Nrwrrxrr€z	-%s %s.exp
)
rCrFrlrornrÈrqrsrrr)rzrDr~r~rrNPs
"z$ModuleMakefile.generate_target_clean)rˆrur‰rŠr€rr{rJrKrLrNr~r~r~rrk+s	.d+Nrkc@saeZdZdZddddddddddddddddddd„Zdd	„ZdS)
ÚSIPModuleMakefilez?The class that represents a SIP generated module Makefile.
    Nrr›ršcCsPtj||||||||||	|
|||
|||||ƒ||_dS)a8Initialise an instance of a SIP generated module Makefile.

        prot_is_public is set if "protected" is to be redefined as "public".
        If the platform's C++ ABI allows it this can significantly reduce the
        size of the generated code.

        For all other arguments see ModuleMakefile.
        N)rkr€Ú_prot_is_public)rzrÊrtrurnr§rËrÌrÎrÏrÐr³rÑrÒrkrvrrZprot_is_publicrr~r~rr€es

zSIPModuleMakefile.__init__cCsS|jr,|jjdƒ|jjdƒn|jj|jjƒtj|ƒdS)zAFinalise the macros for a SIP generated module Makefile.
        ZSIP_PROTECTED_IS_PUBLICzprotected=publicN)r„r@rwrDr¦rrkr)rzr~r~rrys
	zSIPModuleMakefile.finalise)rˆrur‰rŠr€rr~r~r~rrƒbsrƒc@s—eZdZdZddddddddddddddddd„Zdd	„Zd
d„Zdd
„Zdd„Zdd„Z	dd„Z
dS)ÚProgramMakefilez2The class that represents a program Makefile.
    Nrr›ršcCs‰tj||||||||	|
|||
|||ƒ||_d|jdƒk|_d|_|r||j|ƒ|_n	d|_dS)aInitialise an instance of a program Makefile.

        build_file is the file containing the target specific information.  If
        it is a dictionary instead then its contents are validated.
        install_dir is the directory the target will be installed in.
        Zembed_manifest_exer*N)ršr€rmrþrorrrBrl)rzrÊrtrur§rËrÌrÍrÎrÏrÐr³rÑrÒrrrr~r~rr€ˆs
7		zProgramMakefile.__init__cCs@tjj|ƒ\|_}tjd$kr:|jd}n	|j}|jƒg}|j|jdƒƒx(|j	j
ƒD]}|jd|ƒqyWx(|jdƒD]}|jd|ƒq¤Wx.|jdƒD]}|jd	t|ƒƒqÏW|j
|jd
ƒƒ|j
|jdƒƒ|jdkr;|j|ƒn|jd%krm|jdƒ|jdƒd}nI|jdkr–|jd|ƒd}n |jdƒ|j|ƒd}xc|jdƒD]R}tjdkr|jjr|jdt|ƒƒn|j|t|ƒƒqÆW|jdƒ}	|jdkrëg}
xŸ|	D]—}xŽ|j
ƒD]€}|d&dkr‡d|dd'…}n'|ddkr®d|dd…}n|d(d…jƒd!krZ|
j|ƒqZqZWqGW|
}	n|j
|	ƒ|j
|jd"ƒƒ|jdkr-|j|ƒn|d#j|ƒfS))zºCreate a command line that will build an executable.  Returns a
        tuple of the name of the executable and the command line.

        source is the name of the source file.
        r¡rÙz.exer,z-arch r@z-DrDz-Ir-r.rÝràúMSVC.NETrâz-Fez/linkz	/LIBPATH:z-ez-Lz-orUr×z-FrGr›ú-z-l-rz-lNr z.objrXr)zwin32zcygwin)zMSVCr†zMSBUILDéÿÿÿÿrˆéüÿÿÿ)r°r±r<rrrsrrGrwrr·r¼rþrrŽr¿r¦r
Úlowerr)rzÚsourceÚ_ÚexerEr
r1rUrVrZblflagsZlfr~r~rÚ
build_commandžs`	


		


	
zProgramMakefile.build_commandcCs€|jdkr"|jjdƒn|jr>|j|jƒn|jrPd}nd}|jj|j|ƒƒt	j
|ƒdS)	z4Finalise the macros for a program Makefile.
        ràúMSVC.NETrâz/INCREMENTAL:NOrHrRN)zMSVCrzMSBUILD)r¿rGrwrorrrr§rŽrþršr)rzrzr~r~rr÷s			zProgramMakefile.finalisecCs£|jstdƒ‚n|jd}tjd
krA|d}n|jd|ƒ|jd|jdƒ|jd	|jd
ƒ|jdƒtj||ƒdS)zUGenerate the macros and rules generation.

        mfile is the file object.
        z8pass a filename as build_file when generating a Makefilerr¡rÙz.exezTARGET = %s
zOFILES = %s
r9zHFILES = %s
r5r]N)zwin32zcygwin)rlrrsrrCršrJ)rzrDrr~r~rrJ	s	


z)ProgramMakefile.generate_macros_and_rulescCs\|jdƒ|jdƒx–|jdjƒD]}tjj|ƒ\}}d|d}|j|jkr‡tjj|j|ƒ}n|jd||fƒ|jd|ƒq.W|jdƒ|j	dkrù|jdƒ|jd
ƒ|jdƒnF|j	dkr2|jdƒ|jdƒ|jdƒn
|jdƒ|j
rX|jdƒndS)zHGenerate the default target.

        mfile is the file object.
        z
all: $(TARGET)
z
$(OFILES): $(HFILES)
r6r8z.cppz
%s: %s
z	$(MOC) -o %s $<
z
$(TARGET): $(OFILES)
ràúMSVC.NETrâz&	$(LINK) $(LFLAGS) /OUT:$(TARGET) @<<
z	  $(OFILES) $(LIBS)
z<<
rÝz	$(LINK) @&&|
z+	$(LFLAGS) $(OFILES) ,$(TARGET),,$(LIBS),,
z|
z2	$(LINK) $(LFLAGS) -o $(TARGET) $(OFILES) $(LIBS)
zE	mt -nologo -manifest $(TARGET).manifest -outputresource:$(TARGET);1
N)zMSVCrzMSBUILD)rCrlr¼r°r±r<rµr³rr¿ro)rzrDrr@rŒr‚r~r~rrKs*







	z'ProgramMakefile.generate_target_defaultcCsH|jdkr!|jj|_n|jdƒ|j|d|jƒdS)zHGenerate the install target.

        mfile is the file object.
        Nz
install: $(TARGET)
z	$(TARGET))rmr¦rrCrM)rzrDr~r~rrLAs
z'ProgramMakefile.generate_target_installcCsD|jdƒ|j||jƒ|jr@|jd|jƒndS)zFGenerate the clean target.

        mfile is the file object.
        z
clean:
z	-%s $(TARGET).manifest
N)rCrFrlrorÈ)rzrDr~r~rrNLs
	z%ProgramMakefile.generate_target_clean)rˆrur‰rŠr€rŽrrJrKrLrNr~r~r~rr……sY$r…cCsNtjdkr$|jddƒ}n|jdƒdkrJd|d}n|S)z^Return a string surrounded by double quotes it if contains a space.

    s is the string.
    r¡ú/ú\rrú")rsrr
r.)rr~r~rrXs
rrcCstt|d?d@ƒg}|dkrg|jt|d?d@ƒƒ|dkrg|jt|d@ƒƒqgndj|ƒS)z‹ Convert an n-part version number encoded as a hexadecimal value to a
    string.  version is the version number.  Returns the string.
    rÚrÜr›rÛrrÖ)Ústrrwr)ÚversionÚpartsZ	part_listr~r~rr	gsr	cCs¬|jdƒ}t|tƒs"dSt|ƒdkrD|jdƒnt|ƒdkrZdSd}xE|D]=}yt|ƒ}Wntk
r•dSYnX|d>|}qgW|S)z§ Convert a version string of the form m.n or m.n.o to an encoded version
    number (or None if it was an invalid format).  version_str is the version
    string.
    rÖNrÚ0rrrÛ)r¼r–r˜rfrwÚintr)Zversion_strr–r•ÚpartÚvr~r~rÚversion_from_stringws

	r›cCs |dk	}|dk	}d}d}t|ƒ}|jƒ}	x*|	rh|sQ|rh|	jƒ}
t|
ƒdkrY|
ddkrY|r|
d|kr|
d}|dd…dkrÇt|dƒ}nDt|ƒ}|d	}
|d	d
}|d
}|
d>|d>|}d}n|rY|
d|krYdj|
dd…ƒdd…}d}qYn|jƒ}	q?W|jƒ|s|r–td
||fƒn||fS)aRead the version information for a package from a file.  The information
    is specified as #defines of a numeric (hexadecimal or decimal) value and/or
    a string value.

    filename is the name of the file.
    description is the descriptive name of the package.
    numdefine is the name of the #define of the numeric version.  It is ignored
    if it is None.
    strdefine is the name of the #define of the string version.  It is ignored
    if it is None.

    Returns a tuple of the version as a number and as a string.
    Nrrz#definer›rZ0xrÚédé
rÛrz<The %s version number could not be determined by parsing %s.rˆ)r+r-r¼rfr˜rr/r¤)r=ÚdescriptionZ	numdefineZ	strdefineZneed_numZneed_strZversZversstrr1rZwlršZdecZmajÚminZbugr~r~rÚread_version”s6"


	#
r c	CsÄd}t|jƒƒ}|jƒd}x/|D]'}t|ƒ}||kr/|}q/q/Wx=|D]5}||}t|ƒ}d}	|dkr˜d}ns|tkr¼dj|ƒ}d}	nO|tkrù|jdƒdkrêd|}qt|ƒ}nt|ƒ}d}	|	r7d|kr&d	}	n|	||	}n|d
|dd|t|ƒd|j	d
dƒ}||dkrŒ|d}n|d}qaW|d}|d}|r¶|d}t|jƒƒ}
|
jƒd}x/|
D]'}t|ƒ}||krç|}qçqçWx”|
D]Œ}||
dkr8d}
nd}
||}d|kr]d	}	nd}	d|d}|dd|d||	|j	d
dƒ|	|
f}qW|d}n
|d}|S)aMConvert a dictionary to a string (typically to use as the content to a
    call to create_config_module()).  Dictionary values that are strings are
    quoted.  Dictionary values that are lists are converted to quoted strings.

    dict is the dictionary.
    macros is the optional dictionary of platform specific build macros.
    z_pkg_config = {
rNÚNonerú'r•z0x%06xz'''z    'z':rr’z\\r›ú,r]z}

z_default_macros = z{
rz    %-*s  %s%s%s%s
z}
zNone
rˆrˆ)
r˜rºÚsortrfr—rr˜r.r”r
)Zcdictr†ÚcontentrºÚwidthÚkZklenrÔZvtypeZdelimÚnamesÚcZclenÚsepr~r~rÚcreate_contentËsn




		
	8







	
	8

r«cCs°t|ƒtkr$t||ƒ}nd}t|dƒ}t|dƒ}|jƒ}xA|r—|j|ƒdkr{|}n|j|ƒ|jƒ}qWW|jƒ|jƒdS)	aCreate a configuration module by replacing "@" followed by
    "SIP_CONFIGURATION" followed by "@" in a template file with a content
    string.

    module is the name of the module file.
    template is the name of the template file.
    content is the content string.  If it is a dictionary it is first converted
    to a string using create_content().
    macros is an optional dictionary of platform specific build macros.  It is
    only used if create_content() is called to convert the content to a string.
    ú@ZSIP_CONFIGURATIONrHr"rNz@SIP_CONFIGURATIONz@SIP_CONFIGURATION@)r—r:r«r+r-r.rCr/)ÚmoduleZtemplater¥r†ÚkeyZdfrXr2r~r~rÚcreate_config_module*	s		

r¯cCs|t|jƒƒ}|jƒ|dkr9||d}n?x<|D] }||kr@||}Pq@q@Wtd||fƒ|S)aConvert a version number to a SIP tag.

    version is the version number.  If it is negative then the latest version
    is assumed.  (This is typically useful if a development preview  is
    indicated by a negative version number.)
    tags is the dictionary of tags keyed by version number.  The tag used is
    the one with the smallest key (ie. earliest version) that is greater than
    the given version number.
    description is the descriptive name of the package used for error messages.

    Returns the corresponding tag.
    rr›zUnsupported %s version: 0x%06x.rˆ)r˜rºr¤r¤)r•ZtagsržZvlÚtagršr~r~rÚversion_to_sip_tagL	s



r±cCs/tjjtd|ƒdƒtjdƒdS)zWDisplay an error message and terminate.

    msg is the text of the error message.
    zError: r]r›N)rsÚstderrrCÚformatÚexit)Úmsgr~r~rr¤j	sr¤cCstjjt|ƒdƒdS)zODisplay an information message.

    msg is the text of the error message.
    r]N)rsÚstdoutrCr³)rµr~r~rÚinforms	sr·éNcCs¥|}d|}xŽ|jƒD]€}t|ƒ}||krf|||krf|dd|}|}n||kr‰|d}|d}n||}||}qW|S)zõFormat a message by inserting line breaks at appropriate places.

    msg is the text of the message.
    leftmargin is the position of the left margin.
    rightmargin is the position of the right margin.

    Return the formatted message.
    rr]r›)r¼rf)rµZ
leftmarginZrightmarginZcursZfmsgrHrr~r~rr³{	s	
	


r³c
Csîi}|dk	r¾x©|D]ž}d}|jdƒ}|dkrSd}|d}n,|jdƒ}|dkr{|d}ndS|d|…}	|	|krŸdS|||d…||	<qWnGd	d
„d
ƒ}
|
|ƒ}itjd6dd
6dd6dd6}|jƒ}
x¥|
rµxVt|
ƒdkro|
ddkro|
dd…}
|jƒ}|rk|
|}
qPqW|
jddƒdjƒ}
|
r¦|
jdƒ}|dkrÔ|
|ddkrÔd}|d}nd}|
jdƒ}|}|dkr¦|
d|…jƒ}|
|dd…jƒ}|jddƒjddƒ}|rŠ|dkrŠ|j|ƒ}|dk	rŠ|d|}qŠnt	|||ƒ||<q¦n|jƒ}
qWi}x|D]}d||<qÃWd}x€t
|jƒƒD]l}|j|ƒr|t|ƒd…}n|}||kr6qðn||}ddg}xC|D]5}|j|ƒ}|dkrS|t|ƒ}PqSqSWd }xë|dkr||d…jdƒ}|dkrÊPn||}|||…}	ytj
|	}Wntk
rd}YnX|d|…|||dd…}xC|D]5}|j|ƒ}|dkr=|t|ƒ}Pq=q=Wd!}q•W|jdƒ}xÀ|dkrQ||dd…jdƒ}|dkrËPn|d|}||d|…}	ytj
|	}Wntk
rd}YnX|d|…|||dd…}|jdƒ}q’W|||<qðWx‡t
|jƒƒD]s}||}||}|jdƒdkrÖ|rÃ|d|dd…}qÜ|dd…}n|}|||<qsW|S)"aõParse a qmake compatible file of build system macros and convert it to a
    dictionary.  A macro is a name/value pair.  The dictionary is returned or
    None if any of the overrides was invalid.

    filename is the name of the file to parse.
    names is a list of the macro names to extract from the file.
    overrides is an optional list of macro names and values that modify those
    found in the file.  They are of the form "name=value" (in which case the
    value replaces the value found in the file) or "name+=value" (in which case
    the value is appended to the value found in the file).
    properties is an optional dictionary of property name and values that are
    used to resolve any expressions of the form "$[name]" in the file.
    Nrz+=rú+rr*r›c@sLeZdZdd„Zdd„Zdd„Zdd„Zd	d
„ZdS)z3parse_build_macros.<locals>.qmake_build_file_readercSs>||_d|_g|_g|_d|_|j|ƒdS)N)r=ÚcurrentfileÚ	filestackÚ	pathstackÚ
cond_fnameÚ	_openfile)rzr=r~r~rr€Â	s					z<parse_build_macros.<locals>.qmake_build_file_reader.__init__cSsyt|dƒ}Wn3tk
rH|j|kr6dStd|ƒYnX|jr{|jj|jƒ|jj|jƒn||_t	jj
|ƒ|_dS)Nr"zUnable to open %s)r+r,r½r¤rºr»rwr¼r±r°r)rzr=r1r~r~rr¾Ê	s
		z=parse_build_macros.<locals>.qmake_build_file_reader._openfilecSsC|jjƒ}|jƒ}|jrK|dkrKd|_|jjƒ}n§|jdƒr­|jdƒr­|j|dd…jƒdd	…jƒƒ|_|jjƒ}nE|jdƒrò|j|dd
…jƒƒ}|j|ƒ|jƒS|s?|jjƒ|j	r?|j	j
ƒ|_|jj
ƒ|_|jƒSn|S)Nú}zexists(ú{r›ézinclude(rÛrˆrˆrˆ)
rºr-rkr½rÚendswithÚ
_normaliser¾r/r»Úpopr¼r±)rzr2ZslineZnextfiler~r~rr-Û	s&	2


	
z<parse_build_macros.<locals>.qmake_build_file_reader.readlinecSs[d|kr*tjj|j|ƒƒ}ntjj|ƒsWtjj|j|ƒ}n|S)Nz$()r°r±ÚnormpathÚ_expandvarsr;r)rzr0r~r~rrÃø	s
z>parse_build_macros.<locals>.qmake_build_file_reader._normalisecSs³d}x¦tjd||d…ƒ}|s/Pn|jdƒ\}}|jdƒ}|tjkr¦||d…}|d|…tj|}t|ƒ}||7}q	|}q	|S)Nrz\$\((\w+)\)r›)ÚreÚsearchÚspanÚgroupr°Úenvironrf)rzr0r>rÓÚjrƒrjr~r~rrÆ
s
	z?parse_build_macros.<locals>.qmake_build_file_reader._expandvarsN)rˆrur‰r€r¾r-rÃrÆr~r~r~rÚqmake_build_file_readerÁ	s

rÍZ
DIR_SEPARATORrZLITERAL_WHITESPACEú$ZLITERAL_DOLLARr)ZLITERAL_HASHr’TFz\"r“z\'r¢ZQMAKE_z$$(z$(ú)ú%éþÿÿÿrÑrˆrˆ)r.r°rªr-rfr¼rkr
ÚgetÚ_expand_macro_valuer˜rºrrËr)r=r¨Z	overridesÚ
propertiesZoridesZorider!Zname_endZ	val_startrƒrÍr1Úrawr2ÚnextZassstartZaddingZassendÚlhsÚrhsZorig_rhsZrefinedrÓZmacro_prefixZreflhsZpleadinZplÚestartZnstartZeendÚenvr~r~rÚparse_build_macros—	sÚ


T

	%
 





&


&

rÛc
Cs¨|jdƒ}|jdƒ}xƒ|dkr£||kr£|d}|t|ƒkrx||dkrx|d}d}n>|t|ƒkr­||dkr­|d}d	}n	tj}|}x0|t|ƒkrî|||krî|d}q¿W|||…}|d
kr|d}n|d	krN|dkr9d}	q`|j|dƒ}	n|j|dƒ}	|d|…|	||d…}|jdƒ}|jdƒ}q!W|S)
z6Expand the value of a macro based on ones seen so far.z$$(z$$rrrÀr›r¿ú[ú]z}]Nr)r.rfÚstringZ
whitespacerÒ)
r†rØrÔrÙZmstartZrstartZtermZmendr×rr~r~rrÓ°
s4
"
	"
		%
	"rÓcCsçtjdkr|d}nt|dƒ}tjdkrztj}|r`|dd…d}n|jd||fƒn
tjdkr]tj}|d	}|d
}|râ|dkrÄ|dksÐ|dkrÙd}qèd
}nd}d|||f}|r6djdd„|jƒDƒƒ}	d|	|f}n|jdƒ|jd||fƒn'|jdƒ|jdtj|fƒ|jƒtjdkrãt	j
|ƒ}
|
j}|t
jt
j
Bt
jBO}t	j||ƒn|S)a¸Create a platform dependent executable wrapper around a Python script.

    script is the full pathname of the script.
    wrapper is the name of the wrapper file to create.
    gui is non-zero if a GUI enabled version of the interpreter should be used.
    use_arch is the MacOS/X architectures to invoke python with.  Several space
    separated architectures may be specified.

    Returns the platform specific name of the wrapper.
    r¡z.batrHNr zw.exez/@"%s" "%s" %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 %%9
r×rr›rrÍZpythonwz%s%d.%drcSsg|]}d|‘qS)z-%sr~)Ú.0r
r~r~rú
<listcomp>	s	z"create_wrapper.<locals>.<listcomp>z
arch %s %sz
#!/bin/sh
zexec %s %s ${1+"$@"}
r‰)rsrr+Ú
executablerCÚversion_inforr¼r/r°ÚstatÚst_modeÚS_IXUSRÚS_IXGRPÚS_IXOTHÚchmod)ZscriptZwrapperZguiZuse_archZwfrr•Zpy_majorZpy_minorZ
arch_flagsZsbufÚmoder~r~rÚcreate_wrapperÜ
s@
		

$		"


	rê)rsr°rãrÞrÇrxrnryrrrmr‹r’ršrYr^rkrƒr…rr	r›r r«r¯r±r¤r·r³rÛrÓrêr~r~r~rÚ<module>s

=+=ÿÿÿÿzB<ÿ8#Ó7_"	ÿ,