# HG changeset patch # User Steve Dower # Date 1416689697 28800 # Sat Nov 22 12:54:57 2014 -0800 # Node ID f3f2785c5a3b6a18cf34fea85bbe472ac8dd1a4c # Parent 7d5754af95a99032fbe942f638c91f4c08cf7555 Issue #22919: Windows build updated to support VC 14.0 (Visual Studio 2015), which will be used for the official 3.5 release. diff --git a/.gitignore b/.gitignore --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ .gdb_history Doc/build/ Doc/venv/ +Lib/distutils/command/*.pdb Lib/lib2to3/*.pickle Lib/test/data/* Lib/_sysconfigdata.py @@ -27,23 +28,26 @@ Programs/_testembed PC/python_nt*.h PC/pythonnt_rc*.h -PCbuild/*.bsc -PCbuild/*.dll -PCbuild/*.exe -PCbuild/*.exp -PCbuild/*.lib -PCbuild/*.ncb -PCbuild/*.o -PCbuild/*.pdb +PC/*/*.exe +PC/*/*.exp +PC/*/*.lib +PC/*/*.bsc +PC/*/*.dll +PC/*/*.pdb +PC/*/*.user +PC/*/*.ncb +PC/*/*.suo +PC/*/Win32-temp-* +PC/*/x64-temp-* +PC/*/amd64 PCbuild/*.user PCbuild/*.suo PCbuild/*.*sdf -PCbuild/Win32-temp-* -PCbuild/x64-temp-* PCbuild/*-pgi PCbuild/*-pgo PCbuild/amd64/ -PCbuild/ipch +PCbuild/obj +PCBuild/win32 .purify Parser/pgen __pycache__ @@ -78,3 +82,5 @@ coverage/ externals/ htmlcov/ +Tools/ssl/amd64 +Tools/ssl/win32 diff --git a/.hgignore b/.hgignore --- a/.hgignore +++ b/.hgignore @@ -50,13 +50,12 @@ *.pyd *.cover *~ +Lib/distutils/command/*.pdb Lib/lib2to3/*.pickle Lib/test/data/* Misc/*.wpu PC/python_nt*.h PC/pythonnt_rc*.h -PC/*.obj -PC/*.exe PC/*/*.exe PC/*/*.exp PC/*/*.lib @@ -69,23 +68,14 @@ PC/*/Win32-temp-* PC/*/x64-temp-* PC/*/amd64 -PCbuild/*.exe -PCbuild/*.dll -PCbuild/*.pdb -PCbuild/*.lib -PCbuild/*.exp -PCbuild/*.o -PCbuild/*.ncb -PCbuild/*.bsc PCbuild/*.user PCbuild/*.suo PCbuild/*.*sdf -PCbuild/Win32-temp-* -PCbuild/x64-temp-* PCbuild/*-pgi PCbuild/*-pgo PCbuild/amd64 -PCbuild/ipch +PCbuild/obj +PCbuild/win32 Tools/unicode/build/ Tools/unicode/MAPPINGS/ BuildLog.htm @@ -100,3 +90,5 @@ *.gcno *.gcov coverage.info +Tools/ssl/amd64 +Tools/ssl/win32 diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py --- a/Lib/ctypes/util.py +++ b/Lib/ctypes/util.py @@ -19,6 +19,8 @@ i = i + len(prefix) s, rest = sys.version[i:].split(" ", 1) majorVersion = int(s[:-2]) - 6 + if majorVersion >= 13: + majorVersion += 1 minorVersion = int(s[2:3]) / 10.0 # I don't think paths are affected by minor version in version 6 if majorVersion == 6: @@ -36,8 +38,10 @@ return None if version <= 6: clibname = 'msvcrt' + elif version <= 13: + clibname = 'msvcr%d' % (version * 10) else: - clibname = 'msvcr%d' % (version * 10) + clibname = 'appcrt%d' % (version * 10) # If python was built with in debug mode import importlib.machinery diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py @@ -209,7 +209,7 @@ if MSVC_VERSION >= 9: # Use the .lib files for the correct architecture if self.plat_name == 'win32': - suffix = '' + suffix = 'win32' else: # win-amd64 or win-ia64 suffix = self.plat_name[4:] diff --git a/Lib/distutils/command/wininst-14.0-amd64.exe b/Lib/distutils/command/wininst-14.0-amd64.exe new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..9affe13039517798970f5e3a8d9f4d1d13e79464 GIT binary patch literal 84480 zc%0h^=X% z;hNQTb=6&WMR!+G*A-obQddY?Xj)!Ni@b=t7TjGY1ht?G1%>&YbMB-s3cAnl`~Bzn zJbdWQ%$;-ZJ@?%6cF(96z6Z~nKAk+!`pHuiR{uu;ez(w@~g!lSyA6{qh zY#%;l?tK;63(Ft4xBTw=vrF$@u;2k-_Ut*?<^BcP_btelCr!@2|ABkvT$P@lV%Mv9 zQXP8x)}TKn@t5|gFLgWoPQCoylx=jsFm)6CKA0Mz-$kj-@H=?X2PrM|`=^vG^t&Nt z6V>5MDS_WF{_$vPBmJ(V=U@C|aVq}adSB^WY$wr$VwWJ?v%H@$_NnDl5_z4%#X@S* z06};fZa(38@~+hb1A%dwShPJltGw& z9{g4sgi+>R0Ba1w^H^rBAmsnZ(Bxjm;d;sm!fNxmpatP7-<%~r`0e_oju7_U)E6dO z5K68pzvph>-GXq%)4WdM8Tk8kUpOcHzlwti$`z0l>omE-@O`-ORSP*F^%43?guLnp zaL%jBE6PjZnrH&F5i;O+)Y;(X%zpp?sqa8593w&b0bJp^De?c-Kc%L{H)y4yI_ygy zd$r%#WSF4@A_o5#joY?uQ-U+>79}{}ZdHOld*(DHa3tH!x)k=Y!j396ZDRGaP(x*b zAXYyC7xgo+KDJe}MgNEw`;?lnZ;`@wG=XZd-T4PWU}~UC^Ix6U2AP^of}EPLf3Q-c z`38DelM=H1`y)XJDQ0bNJVjx9*5j~gd!5HOTm8e=ufrSLcdsDM-38u<0_)8L)?@_K z8x3O3JWbOSHp8A;+w&FXvpbc*rtDc~>z8z!gncVk*o*d6P{hTKda;|QSd6Nu z`Jx`uu)=nVvZ@5`vF8d=*`8C0pm{B>yf9Rit=V2i)L5qieH3ecN7&v5S%EI2Kf}Ws z-E1$^puToS)1cR{#uo>=ihU`pS+nH;RD6O`bHG=su)XV%W3_gm-9+9Nw9(UCm{5WH zY+`J-Q?p&()2{z=tYsJw=Dpp5;9*ftn|37U-u20JofnSnrhz};qg*59itC=Sqs(|h zvfU}Jd&2${b>O3yG0OwQV>{@P5}IOnYPM%z#x{4jYL5FYnr#}~#a}~ga}e9SHW}!e z?FvaI%{HDxDooXESL1cf7k(QwE>>6IIE8E%05-8(@EXcz>l9Vkb}4jAl4cuA#kWKM zG+XB?EPh-sK8hFrx*dw2M?>D^3C*w<^F&f-nZG+P;Q}WPS>oC154E z)Se5^^5xLPX`#uT>aywhWc0KPkh^^Y0AXJ);5iQp#4n&C>R;~=gn~xjP<)mF&+dh1 zG7GOq9jRUj1@jJYz̑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�(~ z9v=^DHCzSh3=b^&kv@73iB=!N>)K1x@vFU}J}zP`heruE1A7wQfFn)EuLcU^`wP1Q z<0GNiM}P=FE>M~dukK?N=96)~Z&IK9hW(Q8`--H#ieDAURev?T^VFmoz1uZ)bxE?aC0qwfW|c^pRHE^m$8P+k8_&pCN6dEjR+Cx`-yM z)o4qrZz|~1rF{Z|JyfcXL;GH=gOe-`D$3KK{R{N5KxSb&rTDeVCo#G>ZATV-Vsa2}(iuV{Xq;wauy1P-L`j5iB?rN=w7EfeQ1R52hhi& z`;>{i=o#kGzR7qV_RwDRv$fWLW1M~f-2LipnVttG+G9boq1$X5kvo*eoZ_nS zA6pH6z5>vm1ar9&=28c}fVoTr?br(v0K>s9Nzi62J?3P1_Cff6#RC*l?G;+2NQ`^{ zo4zFW`MK{Y>X7lg|3EA#`j^tb(7!(Z#J{BT%J@INI>galmO|T5c7^%-l{xiicKHvk z0nGYsMX%p4f4Bzx`|!decq=$wS41z zt9<8tpZt*gxct)m^8D)jTltOopYk~c#szi-&IJJlAqC=sw1UinxdlrLatiVawiT2X Olo$NpoRa@dkN*SA*))>? diff --git a/Lib/distutils/command/wininst-14.0.exe b/Lib/distutils/command/wininst-14.0.exe new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..3ce71b9f1b49afc4e6eb8a60ef551e7ced3e04b6 GIT binary patch literal 75264 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%0DJq-XcTi2~o!Z%}`tyfjuY{J3J_>W_I%yyxGC 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 13: + # v13 was skipped and should be v14 + majorVersion += 1 minorVersion = int(s[2:3]) / 10.0 # I don't think paths are affected by minor version in version 6 if majorVersion == 6: diff --git a/Lib/distutils/msvccompiler.py b/Lib/distutils/msvccompiler.py --- a/Lib/distutils/msvccompiler.py +++ b/Lib/distutils/msvccompiler.py @@ -157,6 +157,9 @@ i = i + len(prefix) s, rest = sys.version[i:].split(" ", 1) majorVersion = int(s[:-2]) - 6 + if majorVersion >= 13: + # v13 was skipped and should be v14 + majorVersion += 1 minorVersion = int(s[2:3]) / 10.0 # I don't think paths are affected by minor version in version 6 if majorVersion == 6: diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py @@ -9,6 +9,7 @@ Email: """ +import _imp import os import re import sys @@ -22,23 +23,15 @@ BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix) # Path to the base directory of the project. On Windows the binary may -# live in project/PCBuild9. If we're dealing with an x64 Windows build, -# it'll live in project/PCbuild/amd64. +# live in project/PCBuild/win32 or project/PCBuild/amd64. # set for cross builds if "_PYTHON_PROJECT_BASE" in os.environ: project_base = os.path.abspath(os.environ["_PYTHON_PROJECT_BASE"]) else: project_base = os.path.dirname(os.path.abspath(sys.executable)) -if os.name == "nt" and "pcbuild" in project_base[-8:].lower(): - project_base = os.path.abspath(os.path.join(project_base, os.path.pardir)) -# PC/VS7.1 -if os.name == "nt" and "\\pc\\v" in project_base[-10:].lower(): - project_base = os.path.abspath(os.path.join(project_base, os.path.pardir, - os.path.pardir)) -# PC/AMD64 -if os.name == "nt" and "\\pcbuild\\amd64" in project_base[-14:].lower(): - project_base = os.path.abspath(os.path.join(project_base, os.path.pardir, - os.path.pardir)) +if os.name == 'nt' and \ + project_base.lower().endswith(('\\pcbuild\\win32', '\\pcbuild\\amd64')): + project_base = os.path.dirname(os.path.dirname(project_base)) # python_build: (Boolean) if true, we're either building Python or # building an extension with an un-installed Python, so we use @@ -52,10 +45,8 @@ return False _sys_home = getattr(sys, '_home', None) if _sys_home and os.name == 'nt' and \ - _sys_home.lower().endswith(('pcbuild', 'pcbuild\\amd64')): - _sys_home = os.path.dirname(_sys_home) - if _sys_home.endswith('pcbuild'): # must be amd64 - _sys_home = os.path.dirname(_sys_home) + _sys_home.lower().endswith(('\\pcbuild\\win32', '\\pcbuild\\amd64')): + _sys_home = os.path.dirname(os.path.dirname(_sys_home)) def _python_build(): if _sys_home: return _is_python_source_dir(_sys_home) @@ -468,7 +459,7 @@ # XXX hmmm.. a normal install puts include files here g['INCLUDEPY'] = get_python_inc(plat_specific=0) - g['EXT_SUFFIX'] = '.pyd' + g['EXT_SUFFIX'] = _imp.extension_suffixes()[0] g['EXE'] = ".exe" g['VERSION'] = get_python_version().replace(".", "") g['BINDIR'] = os.path.dirname(os.path.abspath(sys.executable)) diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py @@ -109,13 +109,8 @@ # unable to retrieve the real program name _PROJECT_BASE = _safe_realpath(os.getcwd()) -if os.name == "nt" and "pcbuild" in _PROJECT_BASE[-8:].lower(): - _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir)) -# PC/VS7.1 -if os.name == "nt" and "\\pc\\v" in _PROJECT_BASE[-10:].lower(): - _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) -# PC/AMD64 -if os.name == "nt" and "\\pcbuild\\amd64" in _PROJECT_BASE[-14:].lower(): +if os.name == 'nt' and \ + _PROJECT_BASE.lower().endswith(('\\pcbuild\\win32', '\\pcbuild\\amd64')): _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) # set for cross builds @@ -130,10 +125,8 @@ _sys_home = getattr(sys, '_home', None) if _sys_home and os.name == 'nt' and \ - _sys_home.lower().endswith(('pcbuild', 'pcbuild\\amd64')): - _sys_home = os.path.dirname(_sys_home) - if _sys_home.endswith('pcbuild'): # must be amd64 - _sys_home = os.path.dirname(_sys_home) + _sys_home.lower().endswith(('\\pcbuild\\win32', '\\pcbuild\\amd64')): + _sys_home = os.path.dirname(os.path.dirname(_sys_home)) def is_python_build(check_home=False): if check_home and _sys_home: return _is_python_source_dir(_sys_home) diff --git a/Misc/NEWS b/Misc/NEWS --- a/Misc/NEWS +++ b/Misc/NEWS @@ -1356,6 +1356,11 @@ - Issue #17219: Add library build dir for Python extension cross-builds. +- Issue #22919: Windows build updated to support VC 14.0 (Visual Studio 2015), + which will be used for the official release. + +- Issue #21236: Build _msi.pyd with cabinet.lib instead of fci.lib + C API ----- diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -1046,15 +1046,33 @@ /* The actual size of the structure is determined at runtime. * Only the first items must be present. */ + +#if _MSC_VER >= 1900 + +typedef struct { + CRITICAL_SECTION lock; + intptr_t osfhnd; + __int64 startpos; + char osfile; +} my_ioinfo; + +#define IOINFO_L2E 6 +#define IOINFO_ARRAYS 128 + +#else + typedef struct { intptr_t osfhnd; char osfile; } my_ioinfo; +#define IOINFO_L2E 5 +#define IOINFO_ARRAYS 64 + +#endif + extern __declspec(dllimport) char * __pioinfo[]; -#define IOINFO_L2E 5 #define IOINFO_ARRAY_ELTS (1 << IOINFO_L2E) -#define IOINFO_ARRAYS 64 #define _NHANDLE_ (IOINFO_ARRAYS * IOINFO_ARRAY_ELTS) #define FOPEN 0x01 #define _NO_CONSOLE_FILENO (intptr_t)-2 diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -284,6 +284,11 @@ # include # endif +#if defined(_MSC_VER) && _MSC_VER >= 1800 +/* Provides the IsWindows7SP1OrGreater() function */ +#include +#endif + #endif #include @@ -5845,11 +5850,15 @@ #ifdef MS_WINDOWS if (support_wsa_no_inherit == -1) { +#if defined(_MSC_VER) && _MSC_VER >= 1800 + support_wsa_no_inherit = IsWindows7SP1OrGreater(); +#else DWORD version = GetVersion(); DWORD major = (DWORD)LOBYTE(LOWORD(version)); DWORD minor = (DWORD)HIBYTE(LOWORD(version)); /* need Windows 7 SP1, 2008 R2 SP1 or later */ - support_wsa_no_inherit = (major >= 6 && minor >= 1); + support_wsa_no_inherit = major > 6 || (major == 6 && minor >= 1); +#endif } #endif diff --git a/Modules/timemodule.c b/Modules/timemodule.c --- a/Modules/timemodule.c +++ b/Modules/timemodule.c @@ -34,10 +34,6 @@ static int floatsleep(double); static PyObject* floattime(_Py_clock_info_t *info); -#ifdef MS_WINDOWS -static OSVERSIONINFOEX winver; -#endif - static PyObject * time_time(PyObject *self, PyObject *unused) { @@ -1359,15 +1355,6 @@ if (PyStructSequence_InitType2(&StructTimeType, &struct_time_type_desc) < 0) return NULL; - -#ifdef MS_WINDOWS - winver.dwOSVersionInfoSize = sizeof(winver); - if (!GetVersionEx((OSVERSIONINFO*)&winver)) { - Py_DECREF(m); - PyErr_SetFromWindowsErr(0); - return NULL; - } -#endif } Py_INCREF(&StructTimeType); #ifdef HAVE_STRUCT_TM_TM_ZONE diff --git a/PC/VS9.0/_bz2.vcproj b/PC/VS9.0/_bz2.vcproj deleted file mode 100644 --- a/PC/VS9.0/_bz2.vcproj +++ /dev/null @@ -1,581 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/_ctypes.vcproj b/PC/VS9.0/_ctypes.vcproj deleted file mode 100644 --- a/PC/VS9.0/_ctypes.vcproj +++ /dev/null @@ -1,705 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/_ctypes_test.vcproj b/PC/VS9.0/_ctypes_test.vcproj deleted file mode 100644 --- a/PC/VS9.0/_ctypes_test.vcproj +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/_decimal.vcproj b/PC/VS9.0/_decimal.vcproj deleted file mode 100644 --- a/PC/VS9.0/_decimal.vcproj +++ /dev/null @@ -1,743 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/_elementtree.vcproj b/PC/VS9.0/_elementtree.vcproj deleted file mode 100644 --- a/PC/VS9.0/_elementtree.vcproj +++ /dev/null @@ -1,613 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/_hashlib.vcproj b/PC/VS9.0/_hashlib.vcproj deleted file mode 100644 --- a/PC/VS9.0/_hashlib.vcproj +++ /dev/null @@ -1,537 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/_lzma.vcproj b/PC/VS9.0/_lzma.vcproj deleted file mode 100644 --- a/PC/VS9.0/_lzma.vcproj +++ /dev/null @@ -1,537 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/_msi.vcproj b/PC/VS9.0/_msi.vcproj deleted file mode 100644 --- a/PC/VS9.0/_msi.vcproj +++ /dev/null @@ -1,529 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/_multiprocessing.vcproj b/PC/VS9.0/_multiprocessing.vcproj deleted file mode 100644 --- a/PC/VS9.0/_multiprocessing.vcproj +++ /dev/null @@ -1,541 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/_socket.vcproj b/PC/VS9.0/_socket.vcproj deleted file mode 100644 --- a/PC/VS9.0/_socket.vcproj +++ /dev/null @@ -1,537 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/_sqlite3.vcproj b/PC/VS9.0/_sqlite3.vcproj deleted file mode 100644 --- a/PC/VS9.0/_sqlite3.vcproj +++ /dev/null @@ -1,609 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/_ssl.vcproj b/PC/VS9.0/_ssl.vcproj deleted file mode 100644 --- a/PC/VS9.0/_ssl.vcproj +++ /dev/null @@ -1,537 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/_testbuffer.vcproj b/PC/VS9.0/_testbuffer.vcproj deleted file mode 100644 --- a/PC/VS9.0/_testbuffer.vcproj +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/_testcapi.vcproj b/PC/VS9.0/_testcapi.vcproj deleted file mode 100644 --- a/PC/VS9.0/_testcapi.vcproj +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/_testimportmultiple.vcproj b/PC/VS9.0/_testimportmultiple.vcproj deleted file mode 100644 --- a/PC/VS9.0/_testimportmultiple.vcproj +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/_tkinter.vcproj b/PC/VS9.0/_tkinter.vcproj deleted file mode 100644 --- a/PC/VS9.0/_tkinter.vcproj +++ /dev/null @@ -1,541 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/bdist_wininst.vcproj b/PC/VS9.0/bdist_wininst.vcproj deleted file mode 100644 --- a/PC/VS9.0/bdist_wininst.vcproj +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/debug.vsprops b/PC/VS9.0/debug.vsprops deleted file mode 100644 --- a/PC/VS9.0/debug.vsprops +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/PC/VS9.0/kill_python.c b/PC/VS9.0/kill_python.c deleted file mode 100644 --- a/PC/VS9.0/kill_python.c +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Helper program for killing lingering python[_d].exe processes before - * building, thus attempting to avoid build failures due to files being - * locked. - */ - -#include -#include -#include -#include - -#pragma comment(lib, "psapi") - -#ifdef _DEBUG -#define PYTHON_EXE (L"python_d.exe") -#define PYTHON_EXE_LEN (12) -#define KILL_PYTHON_EXE (L"kill_python_d.exe") -#define KILL_PYTHON_EXE_LEN (17) -#else -#define PYTHON_EXE (L"python.exe") -#define PYTHON_EXE_LEN (10) -#define KILL_PYTHON_EXE (L"kill_python.exe") -#define KILL_PYTHON_EXE_LEN (15) -#endif - -int -main(int argc, char **argv) -{ - HANDLE hp, hsp, hsm; /* process, snapshot processes, snapshot modules */ - DWORD dac, our_pid; - size_t len; - wchar_t path[MAX_PATH+1]; - - MODULEENTRY32W me; - PROCESSENTRY32W pe; - - me.dwSize = sizeof(MODULEENTRY32W); - pe.dwSize = sizeof(PROCESSENTRY32W); - - memset(path, 0, MAX_PATH+1); - - our_pid = GetCurrentProcessId(); - - hsm = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, our_pid); - if (hsm == INVALID_HANDLE_VALUE) { - printf("CreateToolhelp32Snapshot[1] failed: %d\n", GetLastError()); - return 1; - } - - if (!Module32FirstW(hsm, &me)) { - printf("Module32FirstW[1] failed: %d\n", GetLastError()); - CloseHandle(hsm); - return 1; - } - - /* - * Enumerate over the modules for the current process in order to find - * kill_process[_d].exe, then take a note of the directory it lives in. - */ - do { - if (_wcsnicmp(me.szModule, KILL_PYTHON_EXE, KILL_PYTHON_EXE_LEN)) - continue; - - len = wcsnlen_s(me.szExePath, MAX_PATH) - KILL_PYTHON_EXE_LEN; - wcsncpy_s(path, MAX_PATH+1, me.szExePath, len); - - break; - - } while (Module32NextW(hsm, &me)); - - CloseHandle(hsm); - - if (path == NULL) { - printf("failed to discern directory of running process\n"); - return 1; - } - - /* - * Take a snapshot of system processes. Enumerate over the snapshot, - * looking for python processes. When we find one, verify it lives - * in the same directory we live in. If it does, kill it. If we're - * unable to kill it, treat this as a fatal error and return 1. - * - * The rationale behind this is that we're called at the start of the - * build process on the basis that we'll take care of killing any - * running instances, such that the build won't encounter permission - * denied errors during linking. If we can't kill one of the processes, - * we can't provide this assurance, and the build shouldn't start. - */ - - hsp = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); - if (hsp == INVALID_HANDLE_VALUE) { - printf("CreateToolhelp32Snapshot[2] failed: %d\n", GetLastError()); - return 1; - } - - if (!Process32FirstW(hsp, &pe)) { - printf("Process32FirstW failed: %d\n", GetLastError()); - CloseHandle(hsp); - return 1; - } - - dac = PROCESS_QUERY_INFORMATION | PROCESS_VM_READ | PROCESS_TERMINATE; - do { - - /* - * XXX TODO: if we really wanted to be fancy, we could check the - * modules for all processes (not just the python[_d].exe ones) - * and see if any of our DLLs are loaded (i.e. python35[_d].dll), - * as that would also inhibit our ability to rebuild the solution. - * Not worth loosing sleep over though; for now, a simple check - * for just the python executable should be sufficient. - */ - - if (_wcsnicmp(pe.szExeFile, PYTHON_EXE, PYTHON_EXE_LEN)) - /* This isn't a python process. */ - continue; - - /* It's a python process, so figure out which directory it's in... */ - hsm = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pe.th32ProcessID); - if (hsm == INVALID_HANDLE_VALUE) - /* - * If our module snapshot fails (which will happen if we don't own - * the process), just ignore it and continue. (It seems different - * versions of Windows return different values for GetLastError() - * in this situation; it's easier to just ignore it and move on vs. - * stopping the build for what could be a false positive.) - */ - continue; - - if (!Module32FirstW(hsm, &me)) { - printf("Module32FirstW[2] failed: %d\n", GetLastError()); - CloseHandle(hsp); - CloseHandle(hsm); - return 1; - } - - do { - if (_wcsnicmp(me.szModule, PYTHON_EXE, PYTHON_EXE_LEN)) - /* Wrong module, we're looking for python[_d].exe... */ - continue; - - if (_wcsnicmp(path, me.szExePath, len)) - /* Process doesn't live in our directory. */ - break; - - /* Python process residing in the right directory, kill it! */ - hp = OpenProcess(dac, FALSE, pe.th32ProcessID); - if (!hp) { - printf("OpenProcess failed: %d\n", GetLastError()); - CloseHandle(hsp); - CloseHandle(hsm); - return 1; - } - - if (!TerminateProcess(hp, 1)) { - printf("TerminateProcess failed: %d\n", GetLastError()); - CloseHandle(hsp); - CloseHandle(hsm); - CloseHandle(hp); - return 1; - } - - CloseHandle(hp); - break; - - } while (Module32NextW(hsm, &me)); - - CloseHandle(hsm); - - } while (Process32NextW(hsp, &pe)); - - CloseHandle(hsp); - - return 0; -} - -/* vi: set ts=8 sw=4 sts=4 expandtab */ diff --git a/PC/VS9.0/kill_python.vcproj b/PC/VS9.0/kill_python.vcproj deleted file mode 100644 --- a/PC/VS9.0/kill_python.vcproj +++ /dev/null @@ -1,279 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/make_buildinfo.c b/PC/VS9.0/make_buildinfo.c deleted file mode 100644 --- a/PC/VS9.0/make_buildinfo.c +++ /dev/null @@ -1,195 +0,0 @@ -#include -#include -#include -#include -#include - -#define CMD_SIZE 500 - -/* This file creates the getbuildinfo.o object, by first - invoking subwcrev.exe (if found), and then invoking cl.exe. - As a side effect, it might generate PCBuild\getbuildinfo2.c - also. If this isn't a subversion checkout, or subwcrev isn't - found, it compiles ..\\..\\Modules\\getbuildinfo.c instead. - - Currently, subwcrev.exe is found from the registry entries - of TortoiseSVN. - - No attempt is made to place getbuildinfo.o into the proper - binary directory. This isn't necessary, as this tool is - invoked as a pre-link step for pythoncore, so that overwrites - any previous getbuildinfo.o. - - However, if a second argument is provided, this will be used - as a temporary directory where any getbuildinfo2.c and - getbuildinfo.o files are put. This is useful if multiple - configurations are being built in parallel, to avoid them - trampling each other's files. - -*/ - -int make_buildinfo2(const char *tmppath) -{ - struct _stat st; - HKEY hTortoise; - char command[CMD_SIZE+1]; - DWORD type, size; - if (_stat(".svn", &st) < 0) - return 0; - /* Allow suppression of subwcrev.exe invocation if a no_subwcrev file is present. */ - if (_stat("no_subwcrev", &st) == 0) - return 0; - if (RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\TortoiseSVN", &hTortoise) != ERROR_SUCCESS && - RegOpenKey(HKEY_CURRENT_USER, "Software\\TortoiseSVN", &hTortoise) != ERROR_SUCCESS) - /* Tortoise not installed */ - return 0; - command[0] = '"'; /* quote the path to the executable */ - size = sizeof(command) - 1; - if (RegQueryValueEx(hTortoise, "Directory", 0, &type, command+1, &size) != ERROR_SUCCESS || - type != REG_SZ) - /* Registry corrupted */ - return 0; - strcat_s(command, CMD_SIZE, "bin\\subwcrev.exe"); - if (_stat(command+1, &st) < 0) - /* subwcrev.exe not part of the release */ - return 0; - strcat_s(command, CMD_SIZE, "\" ..\\.. ..\\..\\Modules\\getbuildinfo.c \""); - strcat_s(command, CMD_SIZE, tmppath); /* quoted tmppath */ - strcat_s(command, CMD_SIZE, "getbuildinfo2.c\""); - - puts(command); fflush(stdout); - if (system(command) < 0) - return 0; - return 1; -} - -const char DELIMS[] = { " \n" }; - -int get_mercurial_info(char * hgbranch, char * hgtag, char * hgrev, int size) -{ - int result = 0; - char filename[CMD_SIZE]; - char cmdline[CMD_SIZE]; - - strcpy_s(filename, CMD_SIZE, "tmpXXXXXX"); - if (_mktemp_s(filename, CMD_SIZE) == 0) { - int rc; - - strcpy_s(cmdline, CMD_SIZE, "hg id -bit > "); - strcat_s(cmdline, CMD_SIZE, filename); - rc = system(cmdline); - if (rc == 0) { - FILE * fp; - - if (fopen_s(&fp, filename, "r") == 0) { - char * cp = fgets(cmdline, CMD_SIZE, fp); - - if (cp) { - char * context = NULL; - char * tp = strtok_s(cp, DELIMS, &context); - if (tp) { - strcpy_s(hgrev, size, tp); - tp = strtok_s(NULL, DELIMS, &context); - if (tp) { - strcpy_s(hgbranch, size, tp); - tp = strtok_s(NULL, DELIMS, &context); - if (tp) { - strcpy_s(hgtag, size, tp); - result = 1; - } - } - } - } - fclose(fp); - } - } - _unlink(filename); - } - return result; -} - -int main(int argc, char*argv[]) -{ - char command[CMD_SIZE] = "cl.exe -c -D_WIN32 -DUSE_DL_EXPORT -D_WINDOWS -DWIN32 -D_WINDLL "; - char tmppath[CMD_SIZE] = ""; - int do_unlink, result; - char *tmpdir = NULL; - if (argc <= 2 || argc > 3) { - fprintf(stderr, "make_buildinfo $(ConfigurationName) [tmpdir]\n"); - return EXIT_FAILURE; - } - if (strcmp(argv[1], "Release") == 0) { - strcat_s(command, CMD_SIZE, "-MD "); - } - else if (strcmp(argv[1], "Debug") == 0) { - strcat_s(command, CMD_SIZE, "-D_DEBUG -MDd "); - } - else if (strcmp(argv[1], "ReleaseItanium") == 0) { - strcat_s(command, CMD_SIZE, "-MD /USECL:MS_ITANIUM "); - } - else if (strcmp(argv[1], "ReleaseAMD64") == 0) { - strcat_s(command, CMD_SIZE, "-MD "); - strcat_s(command, CMD_SIZE, "-MD /USECL:MS_OPTERON "); - } - else { - fprintf(stderr, "unsupported configuration %s\n", argv[1]); - return EXIT_FAILURE; - } - if (argc > 2) { - tmpdir = argv[2]; - strcat_s(tmppath, _countof(tmppath), tmpdir); - /* Hack fix for bad command line: If the command is issued like this: - * $(SolutionDir)make_buildinfo.exe" Debug "$(IntDir)" - * we will get a trailing quote because IntDir ends with a backslash that then - * escapes the final ". To simplify the life for developers, catch that problem - * here by cutting it off. - * The proper command line, btw is: - * $(SolutionDir)make_buildinfo.exe" Debug "$(IntDir)\" - * Hooray for command line parsing on windows. - */ - if (strlen(tmppath) > 0 && tmppath[strlen(tmppath)-1] == '"') - tmppath[strlen(tmppath)-1] = '\0'; - strcat_s(tmppath, _countof(tmppath), "\\"); - } - - if ((do_unlink = make_buildinfo2(tmppath))) { - strcat_s(command, CMD_SIZE, "\""); - strcat_s(command, CMD_SIZE, tmppath); - strcat_s(command, CMD_SIZE, "getbuildinfo2.c\" -DSUBWCREV "); - } - else { - char hgtag[CMD_SIZE]; - char hgbranch[CMD_SIZE]; - char hgrev[CMD_SIZE]; - - if (get_mercurial_info(hgbranch, hgtag, hgrev, CMD_SIZE)) { - strcat_s(command, CMD_SIZE, "-DHGBRANCH=\\\""); - strcat_s(command, CMD_SIZE, hgbranch); - strcat_s(command, CMD_SIZE, "\\\""); - - strcat_s(command, CMD_SIZE, " -DHGTAG=\\\""); - strcat_s(command, CMD_SIZE, hgtag); - strcat_s(command, CMD_SIZE, "\\\""); - - strcat_s(command, CMD_SIZE, " -DHGVERSION=\\\""); - strcat_s(command, CMD_SIZE, hgrev); - strcat_s(command, CMD_SIZE, "\\\" "); - } - strcat_s(command, CMD_SIZE, "..\\..\\Modules\\getbuildinfo.c"); - } - strcat_s(command, CMD_SIZE, " -Fo\""); - strcat_s(command, CMD_SIZE, tmppath); - strcat_s(command, CMD_SIZE, "getbuildinfo.o\" -I..\\..\\Include -I..\\..\\PC"); - puts(command); fflush(stdout); - result = system(command); - if (do_unlink) { - command[0] = '\0'; - strcat_s(command, CMD_SIZE, "\""); - strcat_s(command, CMD_SIZE, tmppath); - strcat_s(command, CMD_SIZE, "getbuildinfo2.c\""); - _unlink(command); - } - if (result < 0) - return EXIT_FAILURE; - return 0; -} diff --git a/PC/VS9.0/make_buildinfo.vcproj b/PC/VS9.0/make_buildinfo.vcproj deleted file mode 100644 --- a/PC/VS9.0/make_buildinfo.vcproj +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/make_versioninfo.vcproj b/PC/VS9.0/make_versioninfo.vcproj deleted file mode 100644 --- a/PC/VS9.0/make_versioninfo.vcproj +++ /dev/null @@ -1,324 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/pcbuild.sln b/PC/VS9.0/pcbuild.sln deleted file mode 100644 --- a/PC/VS9.0/pcbuild.sln +++ /dev/null @@ -1,690 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} = {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_versioninfo", "make_versioninfo.vcproj", "{F0E0541E-F17D-430B-97C4-93ADF0DD284E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}" - ProjectSection(ProjectDependencies) = postProject - {F0E0541E-F17D-430B-97C4-93ADF0DD284E} = {F0E0541E-F17D-430B-97C4-93ADF0DD284E} - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} - {C73F0EC1-358B-4177-940F-0846AC8B04CD} = {C73F0EC1-358B-4177-940F-0846AC8B04CD} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcproj", "{F4229CC3-873C-49AE-9729-DD308ED4CD4A}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buildinfo.vcproj", "{C73F0EC1-358B-4177-940F-0846AC8B04CD}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{553EC33E-9816-4996-A660-5D6186A0B0B3}" - ProjectSection(SolutionItems) = preProject - ..\..\Modules\getbuildinfo.c = ..\..\Modules\getbuildinfo.c - readme.txt = readme.txt - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcproj", "{28B5D777-DDF2-4B6B-B34F-31D938813856}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_decimal", "_decimal.vcproj", "{0E9791DB-593A-465F-98BC-681011311617}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes", "_ctypes.vcproj", "{0E9791DB-593A-465F-98BC-681011311618}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes_test", "_ctypes_test.vcproj", "{9EC7190A-249F-4180-A900-548FDCF3055F}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_elementtree", "_elementtree.vcproj", "{17E1E049-C309-4D79-843F-AE483C264AEA}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_msi", "_msi.vcproj", "{31FFC478-7B4A-43E8-9954-8D03E2187E9C}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket.vcproj", "{86937F53-C189-40EF-8CE8-8759D8E7D480}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3.vcproj", "{13CECB97-4119-4316-9D42-8534019A5A44}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - {A1A295E5-463C-437F-81CA-1F32367685DA} = {A1A295E5-463C-437F-81CA-1F32367685DA} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcproj", "{C6E20F84-3247-4AD6-B051-B073268F73BA}" - ProjectSection(ProjectDependencies) = postProject - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} - {86937F53-C189-40EF-8CE8-8759D8E7D480} = {86937F53-C189-40EF-8CE8-8759D8E7D480} - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0} = {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0} - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcproj", "{6901D91C-6E48-4BB7-9FEC-700C8131DF1D}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testimportmultiple", "_testimportmultiple.vcproj", "{36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_tkinter", "_tkinter.vcproj", "{4946ECAC-2E69-4BF8-A90A-F5136F5094DF}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bz2", "_bz2.vcproj", "{73FCD2BD-F133-46B7-8EC1-144CD82A59D5}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_lzma", "_lzma.vcproj", "{F9D71780-F393-11E0-BE50-0800200C9A66}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "select", "select.vcproj", "{18CAE28C-B454-46C1-87A0-493D91D97F03}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata.vcproj", "{ECC7CEAC-A5E5-458E-BB9E-2413CC847881}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat.vcproj", "{D06B6426-4762-44CC-8BAD-D79052507F2F}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bdist_wininst", "bdist_wininst.vcproj", "{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_hashlib", "_hashlib.vcproj", "{447F05A8-F581-4CAC-A466-5AC7936E207E}" - ProjectSection(ProjectDependencies) = postProject - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0} = {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0} - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite3", "sqlite3.vcproj", "{A1A295E5-463C-437F-81CA-1F32367685DA}" - ProjectSection(ProjectDependencies) = postProject - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_multiprocessing", "_multiprocessing.vcproj", "{9E48B300-37D1-11DD-8C41-005056C00008}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl", "ssl.vcproj", "{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}" - ProjectSection(ProjectDependencies) = postProject - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kill_python", "kill_python.vcproj", "{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python3dll", "python3dll.vcproj", "{885D4898-D08D-4091-9C40-C700CFE3FC5A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xxlimited", "xxlimited.vcproj", "{F749B822-B489-4CA5-A3AD-CE078F5F338A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testbuffer", "_testbuffer.vcproj", "{A2697BD3-28C1-4AEC-9106-8B748639FD16}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - PGInstrument|Win32 = PGInstrument|Win32 - PGInstrument|x64 = PGInstrument|x64 - PGUpdate|Win32 = PGUpdate|Win32 - PGUpdate|x64 = PGUpdate|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.ActiveCfg = Debug|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.Build.0 = Debug|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.ActiveCfg = Debug|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.Build.0 = Debug|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.ActiveCfg = Release|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.Build.0 = Release|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.ActiveCfg = Release|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.Build.0 = Release|x64 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.ActiveCfg = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.Build.0 = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.ActiveCfg = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.Build.0 = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.Build.0 = Release|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.ActiveCfg = Debug|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.Build.0 = Debug|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.ActiveCfg = Debug|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.Build.0 = Debug|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.ActiveCfg = Release|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.Build.0 = Release|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.ActiveCfg = Release|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.Build.0 = Release|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.ActiveCfg = Debug|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.Build.0 = Debug|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.ActiveCfg = Debug|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.Build.0 = Debug|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.ActiveCfg = Release|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.Build.0 = Release|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.ActiveCfg = Release|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.Build.0 = Release|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.ActiveCfg = Debug|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.Build.0 = Debug|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.ActiveCfg = Debug|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.Build.0 = Debug|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.ActiveCfg = Release|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.Build.0 = Release|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.ActiveCfg = Release|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.Build.0 = Release|x64 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.Build.0 = Release|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.ActiveCfg = Debug|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.Build.0 = Debug|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.ActiveCfg = Debug|x64 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.Build.0 = Debug|x64 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|Win32.ActiveCfg = Release|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|Win32.Build.0 = Release|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|x64.ActiveCfg = Release|x64 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|x64.Build.0 = Release|x64 - {0E9791DB-593A-465F-98BC-681011311617}.Debug|Win32.ActiveCfg = Debug|Win32 - {0E9791DB-593A-465F-98BC-681011311617}.Debug|Win32.Build.0 = Debug|Win32 - {0E9791DB-593A-465F-98BC-681011311617}.Debug|x64.ActiveCfg = Debug|x64 - {0E9791DB-593A-465F-98BC-681011311617}.Debug|x64.Build.0 = Debug|x64 - {0E9791DB-593A-465F-98BC-681011311617}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {0E9791DB-593A-465F-98BC-681011311617}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {0E9791DB-593A-465F-98BC-681011311617}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {0E9791DB-593A-465F-98BC-681011311617}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {0E9791DB-593A-465F-98BC-681011311617}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {0E9791DB-593A-465F-98BC-681011311617}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {0E9791DB-593A-465F-98BC-681011311617}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {0E9791DB-593A-465F-98BC-681011311617}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {0E9791DB-593A-465F-98BC-681011311617}.Release|Win32.ActiveCfg = Release|Win32 - {0E9791DB-593A-465F-98BC-681011311617}.Release|Win32.Build.0 = Release|Win32 - {0E9791DB-593A-465F-98BC-681011311617}.Release|x64.ActiveCfg = Release|x64 - {0E9791DB-593A-465F-98BC-681011311617}.Release|x64.Build.0 = Release|x64 - {0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.ActiveCfg = Debug|Win32 - {0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.Build.0 = Debug|Win32 - {0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.ActiveCfg = Debug|x64 - {0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.Build.0 = Debug|x64 - {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.ActiveCfg = Release|Win32 - {0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.Build.0 = Release|Win32 - {0E9791DB-593A-465F-98BC-681011311618}.Release|x64.ActiveCfg = Release|x64 - {0E9791DB-593A-465F-98BC-681011311618}.Release|x64.Build.0 = Release|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.ActiveCfg = Debug|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.Build.0 = Debug|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.ActiveCfg = Debug|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.Build.0 = Debug|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.ActiveCfg = Release|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.Build.0 = Release|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.ActiveCfg = Release|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.Build.0 = Release|x64 - {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|Win32.ActiveCfg = Debug|Win32 - {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|Win32.Build.0 = Debug|Win32 - {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|x64.ActiveCfg = Debug|x64 - {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|x64.Build.0 = Debug|x64 - {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|Win32.ActiveCfg = Release|Win32 - {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|Win32.Build.0 = Release|Win32 - {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|x64.ActiveCfg = Release|x64 - {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|x64.Build.0 = Release|x64 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|Win32.ActiveCfg = Debug|Win32 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|Win32.Build.0 = Debug|Win32 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|x64.ActiveCfg = Debug|x64 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|x64.Build.0 = Debug|x64 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|Win32.ActiveCfg = Release|Win32 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|Win32.Build.0 = Release|Win32 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|x64.ActiveCfg = Release|x64 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|x64.Build.0 = Release|x64 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|Win32.ActiveCfg = Debug|Win32 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|Win32.Build.0 = Debug|Win32 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|x64.ActiveCfg = Debug|x64 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|x64.Build.0 = Debug|x64 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|Win32.ActiveCfg = Release|Win32 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|Win32.Build.0 = Release|Win32 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|x64.ActiveCfg = Release|x64 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|x64.Build.0 = Release|x64 - {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|Win32.ActiveCfg = Debug|Win32 - {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|Win32.Build.0 = Debug|Win32 - {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|x64.ActiveCfg = Debug|x64 - {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|x64.Build.0 = Debug|x64 - {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {13CECB97-4119-4316-9D42-8534019A5A44}.Release|Win32.ActiveCfg = Release|Win32 - {13CECB97-4119-4316-9D42-8534019A5A44}.Release|Win32.Build.0 = Release|Win32 - {13CECB97-4119-4316-9D42-8534019A5A44}.Release|x64.ActiveCfg = Release|x64 - {13CECB97-4119-4316-9D42-8534019A5A44}.Release|x64.Build.0 = Release|x64 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|Win32.ActiveCfg = Debug|Win32 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|Win32.Build.0 = Debug|Win32 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|x64.ActiveCfg = Debug|x64 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|x64.Build.0 = Debug|x64 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|Win32.ActiveCfg = Release|Win32 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|Win32.Build.0 = Release|Win32 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|x64.ActiveCfg = Release|x64 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|x64.Build.0 = Release|x64 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|Win32.ActiveCfg = Debug|Win32 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|Win32.Build.0 = Debug|Win32 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|x64.ActiveCfg = Debug|x64 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|x64.Build.0 = Debug|x64 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.ActiveCfg = Release|Win32 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.Build.0 = Release|Win32 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.ActiveCfg = Release|x64 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.Build.0 = Release|x64 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Debug|Win32.ActiveCfg = Debug|Win32 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Debug|Win32.Build.0 = Debug|Win32 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Debug|x64.ActiveCfg = Debug|x64 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Debug|x64.Build.0 = Debug|x64 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Release|Win32.ActiveCfg = Release|Win32 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Release|Win32.Build.0 = Release|Win32 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Release|x64.ActiveCfg = Release|x64 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Release|x64.Build.0 = Release|x64 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.ActiveCfg = Debug|Win32 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.Build.0 = Debug|Win32 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.ActiveCfg = Debug|x64 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.Build.0 = Debug|x64 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|Win32.ActiveCfg = Release|Win32 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|Win32.Build.0 = Release|Win32 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|x64.ActiveCfg = Release|x64 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|x64.Build.0 = Release|x64 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|Win32.ActiveCfg = Debug|Win32 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|Win32.Build.0 = Debug|Win32 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|x64.ActiveCfg = Debug|x64 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|x64.Build.0 = Debug|x64 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|Win32.ActiveCfg = Release|Win32 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|Win32.Build.0 = Release|Win32 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|x64.ActiveCfg = Release|x64 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|x64.Build.0 = Release|x64 - {F9D71780-F393-11E0-BE50-0800200C9A66}.Debug|Win32.ActiveCfg = Debug|Win32 - {F9D71780-F393-11E0-BE50-0800200C9A66}.Debug|Win32.Build.0 = Debug|Win32 - {F9D71780-F393-11E0-BE50-0800200C9A66}.Debug|x64.ActiveCfg = Debug|x64 - {F9D71780-F393-11E0-BE50-0800200C9A66}.Debug|x64.Build.0 = Debug|x64 - {F9D71780-F393-11E0-BE50-0800200C9A66}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {F9D71780-F393-11E0-BE50-0800200C9A66}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {F9D71780-F393-11E0-BE50-0800200C9A66}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {F9D71780-F393-11E0-BE50-0800200C9A66}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {F9D71780-F393-11E0-BE50-0800200C9A66}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {F9D71780-F393-11E0-BE50-0800200C9A66}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {F9D71780-F393-11E0-BE50-0800200C9A66}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {F9D71780-F393-11E0-BE50-0800200C9A66}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {F9D71780-F393-11E0-BE50-0800200C9A66}.Release|Win32.ActiveCfg = Release|Win32 - {F9D71780-F393-11E0-BE50-0800200C9A66}.Release|Win32.Build.0 = Release|Win32 - {F9D71780-F393-11E0-BE50-0800200C9A66}.Release|x64.ActiveCfg = Release|x64 - {F9D71780-F393-11E0-BE50-0800200C9A66}.Release|x64.Build.0 = Release|x64 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|Win32.ActiveCfg = Debug|Win32 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|Win32.Build.0 = Debug|Win32 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|x64.ActiveCfg = Debug|x64 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|x64.Build.0 = Debug|x64 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|Win32.ActiveCfg = Release|Win32 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|Win32.Build.0 = Release|Win32 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|x64.ActiveCfg = Release|x64 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|x64.Build.0 = Release|x64 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|Win32.ActiveCfg = Debug|Win32 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|Win32.Build.0 = Debug|Win32 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|x64.ActiveCfg = Debug|x64 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|x64.Build.0 = Debug|x64 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|Win32.ActiveCfg = Release|Win32 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|Win32.Build.0 = Release|Win32 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|x64.ActiveCfg = Release|x64 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|x64.Build.0 = Release|x64 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|Win32.ActiveCfg = Debug|Win32 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|Win32.Build.0 = Debug|Win32 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|x64.ActiveCfg = Debug|x64 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|x64.Build.0 = Debug|x64 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.ActiveCfg = Release|Win32 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.Build.0 = Release|Win32 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.ActiveCfg = Release|x64 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.Build.0 = Release|x64 - {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|Win32.ActiveCfg = Release|Win32 - {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|x64.ActiveCfg = Release|x64 - {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|Win32.ActiveCfg = Release|Win32 - {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|x64.ActiveCfg = Release|x64 - {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|Win32.ActiveCfg = Release|Win32 - {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|x64.ActiveCfg = Release|x64 - {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|Win32.ActiveCfg = Release|Win32 - {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|x64.ActiveCfg = Release|x64 - {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|Win32.ActiveCfg = Debug|Win32 - {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|Win32.Build.0 = Debug|Win32 - {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|x64.ActiveCfg = Debug|x64 - {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|x64.Build.0 = Debug|x64 - {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|Win32.ActiveCfg = Release|Win32 - {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|Win32.Build.0 = Release|Win32 - {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|x64.ActiveCfg = Release|x64 - {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|x64.Build.0 = Release|x64 - {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|Win32.ActiveCfg = Debug|Win32 - {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|Win32.Build.0 = Debug|Win32 - {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|x64.ActiveCfg = Debug|x64 - {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|x64.Build.0 = Debug|x64 - {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|Win32.ActiveCfg = Release|Win32 - {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|Win32.Build.0 = Release|Win32 - {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|x64.ActiveCfg = Release|x64 - {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|x64.Build.0 = Release|x64 - {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|Win32.ActiveCfg = Debug|Win32 - {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|Win32.Build.0 = Debug|Win32 - {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|x64.ActiveCfg = Debug|x64 - {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|x64.Build.0 = Debug|x64 - {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {9E48B300-37D1-11DD-8C41-005056C00008}.Release|Win32.ActiveCfg = Release|Win32 - {9E48B300-37D1-11DD-8C41-005056C00008}.Release|Win32.Build.0 = Release|Win32 - {9E48B300-37D1-11DD-8C41-005056C00008}.Release|x64.ActiveCfg = Release|x64 - {9E48B300-37D1-11DD-8C41-005056C00008}.Release|x64.Build.0 = Release|x64 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Debug|Win32.ActiveCfg = Debug|Win32 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Debug|Win32.Build.0 = Debug|Win32 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Debug|x64.ActiveCfg = Debug|x64 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Debug|x64.Build.0 = Debug|x64 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Release|Win32.ActiveCfg = Release|Win32 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Release|Win32.Build.0 = Release|Win32 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Release|x64.ActiveCfg = Release|x64 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Release|x64.Build.0 = Release|x64 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|Win32.ActiveCfg = Debug|Win32 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|Win32.Build.0 = Debug|Win32 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|x64.ActiveCfg = Debug|x64 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|x64.Build.0 = Debug|x64 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|Win32.ActiveCfg = Release|Win32 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|Win32.Build.0 = Release|Win32 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|x64.ActiveCfg = Release|x64 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|x64.Build.0 = Release|x64 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|Win32.ActiveCfg = Release|Win32 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|Win32.Build.0 = Release|Win32 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|x64.ActiveCfg = Release|x64 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|x64.Build.0 = Release|x64 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|Win32.ActiveCfg = Release|Win32 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|Win32.Build.0 = Release|Win32 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|x64.ActiveCfg = Release|x64 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|x64.Build.0 = Release|x64 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Debug|Win32.ActiveCfg = PGInstrument|Win32 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Debug|x64.ActiveCfg = PGUpdate|x64 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Debug|x64.Build.0 = PGUpdate|x64 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Release|Win32.ActiveCfg = Release|Win32 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Release|Win32.Build.0 = Release|Win32 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Release|x64.ActiveCfg = Release|x64 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Release|x64.Build.0 = Release|x64 - {F749B822-B489-4CA5-A3AD-CE078F5F338A}.Debug|Win32.ActiveCfg = Debug|Win32 - {F749B822-B489-4CA5-A3AD-CE078F5F338A}.Debug|Win32.Build.0 = Debug|Win32 - {F749B822-B489-4CA5-A3AD-CE078F5F338A}.Debug|x64.ActiveCfg = Debug|x64 - {F749B822-B489-4CA5-A3AD-CE078F5F338A}.Debug|x64.Build.0 = Debug|x64 - {F749B822-B489-4CA5-A3AD-CE078F5F338A}.PGInstrument|Win32.ActiveCfg = Release|Win32 - {F749B822-B489-4CA5-A3AD-CE078F5F338A}.PGInstrument|Win32.Build.0 = Release|Win32 - {F749B822-B489-4CA5-A3AD-CE078F5F338A}.PGInstrument|x64.ActiveCfg = Release|x64 - {F749B822-B489-4CA5-A3AD-CE078F5F338A}.PGInstrument|x64.Build.0 = Release|x64 - {F749B822-B489-4CA5-A3AD-CE078F5F338A}.PGUpdate|Win32.ActiveCfg = Release|Win32 - {F749B822-B489-4CA5-A3AD-CE078F5F338A}.PGUpdate|Win32.Build.0 = Release|Win32 - {F749B822-B489-4CA5-A3AD-CE078F5F338A}.PGUpdate|x64.ActiveCfg = Release|x64 - {F749B822-B489-4CA5-A3AD-CE078F5F338A}.PGUpdate|x64.Build.0 = Release|x64 - {F749B822-B489-4CA5-A3AD-CE078F5F338A}.Release|Win32.ActiveCfg = Release|Win32 - {F749B822-B489-4CA5-A3AD-CE078F5F338A}.Release|Win32.Build.0 = Release|Win32 - {F749B822-B489-4CA5-A3AD-CE078F5F338A}.Release|x64.ActiveCfg = Release|x64 - {F749B822-B489-4CA5-A3AD-CE078F5F338A}.Release|x64.Build.0 = Release|x64 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.Debug|Win32.ActiveCfg = Debug|Win32 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.Debug|Win32.Build.0 = Debug|Win32 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.Debug|x64.ActiveCfg = Debug|x64 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.Debug|x64.Build.0 = Debug|x64 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.Release|Win32.ActiveCfg = Release|Win32 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.Release|Win32.Build.0 = Release|Win32 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.Release|x64.ActiveCfg = Release|x64 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.Release|x64.Build.0 = Release|x64 - {04F37400-883C-42D7-AE28-6CF9953BF975}.Debug|Win32.ActiveCfg = Debug|Win32 - {04F37400-883C-42D7-AE28-6CF9953BF975}.Debug|Win32.Build.0 = Debug|Win32 - {04F37400-883C-42D7-AE28-6CF9953BF975}.Debug|x64.ActiveCfg = Debug|x64 - {04F37400-883C-42D7-AE28-6CF9953BF975}.Debug|x64.Build.0 = Debug|x64 - {04F37400-883C-42D7-AE28-6CF9953BF975}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {04F37400-883C-42D7-AE28-6CF9953BF975}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {04F37400-883C-42D7-AE28-6CF9953BF975}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {04F37400-883C-42D7-AE28-6CF9953BF975}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {04F37400-883C-42D7-AE28-6CF9953BF975}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {04F37400-883C-42D7-AE28-6CF9953BF975}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {04F37400-883C-42D7-AE28-6CF9953BF975}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {04F37400-883C-42D7-AE28-6CF9953BF975}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {04F37400-883C-42D7-AE28-6CF9953BF975}.Release|Win32.ActiveCfg = Release|Win32 - {04F37400-883C-42D7-AE28-6CF9953BF975}.Release|Win32.Build.0 = Release|Win32 - {04F37400-883C-42D7-AE28-6CF9953BF975}.Release|x64.ActiveCfg = Release|x64 - {04F37400-883C-42D7-AE28-6CF9953BF975}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PC/VS9.0/pginstrument.vsprops b/PC/VS9.0/pginstrument.vsprops deleted file mode 100644 --- a/PC/VS9.0/pginstrument.vsprops +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - diff --git a/PC/VS9.0/pgupdate.vsprops b/PC/VS9.0/pgupdate.vsprops deleted file mode 100644 --- a/PC/VS9.0/pgupdate.vsprops +++ /dev/null @@ -1,14 +0,0 @@ - - - - diff --git a/PC/VS9.0/pyd.vsprops b/PC/VS9.0/pyd.vsprops deleted file mode 100644 --- a/PC/VS9.0/pyd.vsprops +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - diff --git a/PC/VS9.0/pyd_d.vsprops b/PC/VS9.0/pyd_d.vsprops deleted file mode 100644 --- a/PC/VS9.0/pyd_d.vsprops +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - diff --git a/PC/VS9.0/pyexpat.vcproj b/PC/VS9.0/pyexpat.vcproj deleted file mode 100644 --- a/PC/VS9.0/pyexpat.vcproj +++ /dev/null @@ -1,553 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/pyproject.vsprops b/PC/VS9.0/pyproject.vsprops deleted file mode 100644 --- a/PC/VS9.0/pyproject.vsprops +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/python.vcproj b/PC/VS9.0/python.vcproj deleted file mode 100644 --- a/PC/VS9.0/python.vcproj +++ /dev/null @@ -1,637 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/python3dll.vcproj b/PC/VS9.0/python3dll.vcproj deleted file mode 100644 --- a/PC/VS9.0/python3dll.vcproj +++ /dev/null @@ -1,246 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/pythoncore.vcproj b/PC/VS9.0/pythoncore.vcproj deleted file mode 100644 --- a/PC/VS9.0/pythoncore.vcproj +++ /dev/null @@ -1,1877 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/pythonw.vcproj b/PC/VS9.0/pythonw.vcproj deleted file mode 100644 --- a/PC/VS9.0/pythonw.vcproj +++ /dev/null @@ -1,618 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/release.vsprops b/PC/VS9.0/release.vsprops deleted file mode 100644 --- a/PC/VS9.0/release.vsprops +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/PC/VS9.0/select.vcproj b/PC/VS9.0/select.vcproj deleted file mode 100644 --- a/PC/VS9.0/select.vcproj +++ /dev/null @@ -1,537 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/sqlite3.vcproj b/PC/VS9.0/sqlite3.vcproj deleted file mode 100644 --- a/PC/VS9.0/sqlite3.vcproj +++ /dev/null @@ -1,537 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/sqlite3.vsprops b/PC/VS9.0/sqlite3.vsprops deleted file mode 100644 --- a/PC/VS9.0/sqlite3.vsprops +++ /dev/null @@ -1,14 +0,0 @@ - - - - diff --git a/PC/VS9.0/ssl.vcproj b/PC/VS9.0/ssl.vcproj deleted file mode 100644 --- a/PC/VS9.0/ssl.vcproj +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/unicodedata.vcproj b/PC/VS9.0/unicodedata.vcproj deleted file mode 100644 --- a/PC/VS9.0/unicodedata.vcproj +++ /dev/null @@ -1,533 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/winsound.vcproj b/PC/VS9.0/winsound.vcproj deleted file mode 100644 --- a/PC/VS9.0/winsound.vcproj +++ /dev/null @@ -1,523 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/VS9.0/x64.vsprops b/PC/VS9.0/x64.vsprops deleted file mode 100644 --- a/PC/VS9.0/x64.vsprops +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - diff --git a/PC/VS9.0/xxlimited.vcproj b/PC/VS9.0/xxlimited.vcproj deleted file mode 100644 --- a/PC/VS9.0/xxlimited.vcproj +++ /dev/null @@ -1,417 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PC/bdist_wininst/archive.h b/PC/bdist_wininst/archive.h --- a/PC/bdist_wininst/archive.h +++ b/PC/bdist_wininst/archive.h @@ -1,10 +1,9 @@ /* - IMPORTANT NOTE: IF THIS FILE IS CHANGED, WININST-6.EXE MUST BE RECOMPILED - WITH THE MSVC6 WININST.DSW WORKSPACE FILE MANUALLY, AND WININST-7.1.EXE MUST - BE RECOMPILED WITH THE MSVC 2003.NET WININST-7.1.VCPROJ FILE MANUALLY. + IMPORTANT NOTE: IF THIS FILE IS CHANGED, PCBUILD\BDIST_WININST.VCXPROJ MUST + BE REBUILT AS WELL. - IF CHANGES TO THIS FILE ARE CHECKED INTO PYTHON CVS, THE RECOMPILED BINARIES - MUST BE CHECKED IN AS WELL! + IF CHANGES TO THIS FILE ARE CHECKED IN, THE RECOMPILED BINARIES MUST BE + CHECKED IN AS WELL! */ #pragma pack(1) diff --git a/PC/bdist_wininst/extract.c b/PC/bdist_wininst/extract.c --- a/PC/bdist_wininst/extract.c +++ b/PC/bdist_wininst/extract.c @@ -1,10 +1,9 @@ /* - IMPORTANT NOTE: IF THIS FILE IS CHANGED, WININST-6.EXE MUST BE RECOMPILED - WITH THE MSVC6 WININST.DSW WORKSPACE FILE MANUALLY, AND WININST-7.1.EXE MUST - BE RECOMPILED WITH THE MSVC 2003.NET WININST-7.1.VCPROJ FILE MANUALLY. + IMPORTANT NOTE: IF THIS FILE IS CHANGED, PCBUILD\BDIST_WININST.VCXPROJ MUST + BE REBUILT AS WELL. - IF CHANGES TO THIS FILE ARE CHECKED INTO PYTHON CVS, THE RECOMPILED BINARIES - MUST BE CHECKED IN AS WELL! + IF CHANGES TO THIS FILE ARE CHECKED IN, THE RECOMPILED BINARIES MUST BE + CHECKED IN AS WELL! */ #include diff --git a/PC/bdist_wininst/install.c b/PC/bdist_wininst/install.c --- a/PC/bdist_wininst/install.c +++ b/PC/bdist_wininst/install.c @@ -1,10 +1,9 @@ /* - IMPORTANT NOTE: IF THIS FILE IS CHANGED, WININST-6.EXE MUST BE RECOMPILED - WITH THE MSVC6 WININST.DSW WORKSPACE FILE MANUALLY, AND WININST-7.1.EXE MUST - BE RECOMPILED WITH THE MSVC 2003.NET WININST-7.1.VCPROJ FILE MANUALLY. + IMPORTANT NOTE: IF THIS FILE IS CHANGED, PCBUILD\BDIST_WININST.VCXPROJ MUST + BE REBUILT AS WELL. - IF CHANGES TO THIS FILE ARE CHECKED INTO PYTHON CVS, THE RECOMPILED BINARIES - MUST BE CHECKED IN AS WELL! + IF CHANGES TO THIS FILE ARE CHECKED IN, THE RECOMPILED BINARIES MUST BE + CHECKED IN AS WELL! */ /* @@ -1216,7 +1215,7 @@ #include -BOOL CALLBACK +INT_PTR CALLBACK IntroDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { LPNMHDR lpnm; @@ -1565,7 +1564,7 @@ return old_scheme; } -BOOL CALLBACK +INT_PTR CALLBACK SelectPythonDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { LPNMHDR lpnm; @@ -1867,7 +1866,7 @@ fclose(logfile); } -BOOL CALLBACK +INT_PTR CALLBACK InstallFilesDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { LPNMHDR lpnm; @@ -2022,7 +2021,7 @@ } -BOOL CALLBACK +INT_PTR CALLBACK FinishedDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { LPNMHDR lpnm; @@ -2198,23 +2197,6 @@ return TRUE; } -// Returns TRUE if the platform supports UAC. -BOOL PlatformSupportsUAC() -{ - // Note that win2k does seem to support ShellExecute with 'runas', - // but does *not* support IsUserAnAdmin - so we just pretend things - // only work on XP and later. - BOOL bIsWindowsXPorLater; - OSVERSIONINFO winverinfo; - winverinfo.dwOSVersionInfoSize = sizeof(winverinfo); - if (!GetVersionEx(&winverinfo)) - return FALSE; // something bad has gone wrong - bIsWindowsXPorLater = - ( (winverinfo.dwMajorVersion > 5) || - ( (winverinfo.dwMajorVersion == 5) && (winverinfo.dwMinorVersion >= 1) )); - return bIsWindowsXPorLater; -} - // Spawn ourself as an elevated application. On failure, a message is // displayed to the user - but this app will always terminate, even // on error. @@ -2270,7 +2252,7 @@ // See if we need to do the Vista UAC magic. if (strcmp(user_access_control, "force")==0) { - if (PlatformSupportsUAC() && !MyIsUserAnAdmin()) { + if (!MyIsUserAnAdmin()) { SpawnUAC(); return 0; } @@ -2278,7 +2260,7 @@ } else if (strcmp(user_access_control, "auto")==0) { // Check if it looks like we need UAC control, based // on how Python itself was installed. - if (PlatformSupportsUAC() && !MyIsUserAnAdmin() && NeedAutoUAC()) { + if (!MyIsUserAnAdmin() && NeedAutoUAC()) { SpawnUAC(); return 0; } diff --git a/PC/bdist_wininst/install.rc b/PC/bdist_wininst/install.rc --- a/PC/bdist_wininst/install.rc +++ b/PC/bdist_wininst/install.rc @@ -1,10 +1,9 @@ /* - IMPORTANT NOTE: IF THIS FILE IS CHANGED, WININST-6.EXE MUST BE RECOMPILED - WITH THE MSVC6 WININST.DSW WORKSPACE FILE MANUALLY, AND WININST-7.1.EXE MUST - BE RECOMPILED WITH THE MSVC 2003.NET WININST-7.1.VCPROJ FILE MANUALLY. + IMPORTANT NOTE: IF THIS FILE IS CHANGED, PCBUILD\BDIST_WININST.VCXPROJ MUST + BE REBUILT AS WELL. - IF CHANGES TO THIS FILE ARE CHECKED INTO PYTHON CVS, THE RECOMPILED BINARIES - MUST BE CHECKED IN AS WELL! + IF CHANGES TO THIS FILE ARE CHECKED IN, THE RECOMPILED BINARIES MUST BE + CHECKED IN AS WELL! */ //Microsoft Developer Studio generated resource script. diff --git a/PC/bdist_wininst/resource.h b/PC/bdist_wininst/resource.h --- a/PC/bdist_wininst/resource.h +++ b/PC/bdist_wininst/resource.h @@ -1,10 +1,9 @@ /* - IMPORTANT NOTE: IF THIS FILE IS CHANGED, WININST-6.EXE MUST BE RECOMPILED - WITH THE MSVC6 WININST.DSW WORKSPACE FILE MANUALLY, AND WININST-7.1.EXE MUST - BE RECOMPILED WITH THE MSVC 2003.NET WININST-7.1.VCPROJ FILE MANUALLY. + IMPORTANT NOTE: IF THIS FILE IS CHANGED, PCBUILD\BDIST_WININST.VCXPROJ MUST + BE REBUILT AS WELL. - IF CHANGES TO THIS FILE ARE CHECKED INTO PYTHON CVS, THE RECOMPILED BINARIES - MUST BE CHECKED IN AS WELL! + IF CHANGES TO THIS FILE ARE CHECKED IN, THE RECOMPILED BINARIES MUST BE + CHECKED IN AS WELL! */ //{{NO_DEPENDENCIES}} diff --git a/PC/pyconfig.h b/PC/pyconfig.h --- a/PC/pyconfig.h +++ b/PC/pyconfig.h @@ -213,6 +213,13 @@ #define hypot _hypot #endif +/* VS 2015 defines these names with a leading underscore */ +#if _MSC_VER >= 1900 +#define timezone _timezone +#define daylight _daylight +#define tzname _tzname +#endif + /* Side by Side assemblies supported in VS 2005 and VS 2008 but not 2010*/ #if _MSC_VER >= 1400 && _MSC_VER < 1600 #define HAVE_SXS 1 diff --git a/PC/pylauncher.rc b/PC/pylauncher.rc --- a/PC/pylauncher.rc +++ b/PC/pylauncher.rc @@ -34,7 +34,7 @@ VALUE "FileDescription", "Python Launcher for Windows (Console)" VALUE "FileVersion", PYTHON_VERSION VALUE "InternalName", "py" - VALUE "LegalCopyright", "Copyright (C) 2011-2012 Python Software Foundation" + VALUE "LegalCopyright", "Copyright (C) 2011-2014 Python Software Foundation" VALUE "OriginalFilename", "py" VALUE "ProductName", "Python Launcher for Windows" VALUE "ProductVersion", PYTHON_VERSION diff --git a/PC/python3.def b/PC/python3.def --- a/PC/python3.def +++ b/PC/python3.def @@ -1,4 +1,5 @@ -; When changing this file, run python35gen.py +; This file specifies the import forwarding for python3.dll +; It is used when building python3dll.vcxproj LIBRARY "python3" EXPORTS PyArg_Parse=python35.PyArg_Parse diff --git a/PC/python3.mak b/PC/python3.mak deleted file mode 100644 --- a/PC/python3.mak +++ /dev/null @@ -1,14 +0,0 @@ -$(OutDir)python3.dll: python3.def $(OutDir)python35stub.lib - cl /LD /Fe$(OutDir)python3.dll python3dll.c python3.def $(OutDir)python35stub.lib - -$(OutDir)python35stub.lib: python35stub.def - lib /def:python35stub.def /out:$(OutDir)python35stub.lib /MACHINE:$(MACHINE) - -clean: - IF EXIST $(OutDir)python3.dll del $(OutDir)python3.dll - IF EXIST $(OutDir)python3.lib del $(OutDir)python3.lib - IF EXIST $(OutDir)python35stub.lib del $(OutDir)python35stub.lib - IF EXIST $(OutDir)python3.exp del $(OutDir)python3.exp - IF EXIST $(OutDir)python35stub.exp del $(OutDir)python35stub.exp - -rebuild: clean $(OutDir)python3.dll diff --git a/PC/python35gen.py b/PC/python35gen.py deleted file mode 100644 --- a/PC/python35gen.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generate python35stub.def out of python3.def -# The regular import library cannot be used, -# since it doesn't provide the right symbols for -# data forwarding -out = open("python35stub.def", "w") -out.write('LIBRARY "python35"\n') -out.write('EXPORTS\n') - -inp = open("python3.def") -line = inp.readline() -while line.strip().startswith(';'): - line = inp.readline() -line = inp.readline() # LIBRARY -assert line.strip()=='EXPORTS' - -for line in inp: - # SYM1=python35.SYM2[ DATA] - head, tail = line.split('.') - if 'DATA' in tail: - symbol, tail = tail.split(' ') - else: - symbol = tail.strip() - out.write(symbol+'\n') - -inp.close() -out.close() diff --git a/PC/python35stub.def b/PC/python35stub.def deleted file mode 100644 --- a/PC/python35stub.def +++ /dev/null @@ -1,701 +0,0 @@ -LIBRARY "python35" -EXPORTS -PyArg_Parse -PyArg_ParseTuple -PyArg_ParseTupleAndKeywords -PyArg_UnpackTuple -PyArg_VaParse -PyArg_VaParseTupleAndKeywords -PyArg_ValidateKeywordArguments -PyBaseObject_Type -PyBool_FromLong -PyBool_Type -PyByteArrayIter_Type -PyByteArray_AsString -PyByteArray_Concat -PyByteArray_FromObject -PyByteArray_FromStringAndSize -PyByteArray_Resize -PyByteArray_Size -PyByteArray_Type -PyBytesIter_Type -PyBytes_AsString -PyBytes_AsStringAndSize -PyBytes_Concat -PyBytes_ConcatAndDel -PyBytes_DecodeEscape -PyBytes_FromFormat -PyBytes_FromFormatV -PyBytes_FromObject -PyBytes_FromString -PyBytes_FromStringAndSize -PyBytes_Repr -PyBytes_Size -PyBytes_Type -PyCFunction_Call -PyCFunction_ClearFreeList -PyCFunction_GetFlags -PyCFunction_GetFunction -PyCFunction_GetSelf -PyCFunction_New -PyCFunction_NewEx -PyCFunction_Type -PyCallIter_New -PyCallIter_Type -PyCallable_Check -PyCapsule_GetContext -PyCapsule_GetDestructor -PyCapsule_GetName -PyCapsule_GetPointer -PyCapsule_Import -PyCapsule_IsValid -PyCapsule_New -PyCapsule_SetContext -PyCapsule_SetDestructor -PyCapsule_SetName -PyCapsule_SetPointer -PyCapsule_Type -PyClassMethodDescr_Type -PyCodec_BackslashReplaceErrors -PyCodec_Decode -PyCodec_Decoder -PyCodec_Encode -PyCodec_Encoder -PyCodec_IgnoreErrors -PyCodec_IncrementalDecoder -PyCodec_IncrementalEncoder -PyCodec_KnownEncoding -PyCodec_LookupError -PyCodec_Register -PyCodec_RegisterError -PyCodec_ReplaceErrors -PyCodec_StreamReader -PyCodec_StreamWriter -PyCodec_StrictErrors -PyCodec_XMLCharRefReplaceErrors -PyComplex_FromDoubles -PyComplex_ImagAsDouble -PyComplex_RealAsDouble -PyComplex_Type -PyDescr_NewClassMethod -PyDescr_NewGetSet -PyDescr_NewMember -PyDescr_NewMethod -PyDictItems_Type -PyDictIterItem_Type -PyDictIterKey_Type -PyDictIterValue_Type -PyDictKeys_Type -PyDictProxy_New -PyDictProxy_Type -PyDictValues_Type -PyDict_Clear -PyDict_Contains -PyDict_Copy -PyDict_DelItem -PyDict_DelItemString -PyDict_GetItem -PyDict_GetItemString -PyDict_GetItemWithError -PyDict_Items -PyDict_Keys -PyDict_Merge -PyDict_MergeFromSeq2 -PyDict_New -PyDict_Next -PyDict_SetItem -PyDict_SetItemString -PyDict_Size -PyDict_Type -PyDict_Update -PyDict_Values -PyEllipsis_Type -PyEnum_Type -PyErr_BadArgument -PyErr_BadInternalCall -PyErr_CheckSignals -PyErr_Clear -PyErr_Display -PyErr_ExceptionMatches -PyErr_Fetch -PyErr_Format -PyErr_FormatV -PyErr_GivenExceptionMatches -PyErr_NewException -PyErr_NewExceptionWithDoc -PyErr_NoMemory -PyErr_NormalizeException -PyErr_Occurred -PyErr_Print -PyErr_PrintEx -PyErr_ProgramText -PyErr_Restore -PyErr_SetFromErrno -PyErr_SetFromErrnoWithFilename -PyErr_SetFromErrnoWithFilenameObject -PyErr_SetInterrupt -PyErr_SetNone -PyErr_SetObject -PyErr_SetString -PyErr_SyntaxLocation -PyErr_WarnEx -PyErr_WarnExplicit -PyErr_WarnFormat -PyErr_WriteUnraisable -PyEval_AcquireLock -PyEval_AcquireThread -PyEval_CallFunction -PyEval_CallMethod -PyEval_CallObjectWithKeywords -PyEval_EvalCode -PyEval_EvalCodeEx -PyEval_EvalFrame -PyEval_EvalFrameEx -PyEval_GetBuiltins -PyEval_GetCallStats -PyEval_GetFrame -PyEval_GetFuncDesc -PyEval_GetFuncName -PyEval_GetGlobals -PyEval_GetLocals -PyEval_InitThreads -PyEval_ReInitThreads -PyEval_ReleaseLock -PyEval_ReleaseThread -PyEval_RestoreThread -PyEval_SaveThread -PyEval_ThreadsInitialized -PyExc_ArithmeticError -PyExc_AssertionError -PyExc_AttributeError -PyExc_BaseException -PyExc_BufferError -PyExc_BytesWarning -PyExc_DeprecationWarning -PyExc_EOFError -PyExc_EnvironmentError -PyExc_Exception -PyExc_FloatingPointError -PyExc_FutureWarning -PyExc_GeneratorExit -PyExc_IOError -PyExc_ImportError -PyExc_ImportWarning -PyExc_IndentationError -PyExc_IndexError -PyExc_KeyError -PyExc_KeyboardInterrupt -PyExc_LookupError -PyExc_MemoryError -PyExc_MemoryErrorInst -PyExc_NameError -PyExc_NotImplementedError -PyExc_OSError -PyExc_OverflowError -PyExc_PendingDeprecationWarning -PyExc_RecursionErrorInst -PyExc_ReferenceError -PyExc_RuntimeError -PyExc_RuntimeWarning -PyExc_StopIteration -PyExc_SyntaxError -PyExc_SyntaxWarning -PyExc_SystemError -PyExc_SystemExit -PyExc_TabError -PyExc_TypeError -PyExc_UnboundLocalError -PyExc_UnicodeDecodeError -PyExc_UnicodeEncodeError -PyExc_UnicodeError -PyExc_UnicodeTranslateError -PyExc_UnicodeWarning -PyExc_UserWarning -PyExc_ValueError -PyExc_Warning -PyExc_ZeroDivisionError -PyException_GetCause -PyException_GetContext -PyException_GetTraceback -PyException_SetCause -PyException_SetContext -PyException_SetTraceback -PyFile_FromFd -PyFile_GetLine -PyFile_WriteObject -PyFile_WriteString -PyFilter_Type -PyFloat_AsDouble -PyFloat_FromDouble -PyFloat_FromString -PyFloat_GetInfo -PyFloat_GetMax -PyFloat_GetMin -PyFloat_Type -PyFrozenSet_New -PyFrozenSet_Type -PyGC_Collect -PyGILState_Ensure -PyGILState_GetThisThreadState -PyGILState_Release -PyGetSetDescr_Type -PyImport_AddModule -PyImport_AppendInittab -PyImport_Cleanup -PyImport_ExecCodeModule -PyImport_ExecCodeModuleEx -PyImport_ExecCodeModuleWithPathnames -PyImport_GetImporter -PyImport_GetMagicNumber -PyImport_GetMagicTag -PyImport_GetModuleDict -PyImport_Import -PyImport_ImportFrozenModule -PyImport_ImportModule -PyImport_ImportModuleLevel -PyImport_ImportModuleNoBlock -PyImport_ReloadModule -PyInterpreterState_Clear -PyInterpreterState_Delete -PyInterpreterState_New -PyIter_Next -PyListIter_Type -PyListRevIter_Type -PyList_Append -PyList_AsTuple -PyList_GetItem -PyList_GetSlice -PyList_Insert -PyList_New -PyList_Reverse -PyList_SetItem -PyList_SetSlice -PyList_Size -PyList_Sort -PyList_Type -PyLongRangeIter_Type -PyLong_AsDouble -PyLong_AsLong -PyLong_AsLongAndOverflow -PyLong_AsLongLong -PyLong_AsLongLongAndOverflow -PyLong_AsSize_t -PyLong_AsSsize_t -PyLong_AsUnsignedLong -PyLong_AsUnsignedLongLong -PyLong_AsUnsignedLongLongMask -PyLong_AsUnsignedLongMask -PyLong_AsVoidPtr -PyLong_FromDouble -PyLong_FromLong -PyLong_FromLongLong -PyLong_FromSize_t -PyLong_FromSsize_t -PyLong_FromString -PyLong_FromUnsignedLong -PyLong_FromUnsignedLongLong -PyLong_FromVoidPtr -PyLong_GetInfo -PyLong_Type -PyMap_Type -PyMapping_Check -PyMapping_GetItemString -PyMapping_HasKey -PyMapping_HasKeyString -PyMapping_Items -PyMapping_Keys -PyMapping_Length -PyMapping_SetItemString -PyMapping_Size -PyMapping_Values -PyMem_Free -PyMem_Malloc -PyMem_Realloc -PyMemberDescr_Type -PyMemoryView_FromObject -PyMemoryView_GetContiguous -PyMemoryView_Type -PyMethodDescr_Type -PyModule_AddIntConstant -PyModule_AddObject -PyModule_AddStringConstant -PyModule_Create2 -PyModule_GetDef -PyModule_GetDict -PyModule_GetFilename -PyModule_GetFilenameObject -PyModule_GetName -PyModule_GetState -PyModule_New -PyModule_Type -PyNullImporter_Type -PyNumber_Absolute -PyNumber_Add -PyNumber_And -PyNumber_AsSsize_t -PyNumber_Check -PyNumber_Divmod -PyNumber_Float -PyNumber_FloorDivide -PyNumber_InPlaceAdd -PyNumber_InPlaceAnd -PyNumber_InPlaceFloorDivide -PyNumber_InPlaceLshift -PyNumber_InPlaceMultiply -PyNumber_InPlaceOr -PyNumber_InPlacePower -PyNumber_InPlaceRemainder -PyNumber_InPlaceRshift -PyNumber_InPlaceSubtract -PyNumber_InPlaceTrueDivide -PyNumber_InPlaceXor -PyNumber_Index -PyNumber_Invert -PyNumber_Long -PyNumber_Lshift -PyNumber_Multiply -PyNumber_Negative -PyNumber_Or -PyNumber_Positive -PyNumber_Power -PyNumber_Remainder -PyNumber_Rshift -PyNumber_Subtract -PyNumber_ToBase -PyNumber_TrueDivide -PyNumber_Xor -PyOS_AfterFork -PyOS_InitInterrupts -PyOS_InputHook -PyOS_InterruptOccurred -PyOS_ReadlineFunctionPointer -PyOS_double_to_string -PyOS_getsig -PyOS_mystricmp -PyOS_mystrnicmp -PyOS_setsig -PyOS_snprintf -PyOS_string_to_double -PyOS_strtol -PyOS_strtoul -PyOS_vsnprintf -PyObject_ASCII -PyObject_AsCharBuffer -PyObject_AsFileDescriptor -PyObject_AsReadBuffer -PyObject_AsWriteBuffer -PyObject_Bytes -PyObject_Call -PyObject_CallFunction -PyObject_CallFunctionObjArgs -PyObject_CallMethod -PyObject_CallMethodObjArgs -PyObject_CallObject -PyObject_CheckReadBuffer -PyObject_ClearWeakRefs -PyObject_DelItem -PyObject_DelItemString -PyObject_Dir -PyObject_Format -PyObject_Free -PyObject_GC_Del -PyObject_GC_Track -PyObject_GC_UnTrack -PyObject_GenericGetAttr -PyObject_GenericSetAttr -PyObject_GetAttr -PyObject_GetAttrString -PyObject_GetItem -PyObject_GetIter -PyObject_HasAttr -PyObject_HasAttrString -PyObject_Hash -PyObject_HashNotImplemented -PyObject_Init -PyObject_InitVar -PyObject_IsInstance -PyObject_IsSubclass -PyObject_IsTrue -PyObject_Length -PyObject_Malloc -PyObject_Not -PyObject_Realloc -PyObject_Repr -PyObject_RichCompare -PyObject_RichCompareBool -PyObject_SelfIter -PyObject_SetAttr -PyObject_SetAttrString -PyObject_SetItem -PyObject_Size -PyObject_Str -PyObject_Type -PyParser_SimpleParseFileFlags -PyParser_SimpleParseStringFlags -PyProperty_Type -PyRangeIter_Type -PyRange_Type -PyReversed_Type -PySeqIter_New -PySeqIter_Type -PySequence_Check -PySequence_Concat -PySequence_Contains -PySequence_Count -PySequence_DelItem -PySequence_DelSlice -PySequence_Fast -PySequence_GetItem -PySequence_GetSlice -PySequence_In -PySequence_InPlaceConcat -PySequence_InPlaceRepeat -PySequence_Index -PySequence_Length -PySequence_List -PySequence_Repeat -PySequence_SetItem -PySequence_SetSlice -PySequence_Size -PySequence_Tuple -PySetIter_Type -PySet_Add -PySet_Clear -PySet_Contains -PySet_Discard -PySet_New -PySet_Pop -PySet_Size -PySet_Type -PySlice_GetIndices -PySlice_GetIndicesEx -PySlice_New -PySlice_Type -PySortWrapper_Type -PyState_FindModule -PyState_AddModule -PyState_RemoveModule -PyStructSequence_GetItem -PyStructSequence_New -PyStructSequence_NewType -PyStructSequence_SetItem -PySuper_Type -PySys_AddWarnOption -PySys_AddWarnOptionUnicode -PySys_FormatStderr -PySys_FormatStdout -PySys_GetObject -PySys_HasWarnOptions -PySys_ResetWarnOptions -PySys_SetArgv -PySys_SetArgvEx -PySys_SetObject -PySys_SetPath -PySys_WriteStderr -PySys_WriteStdout -PyThreadState_Clear -PyThreadState_Delete -PyThreadState_DeleteCurrent -PyThreadState_Get -PyThreadState_GetDict -PyThreadState_New -PyThreadState_SetAsyncExc -PyThreadState_Swap -PyTraceBack_Here -PyTraceBack_Print -PyTraceBack_Type -PyTupleIter_Type -PyTuple_ClearFreeList -PyTuple_GetItem -PyTuple_GetSlice -PyTuple_New -PyTuple_Pack -PyTuple_SetItem -PyTuple_Size -PyTuple_Type -PyType_ClearCache -PyType_FromSpec -PyType_FromSpecWithBases -PyType_GenericAlloc -PyType_GenericNew -PyType_GetFlags -PyType_GetSlot -PyType_IsSubtype -PyType_Modified -PyType_Ready -PyType_Type -PyUnicodeDecodeError_Create -PyUnicodeDecodeError_GetEncoding -PyUnicodeDecodeError_GetEnd -PyUnicodeDecodeError_GetObject -PyUnicodeDecodeError_GetReason -PyUnicodeDecodeError_GetStart -PyUnicodeDecodeError_SetEnd -PyUnicodeDecodeError_SetReason -PyUnicodeDecodeError_SetStart -PyUnicodeEncodeError_GetEncoding -PyUnicodeEncodeError_GetEnd -PyUnicodeEncodeError_GetObject -PyUnicodeEncodeError_GetReason -PyUnicodeEncodeError_GetStart -PyUnicodeEncodeError_SetEnd -PyUnicodeEncodeError_SetReason -PyUnicodeEncodeError_SetStart -PyUnicodeIter_Type -PyUnicodeTranslateError_GetEnd -PyUnicodeTranslateError_GetObject -PyUnicodeTranslateError_GetReason -PyUnicodeTranslateError_GetStart -PyUnicodeTranslateError_SetEnd -PyUnicodeTranslateError_SetReason -PyUnicodeTranslateError_SetStart -PyUnicode_Append -PyUnicode_AppendAndDel -PyUnicode_AsASCIIString -PyUnicode_AsCharmapString -PyUnicode_AsDecodedObject -PyUnicode_AsDecodedUnicode -PyUnicode_AsEncodedObject -PyUnicode_AsEncodedString -PyUnicode_AsEncodedUnicode -PyUnicode_AsLatin1String -PyUnicode_AsRawUnicodeEscapeString -PyUnicode_AsUTF16String -PyUnicode_AsUTF32String -PyUnicode_AsUTF8String -PyUnicode_AsUnicodeEscapeString -PyUnicode_AsWideChar -PyUnicode_ClearFreelist -PyUnicode_Compare -PyUnicode_Concat -PyUnicode_Contains -PyUnicode_Count -PyUnicode_Decode -PyUnicode_DecodeASCII -PyUnicode_DecodeCharmap -PyUnicode_DecodeFSDefault -PyUnicode_DecodeFSDefaultAndSize -PyUnicode_DecodeLatin1 -PyUnicode_DecodeRawUnicodeEscape -PyUnicode_DecodeUTF16 -PyUnicode_DecodeUTF16Stateful -PyUnicode_DecodeUTF32 -PyUnicode_DecodeUTF32Stateful -PyUnicode_DecodeUTF8 -PyUnicode_DecodeUTF8Stateful -PyUnicode_DecodeUnicodeEscape -PyUnicode_FSConverter -PyUnicode_FSDecoder -PyUnicode_Find -PyUnicode_Format -PyUnicode_FromEncodedObject -PyUnicode_FromFormat -PyUnicode_FromFormatV -PyUnicode_FromObject -PyUnicode_FromOrdinal -PyUnicode_FromString -PyUnicode_FromStringAndSize -PyUnicode_FromWideChar -PyUnicode_GetDefaultEncoding -PyUnicode_GetSize -PyUnicode_IsIdentifier -PyUnicode_Join -PyUnicode_Partition -PyUnicode_RPartition -PyUnicode_RSplit -PyUnicode_Replace -PyUnicode_Resize -PyUnicode_RichCompare -PyUnicode_SetDefaultEncoding -PyUnicode_Split -PyUnicode_Splitlines -PyUnicode_Tailmatch -PyUnicode_Translate -PyUnicode_BuildEncodingMap -PyUnicode_CompareWithASCIIString -PyUnicode_DecodeUTF7 -PyUnicode_DecodeUTF7Stateful -PyUnicode_EncodeFSDefault -PyUnicode_InternFromString -PyUnicode_InternImmortal -PyUnicode_InternInPlace -PyUnicode_Type -PyWeakref_GetObject -PyWeakref_NewProxy -PyWeakref_NewRef -PyWrapperDescr_Type -PyWrapper_New -PyZip_Type -Py_AddPendingCall -Py_AtExit -Py_BuildValue -Py_CompileString -Py_DecRef -Py_EndInterpreter -Py_Exit -Py_FatalError -Py_FileSystemDefaultEncoding -Py_Finalize -Py_GetBuildInfo -Py_GetCompiler -Py_GetCopyright -Py_GetExecPrefix -Py_GetPath -Py_GetPlatform -Py_GetPrefix -Py_GetProgramFullPath -Py_GetProgramName -Py_GetPythonHome -Py_GetRecursionLimit -Py_GetVersion -Py_HasFileSystemDefaultEncoding -Py_IncRef -Py_Initialize -Py_InitializeEx -Py_IsInitialized -Py_Main -Py_MakePendingCalls -Py_NewInterpreter -Py_ReprEnter -Py_ReprLeave -Py_SetProgramName -Py_SetPythonHome -Py_SetRecursionLimit -Py_SymtableString -Py_VaBuildValue -_PyErr_BadInternalCall -_PyObject_CallFunction_SizeT -_PyObject_CallMethod_SizeT -_PyObject_GC_Malloc -_PyObject_GC_New -_PyObject_GC_NewVar -_PyObject_GC_Resize -_PyObject_New -_PyObject_NewVar -_PyState_AddModule -_PyThreadState_Init -_PyThreadState_Prealloc -_PyTrash_delete_later -_PyTrash_delete_nesting -_PyTrash_deposit_object -_PyTrash_destroy_chain -_PyWeakref_CallableProxyType -_PyWeakref_ProxyType -_PyWeakref_RefType -_Py_BuildValue_SizeT -_Py_CheckRecursionLimit -_Py_CheckRecursiveCall -_Py_Dealloc -_Py_EllipsisObject -_Py_FalseStruct -_Py_NoneStruct -_Py_NotImplementedStruct -_Py_SwappedOp -_Py_TrueStruct -_Py_VaBuildValue_SizeT -_PyArg_Parse_SizeT -_PyArg_ParseTuple_SizeT -_PyArg_ParseTupleAndKeywords_SizeT -_PyArg_VaParse_SizeT -_PyArg_VaParseTupleAndKeywords_SizeT -_Py_BuildValue_SizeT diff --git a/PC/python_nt.rc b/PC/python_nt.rc --- a/PC/python_nt.rc +++ b/PC/python_nt.rc @@ -13,7 +13,7 @@ #endif /* e.g., 3.3.0a1 - * PY_VERSION comes from patchevel.h + * PY_VERSION comes from patchlevel.h */ #define PYTHON_VERSION PY_VERSION "\0" diff --git a/PC/readme.txt b/PC/readme.txt --- a/PC/readme.txt +++ b/PC/readme.txt @@ -74,11 +74,6 @@ example_nt A subdirectory showing how to build an extension as a DLL. -Legacy support for older versions of Visual Studio -================================================== -The subdirectories VC6, VS7.1 and VS8.0 contain legacy support older -versions of Microsoft Visual Studio. See PCbuild/readme.txt. - Note for Windows 3.x and DOS users ================================== diff --git a/PCbuild/_bz2.vcxproj b/PCbuild/_bz2.vcxproj --- a/PCbuild/_bz2.vcxproj +++ b/PCbuild/_bz2.vcxproj @@ -39,117 +39,28 @@ bz2 Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet - - DynamicLibrary - NotSet - true + + + + .pyd - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + $(bz2Dir);%(AdditionalIncludeDirectories) WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) @@ -158,83 +69,6 @@ 0x1D170000 - - - X64 - - - $(bz2Dir);%(AdditionalIncludeDirectories) - WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - - - 0x1D170000 - - - - - $(bz2Dir);%(AdditionalIncludeDirectories) - WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - - - 0x1D170000 - - - - - X64 - - - $(bz2Dir);%(AdditionalIncludeDirectories) - WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - - - 0x1D170000 - - - - - $(bz2Dir);%(AdditionalIncludeDirectories) - WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - - - 0x1D170000 - - - - - X64 - - - $(bz2Dir);%(AdditionalIncludeDirectories) - WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - - - 0x1D170000 - MachineX64 - - - - - $(bz2Dir);%(AdditionalIncludeDirectories) - WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - - - 0x1D170000 - - - - - X64 - - - $(bz2Dir);%(AdditionalIncludeDirectories) - WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - - - 0x1D170000 - MachineX64 - - diff --git a/PCbuild/_ctypes.vcxproj b/PCbuild/_ctypes.vcxproj --- a/PCbuild/_ctypes.vcxproj +++ b/PCbuild/_ctypes.vcxproj @@ -39,204 +39,33 @@ _ctypes Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.40219.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + ..\Modules\_ctypes\libffi_msvc;%(AdditionalIncludeDirectories) 0x1D1A0000 - - - - - X64 - - - ..\Modules\_ctypes\libffi_msvc;%(AdditionalIncludeDirectories) - - - 0x1D1A0000 - - - - - ..\Modules\_ctypes\libffi_msvc;%(AdditionalIncludeDirectories) - - /EXPORT:DllGetClassObject,PRIVATE /EXPORT:DllCanUnloadNow,PRIVATE %(AdditionalOptions) - NotSet - 0x1D1A0000 - - - - - X64 - - - ..\Modules\_ctypes\libffi_msvc;%(AdditionalIncludeDirectories) - - - /EXPORT:DllGetClassObject,PRIVATE /EXPORT:DllCanUnloadNow,PRIVATE %(AdditionalOptions) - NotSet - 0x1D1A0000 - - - - - ..\Modules\_ctypes\libffi_msvc;%(AdditionalIncludeDirectories) - - - /EXPORT:DllGetClassObject,PRIVATE /EXPORT:DllCanUnloadNow,PRIVATE %(AdditionalOptions) - NotSet - 0x1D1A0000 - - - - - X64 - - - ..\Modules\_ctypes\libffi_msvc;%(AdditionalIncludeDirectories) - - - /EXPORT:DllGetClassObject,PRIVATE /EXPORT:DllCanUnloadNow,PRIVATE %(AdditionalOptions) - NotSet - 0x1D1A0000 - MachineX64 - - - - - ..\Modules\_ctypes\libffi_msvc;%(AdditionalIncludeDirectories) - - - /EXPORT:DllGetClassObject,PRIVATE /EXPORT:DllCanUnloadNow,PRIVATE %(AdditionalOptions) - NotSet - 0x1D1A0000 - - - - - X64 - - - ..\Modules\_ctypes\libffi_msvc;%(AdditionalIncludeDirectories) - - - /EXPORT:DllGetClassObject,PRIVATE /EXPORT:DllCanUnloadNow,PRIVATE %(AdditionalOptions) - NotSet - 0x1D1A0000 - MachineX64 @@ -257,30 +86,14 @@ - true - true - true - true + true - true - ml64 /nologo /c /Zi /Fo "$(IntDir)win64.obj" "%(FullPath)" - - $(IntDir)win64.obj;%(Outputs) - true - ml64 /nologo /c /Fo "$(IntDir)win64.obj" "%(FullPath)" - - $(IntDir)win64.obj;%(Outputs) - true - ml64 /nologo /c /Fo "$(IntDir)win64.obj" "%(FullPath)" - - $(IntDir)win64.obj;%(Outputs) - true - ml64 /nologo /c /Fo "$(IntDir)win64.obj" "%(FullPath)" - - $(IntDir)win64.obj;%(Outputs) + true + ml64 /nologo /c /Zi /Fo "$(IntDir)win64.obj" "%(FullPath)" + $(IntDir)win64.obj;%(Outputs) diff --git a/PCbuild/_ctypes_test.vcxproj b/PCbuild/_ctypes_test.vcxproj --- a/PCbuild/_ctypes_test.vcxproj +++ b/PCbuild/_ctypes_test.vcxproj @@ -38,143 +38,28 @@ {9EC7190A-249F-4180-A900-548FDCF3055F} _ctypes_test Win32Proj + false + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - - - X64 - - - - - X64 - - - - - X64 - - - MachineX64 - - - - - X64 - - - MachineX64 - - diff --git a/PCbuild/_decimal.vcxproj b/PCbuild/_decimal.vcxproj --- a/PCbuild/_decimal.vcxproj +++ b/PCbuild/_decimal.vcxproj @@ -39,208 +39,37 @@ _decimal Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.40219.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + - /D_CRT_SECURE_NO_WARNINGS /DCONFIG_32 /DPPRO /DMASM %(AdditionalOptions) + _CRT_SECURE_NO_WARNINGS;MASM;%(PreprocessorDefinitions) + CONFIG_32;PPRO;%(PreprocessorDefinitions) + CONFIG_64;%(PreprocessorDefinitions) ..\Modules\_decimal;..\Modules\_decimal\libmpdec;%(AdditionalIncludeDirectories) 0x1D1A0000 - - - X64 - - - /D_CRT_SECURE_NO_WARNINGS /DCONFIG_64 /DMASM %(AdditionalOptions) - ..\Modules\_decimal;..\Modules\_decimal\libmpdec;%(AdditionalIncludeDirectories) - - - 0x1D1A0000 - - - - - /D_CRT_SECURE_NO_WARNINGS /DCONFIG_32 /DPPRO /DMASM %(AdditionalOptions) - ..\Modules\_decimal;..\Modules\_decimal\libmpdec;%(AdditionalIncludeDirectories) - - - NotSet - 0x1D1A0000 - - - - - X64 - - - /D_CRT_SECURE_NO_WARNINGS /DCONFIG_64 /DMASM %(AdditionalOptions) - ..\Modules\_decimal;..\Modules\_decimal\libmpdec;..\Include;..\PC;%(AdditionalIncludeDirectories) - - - NotSet - 0x1D1A0000 - - - - - /D_CRT_SECURE_NO_WARNINGS /DCONFIG_32 /DPPRO /DMASM %(AdditionalOptions) - ..\Modules\_decimal;..\Modules\_decimal\libmpdec;%(AdditionalIncludeDirectories) - - - NotSet - 0x1D1A0000 - - - - - X64 - - - /D_CRT_SECURE_NO_WARNINGS /DCONFIG_64 /DMASM %(AdditionalOptions) - ..\Modules\_decimal;..\Modules\_decimal\libmpdec;%(AdditionalIncludeDirectories) - - - NotSet - 0x1D1A0000 - MachineX64 - - - - - /D_CRT_SECURE_NO_WARNINGS /DCONFIG_32 /DPPRO /DMASM %(AdditionalOptions) - ..\Modules\_decimal;..\Modules\_decimal\libmpdec;%(AdditionalIncludeDirectories) - - - NotSet - 0x1D1A0000 - - - - - X64 - - - /D_CRT_SECURE_NO_WARNINGS /DCONFIG_64 /DMASM %(AdditionalOptions) - ..\Modules\_decimal;..\Modules\_decimal\libmpdec;%(AdditionalIncludeDirectories) - - - NotSet - 0x1D1A0000 - MachineX64 - - @@ -279,22 +108,9 @@ - true - ml64 /nologo /c /Zi /Fo "$(IntDir)vcdiv64.obj" "%(FullPath)" - - $(IntDir)vcdiv64.obj;%(Outputs) - true - ml64 /nologo /c /Fo "$(IntDir)vcdiv64.obj" "%(FullPath)" - - $(IntDir)vcdiv64.obj;%(Outputs) - true - ml64 /nologo /c /Fo "$(IntDir)vcdiv64.obj" "%(FullPath)" - - $(IntDir)vcdiv64.obj;%(Outputs) - true - ml64 /nologo /c /Zi /Fo "$(IntDir)vcdiv64.obj" "%(FullPath)" - - $(IntDir)vcdiv64.obj;%(Outputs) + true + ml64 /nologo /c /Zi /Fo "$(IntDir)vcdiv64.obj" "%(FullPath)" + $(IntDir)vcdiv64.obj;%(Outputs) diff --git a/PCbuild/_elementtree.vcxproj b/PCbuild/_elementtree.vcxproj --- a/PCbuild/_elementtree.vcxproj +++ b/PCbuild/_elementtree.vcxproj @@ -39,117 +39,27 @@ _elementtree Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + ..\Modules\expat;%(AdditionalIncludeDirectories) XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;USE_PYEXPAT_CAPI;XML_STATIC;HAVE_MEMMOVE;%(PreprocessorDefinitions) @@ -158,83 +68,6 @@ 0x1D100000 - - - X64 - - - ..\Modules\expat;%(AdditionalIncludeDirectories) - XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;USE_PYEXPAT_CAPI;XML_STATIC;HAVE_MEMMOVE;%(PreprocessorDefinitions) - - - 0x1D100000 - - - - - ..\Modules\expat;%(AdditionalIncludeDirectories) - XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;USE_PYEXPAT_CAPI;XML_STATIC;HAVE_MEMMOVE;%(PreprocessorDefinitions) - - - 0x1D100000 - - - - - X64 - - - ..\Modules\expat;%(AdditionalIncludeDirectories) - XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;USE_PYEXPAT_CAPI;XML_STATIC;HAVE_MEMMOVE;%(PreprocessorDefinitions) - - - 0x1D100000 - - - - - ..\Modules\expat;%(AdditionalIncludeDirectories) - XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;USE_PYEXPAT_CAPI;XML_STATIC;HAVE_MEMMOVE;%(PreprocessorDefinitions) - - - 0x1D100000 - - - - - X64 - - - ..\Modules\expat;%(AdditionalIncludeDirectories) - XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;USE_PYEXPAT_CAPI;XML_STATIC;HAVE_MEMMOVE;%(PreprocessorDefinitions) - - - 0x1D100000 - MachineX64 - - - - - ..\Modules\expat;%(AdditionalIncludeDirectories) - XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;USE_PYEXPAT_CAPI;XML_STATIC;HAVE_MEMMOVE;%(PreprocessorDefinitions) - - - 0x1D100000 - - - - - X64 - - - ..\Modules\expat;%(AdditionalIncludeDirectories) - XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;USE_PYEXPAT_CAPI;XML_STATIC;HAVE_MEMMOVE;%(PreprocessorDefinitions) - - - 0x1D100000 - MachineX64 - - diff --git a/PCbuild/_freeze_importlib.vcxproj b/PCbuild/_freeze_importlib.vcxproj --- a/PCbuild/_freeze_importlib.vcxproj +++ b/PCbuild/_freeze_importlib.vcxproj @@ -9,6 +9,22 @@ Debug x64 + + PGInstrument + Win32 + + + PGInstrument + x64 + + + PGUpdate + Win32 + + + PGUpdate + x64 + Release Win32 @@ -22,149 +38,29 @@ {19C0C13F-47CA-4432-AFF3-799A296A4DDC} Win32Proj _freeze_importlib + false + - + Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true Unicode - - - - - - - - - - - - + - - - - - - - true - - - true - - - false - - - false - - + - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + _CONSOLE;%(PreprocessorDefinitions) Console - true - - $(TargetPath) ..\Lib\importlib\_bootstrap.py ..\Python\importlib.h - - - creating importlib.h - - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - - - Console - true - - - $(TargetPath) ..\Lib\importlib\_bootstrap.py ..\Python\importlib.h - - - creating importlib.h - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - - - Console - true - true - true - - - $(TargetPath) ..\Lib\importlib\_bootstrap.py ..\Python\importlib.h - - - creating importlib.h - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - - - Console - true - true - true - - - $(TargetPath) ..\Lib\importlib\_bootstrap.py ..\Python\importlib.h - - - creating importlib.h - @@ -185,4 +81,25 @@ + + + + + <_OldContent Condition="Exists('$(PySourcePath)Python\importlib.h')">$([System.IO.File]::ReadAllText('$(PySourcePath)Python\importlib.h')) + <_NewContent Condition="Exists('$(IntDir)importlib.g.h')">$([System.IO.File]::ReadAllText('$(IntDir)importlib.g.h')) + + + + + + + + + + + diff --git a/PCbuild/_hashlib.vcxproj b/PCbuild/_hashlib.vcxproj --- a/PCbuild/_hashlib.vcxproj +++ b/PCbuild/_hashlib.vcxproj @@ -39,239 +39,47 @@ _hashlib Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + - $(opensslDir)\inc32;%(AdditionalIncludeDirectories) + $(opensslDir)include;%(AdditionalIncludeDirectories) - - - - - ws2_32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies) - - - - - X64 - - - $(opensslDir)\inc64;%(AdditionalIncludeDirectories) - - - - - - - ws2_32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies) - - - - - $(opensslDir)\inc32;%(AdditionalIncludeDirectories) - - - - - - - ws2_32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies) - - - - - X64 - - - $(opensslDir)\inc64;%(AdditionalIncludeDirectories) - - - - - - - ws2_32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies) - - - - - $(opensslDir)\inc32;%(AdditionalIncludeDirectories) - - - - - - - ws2_32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies) - - - - - X64 - - - $(opensslDir)\inc64;%(AdditionalIncludeDirectories) - - - - - - - ws2_32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies) - MachineX64 - - - - - $(opensslDir)\inc32;%(AdditionalIncludeDirectories) - - - - - - - ws2_32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies) - - - - - X64 - - - $(opensslDir)\inc64;%(AdditionalIncludeDirectories) - - - - - - - ws2_32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies) - MachineX64 + ws2_32.lib;$(OutDir)libeay$(PyDebugExt).lib;$(OutDir)ssleay$(PyDebugExt).lib;%(AdditionalDependencies) - - {b11d750f-cd1f-4a96-85ce-e69a5c5259f9} - false - {cf7ac3d1-e2df-41d2-bea6-1e2556cdea26} false - + + {10615b24-73bf-4efa-93aa-236916321317} + false + + {e5b04cc0-eb4c-42ab-b4dc-18ef95f864b0} false diff --git a/PCbuild/_lzma.vcxproj b/PCbuild/_lzma.vcxproj --- a/PCbuild/_lzma.vcxproj +++ b/PCbuild/_lzma.vcxproj @@ -39,200 +39,35 @@ lzma Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + - $(lzmaDir)\include;%(AdditionalIncludeDirectories) + $(lzmaDir)include;%(AdditionalIncludeDirectories) WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LZMA_API_STATIC;%(PreprocessorDefinitions) - $(lzmaDir)\bin_i486\liblzma.a;%(AdditionalDependencies) - - - - - X64 - - - $(lzmaDir)\include;%(AdditionalIncludeDirectories) - WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LZMA_API_STATIC;%(PreprocessorDefinitions) - - - $(lzmaDir)\bin_x86-64\liblzma.a;%(AdditionalDependencies) - - - - - $(lzmaDir)\include;%(AdditionalIncludeDirectories) - WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LZMA_API_STATIC;%(PreprocessorDefinitions) - - - $(lzmaDir)\bin_i486\liblzma.a;%(AdditionalDependencies) - - - - - X64 - - - $(lzmaDir)\include;%(AdditionalIncludeDirectories) - WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LZMA_API_STATIC;%(PreprocessorDefinitions) - - - $(lzmaDir)\bin_x86-64\liblzma.a;%(AdditionalDependencies) - - - - - $(lzmaDir)\include;%(AdditionalIncludeDirectories) - WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LZMA_API_STATIC;%(PreprocessorDefinitions) - - - $(lzmaDir)\bin_i486\liblzma.a;%(AdditionalDependencies) - - - - - X64 - - - $(lzmaDir)\include;%(AdditionalIncludeDirectories) - WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LZMA_API_STATIC;%(PreprocessorDefinitions) - - - $(lzmaDir)\bin_x86-64\liblzma.a;%(AdditionalDependencies) - MachineX64 - - - - - $(lzmaDir)\include;%(AdditionalIncludeDirectories) - WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LZMA_API_STATIC;%(PreprocessorDefinitions) - - - $(lzmaDir)\bin_i486\liblzma.a;%(AdditionalDependencies) - - - - - X64 - - - $(lzmaDir)\include;%(AdditionalIncludeDirectories) - WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LZMA_API_STATIC;%(PreprocessorDefinitions) - - - $(lzmaDir)\bin_x86-64\liblzma.a;%(AdditionalDependencies) - MachineX64 + $(lzmaDir)\bin_i486\liblzma.a;%(AdditionalDependencies) + $(lzmaDir)\bin_x86-64\liblzma.a;%(AdditionalDependencies) + false diff --git a/PCbuild/_msi.vcxproj b/PCbuild/_msi.vcxproj --- a/PCbuild/_msi.vcxproj +++ b/PCbuild/_msi.vcxproj @@ -39,178 +39,32 @@ _msi Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + - fci.lib;msi.lib;rpcrt4.lib;%(AdditionalDependencies) + cabinet.lib;msi.lib;rpcrt4.lib;%(AdditionalDependencies) 0x1D160000 - - - X64 - - - fci.lib;msi.lib;rpcrt4.lib;%(AdditionalDependencies) - 0x1D160000 - - - - - fci.lib;msi.lib;rpcrt4.lib;%(AdditionalDependencies) - 0x1D160000 - - - - - X64 - - - fci.lib;msi.lib;rpcrt4.lib;%(AdditionalDependencies) - 0x1D160000 - - - - - fci.lib;msi.lib;rpcrt4.lib;%(AdditionalDependencies) - 0x1D160000 - - - - - X64 - - - fci.lib;msi.lib;rpcrt4.lib;%(AdditionalDependencies) - 0x1D160000 - MachineX64 - - - - - fci.lib;msi.lib;rpcrt4.lib;%(AdditionalDependencies) - 0x1D160000 - - - - - X64 - - - fci.lib;msi.lib;rpcrt4.lib;%(AdditionalDependencies) - 0x1D160000 - MachineX64 - - diff --git a/PCbuild/_multiprocessing.vcxproj b/PCbuild/_multiprocessing.vcxproj --- a/PCbuild/_multiprocessing.vcxproj +++ b/PCbuild/_multiprocessing.vcxproj @@ -39,178 +39,32 @@ _multiprocessing Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + ws2_32.lib;%(AdditionalDependencies) 0x1e1D0000 - - - X64 - - - ws2_32.lib;%(AdditionalDependencies) - 0x1e1D0000 - - - - - ws2_32.lib;%(AdditionalDependencies) - 0x1e1D0000 - - - - - X64 - - - ws2_32.lib;%(AdditionalDependencies) - 0x1e1D0000 - - - - - ws2_32.lib;%(AdditionalDependencies) - 0x1e1D0000 - - - - - X64 - - - ws2_32.lib;%(AdditionalDependencies) - 0x1e1D0000 - MachineX64 - - - - - ws2_32.lib;%(AdditionalDependencies) - 0x1e1D0000 - - - - - X64 - - - ws2_32.lib;%(AdditionalDependencies) - 0x1e1D0000 - MachineX64 - - diff --git a/PCbuild/_overlapped.vcxproj b/PCbuild/_overlapped.vcxproj --- a/PCbuild/_overlapped.vcxproj +++ b/PCbuild/_overlapped.vcxproj @@ -39,186 +39,32 @@ _overlapped Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) 0x1D110000 - - - X64 - - - ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - - - - - ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - - - - - X64 - - - ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - - - - - ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - - - - - X64 - - - ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - MachineX64 - - - - - ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - - - - - X64 - - - ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - MachineX64 - - diff --git a/PCbuild/_socket.vcxproj b/PCbuild/_socket.vcxproj --- a/PCbuild/_socket.vcxproj +++ b/PCbuild/_socket.vcxproj @@ -39,178 +39,32 @@ _socket Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + ws2_32.lib;%(AdditionalDependencies) 0x1e1D0000 - - - X64 - - - ws2_32.lib;%(AdditionalDependencies) - 0x1e1D0000 - - - - - ws2_32.lib;%(AdditionalDependencies) - 0x1e1D0000 - - - - - X64 - - - ws2_32.lib;%(AdditionalDependencies) - 0x1e1D0000 - - - - - ws2_32.lib;%(AdditionalDependencies) - 0x1e1D0000 - - - - - X64 - - - ws2_32.lib;%(AdditionalDependencies) - 0x1e1D0000 - MachineX64 - - - - - ws2_32.lib;%(AdditionalDependencies) - 0x1e1D0000 - - - - - X64 - - - ws2_32.lib;%(AdditionalDependencies) - 0x1e1D0000 - MachineX64 - - diff --git a/PCbuild/_sqlite3.vcxproj b/PCbuild/_sqlite3.vcxproj --- a/PCbuild/_sqlite3.vcxproj +++ b/PCbuild/_sqlite3.vcxproj @@ -39,117 +39,27 @@ _sqlite3 Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + $(sqlite3Dir);%(AdditionalIncludeDirectories) MODULE_NAME="sqlite3";%(PreprocessorDefinitions) @@ -158,83 +68,6 @@ 0x1e180000 - - - X64 - - - $(sqlite3Dir);%(AdditionalIncludeDirectories) - MODULE_NAME="sqlite3";%(PreprocessorDefinitions) - - - 0x1e180000 - - - - - $(sqlite3Dir);%(AdditionalIncludeDirectories) - MODULE_NAME="sqlite3";%(PreprocessorDefinitions) - - - 0x1e180000 - - - - - X64 - - - $(sqlite3Dir);%(AdditionalIncludeDirectories) - MODULE_NAME="sqlite3";%(PreprocessorDefinitions) - - - 0x1e180000 - - - - - $(sqlite3Dir);%(AdditionalIncludeDirectories) - MODULE_NAME="sqlite3";%(PreprocessorDefinitions) - - - 0x1e180000 - - - - - X64 - - - $(sqlite3Dir);%(AdditionalIncludeDirectories) - MODULE_NAME="sqlite3";%(PreprocessorDefinitions) - - - 0x1e180000 - MachineX64 - - - - - $(sqlite3Dir);%(AdditionalIncludeDirectories) - MODULE_NAME="sqlite3";%(PreprocessorDefinitions) - - - 0x1e180000 - - - - - X64 - - - $(sqlite3Dir);%(AdditionalIncludeDirectories) - MODULE_NAME="sqlite3";%(PreprocessorDefinitions) - - - 0x1e180000 - MachineX64 - - diff --git a/PCbuild/_ssl.vcxproj b/PCbuild/_ssl.vcxproj --- a/PCbuild/_ssl.vcxproj +++ b/PCbuild/_ssl.vcxproj @@ -39,242 +39,50 @@ _ssl Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + - $(opensslDir)\inc32;%(AdditionalIncludeDirectories) + $(opensslDir)include;%(AdditionalIncludeDirectories) - - - - - ws2_32.lib;crypt32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies) - - - - - X64 - - - $(opensslDir)\inc64;%(AdditionalIncludeDirectories) - - - - - - - ws2_32.lib;crypt32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies) - - - - - $(opensslDir)\inc32;%(AdditionalIncludeDirectories) - - - - - - - ws2_32.lib;crypt32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies) - - - - - X64 - - - $(opensslDir)\inc64;%(AdditionalIncludeDirectories) - - - - - - - ws2_32.lib;crypt32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies) - - - - - $(opensslDir)\inc32;%(AdditionalIncludeDirectories) - - - - - - - ws2_32.lib;crypt32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies) - - - - - X64 - - - $(opensslDir)\inc64;%(AdditionalIncludeDirectories) - - - - - - - ws2_32.lib;crypt32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies) - MachineX64 - - - - - $(opensslDir)\inc32;%(AdditionalIncludeDirectories) - - - - - - - ws2_32.lib;crypt32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies) - - - - - X64 - - - $(opensslDir)\inc64;%(AdditionalIncludeDirectories) - - - - - - - ws2_32.lib;crypt32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies) - MachineX64 + ws2_32.lib;crypt32.lib;$(OutDir)libeay$(PyDebugExt).lib;$(OutDir)ssleay$(PyDebugExt).lib;%(AdditionalDependencies) - - {b11d750f-cd1f-4a96-85ce-e69a5c5259f9} - false - {cf7ac3d1-e2df-41d2-bea6-1e2556cdea26} false - + {e5b04cc0-eb4c-42ab-b4dc-18ef95f864b0} false + + {10615b24-73bf-4efa-93aa-236916321317} + false + {86937f53-c189-40ef-8ce8-8759d8e7d480} false diff --git a/PCbuild/_testbuffer.vcxproj b/PCbuild/_testbuffer.vcxproj --- a/PCbuild/_testbuffer.vcxproj +++ b/PCbuild/_testbuffer.vcxproj @@ -38,171 +38,33 @@ {A2697BD3-28C1-4AEC-9106-8B748639FD16} _testbuffer Win32Proj + false + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.40219.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + 0x1e1F0000 - - - X64 - - - 0x1e1F0000 - - - - - 0x1e1F0000 - - - - - X64 - - - 0x1e1F0000 - - - - - 0x1e1F0000 - - - - - X64 - - - 0x1e1F0000 - MachineX64 - - - - - 0x1e1F0000 - - - - - X64 - - - 0x1e1F0000 - MachineX64 - - diff --git a/PCbuild/_testcapi.vcxproj b/PCbuild/_testcapi.vcxproj --- a/PCbuild/_testcapi.vcxproj +++ b/PCbuild/_testcapi.vcxproj @@ -38,171 +38,33 @@ {6901D91C-6E48-4BB7-9FEC-700C8131DF1D} _testcapi Win32Proj + false + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + 0x1e1F0000 - - - X64 - - - 0x1e1F0000 - - - - - 0x1e1F0000 - - - - - X64 - - - 0x1e1F0000 - - - - - 0x1e1F0000 - - - - - X64 - - - 0x1e1F0000 - MachineX64 - - - - - 0x1e1F0000 - - - - - X64 - - - 0x1e1F0000 - MachineX64 - - diff --git a/PCbuild/_testembed.vcxproj b/PCbuild/_testembed.vcxproj --- a/PCbuild/_testembed.vcxproj +++ b/PCbuild/_testembed.vcxproj @@ -9,6 +9,22 @@ Debug x64 + + PGInstrument + Win32 + + + PGInstrument + x64 + + + PGUpdate + Win32 + + + PGUpdate + x64 + Release Win32 @@ -22,124 +38,28 @@ {6DAC66D9-E703-4624-BE03-49112AB5AA62} Win32Proj _testembed + false + - + Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true Unicode - - - - - - - - - - - - + - - - - - - - false - - - false - - - false - - - false - - + - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + _CONSOLE;%(PreprocessorDefinitions) Console - true - - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - - - Console - true - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - - - Console - true - true - true - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - - - Console - true - true - true @@ -148,11 +68,7 @@ {cf7ac3d1-e2df-41d2-bea6-1e2556cdea26} - true - true - false - true - false + false diff --git a/PCbuild/_testimportmultiple.vcxproj b/PCbuild/_testimportmultiple.vcxproj --- a/PCbuild/_testimportmultiple.vcxproj +++ b/PCbuild/_testimportmultiple.vcxproj @@ -38,171 +38,33 @@ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781} _testimportmultiple Win32Proj + false + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + 0x1e1F0000 - - - X64 - - - 0x1e1F0000 - - - - - 0x1e1F0000 - - - - - X64 - - - 0x1e1F0000 - - - - - 0x1e1F0000 - - - - - X64 - - - 0x1e1F0000 - MachineX64 - - - - - 0x1e1F0000 - - - - - X64 - - - 0x1e1F0000 - MachineX64 - - diff --git a/PCbuild/_tkinter.vcxproj b/PCbuild/_tkinter.vcxproj --- a/PCbuild/_tkinter.vcxproj +++ b/PCbuild/_tkinter.vcxproj @@ -39,210 +39,35 @@ _tkinter Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + - $(tcltkDir)\include;%(AdditionalIncludeDirectories) + $(tcltkDir)include;%(AdditionalIncludeDirectories) WITH_APPINIT;%(PreprocessorDefinitions) $(tcltkLib);%(AdditionalDependencies) - - - X64 - - - $(tcltkDir)\include;%(AdditionalIncludeDirectories) - WITH_APPINIT;%(PreprocessorDefinitions) - - - $(tcltkLib);%(AdditionalDependencies) - - - - - $(tcltkDir)\include;%(AdditionalIncludeDirectories) - WITH_APPINIT;%(PreprocessorDefinitions) - - - $(tcltkLib);%(AdditionalDependencies) - - - - - X64 - - - $(tcltkDir)\include;%(AdditionalIncludeDirectories) - WITH_APPINIT;%(PreprocessorDefinitions) - - - $(tcltkLib);%(AdditionalDependencies) - - - - - $(tcltkDir)\include;%(AdditionalIncludeDirectories) - WITH_APPINIT;%(PreprocessorDefinitions) - - - $(tcltkLib);%(AdditionalDependencies) - - - - - X64 - - - $(tcltkDir)\include;%(AdditionalIncludeDirectories) - WITH_APPINIT;%(PreprocessorDefinitions) - - - $(tcltkLib);%(AdditionalDependencies) - MachineX64 - - - - - $(tcltkDir)\include;%(AdditionalIncludeDirectories) - WITH_APPINIT;%(PreprocessorDefinitions) - - - $(tcltkLib);%(AdditionalDependencies) - - - - - X64 - - - $(tcltkDir)\include;%(AdditionalIncludeDirectories) - WITH_APPINIT;%(PreprocessorDefinitions) - - - $(tcltkLib);%(AdditionalDependencies) - MachineX64 - - diff --git a/PCbuild/bdist_wininst.vcxproj b/PCbuild/bdist_wininst.vcxproj --- a/PCbuild/bdist_wininst.vcxproj +++ b/PCbuild/bdist_wininst.vcxproj @@ -1,6 +1,30 @@  + + Debug + Win32 + + + Debug + x64 + + + PGInstrument + Win32 + + + PGInstrument + x64 + + + PGUpdate + Win32 + + + PGUpdate + x64 + Release Win32 @@ -13,14 +37,12 @@ {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C} wininst + ClCompile + false + - - Application - false - NotSet - - + Application false NotSet @@ -28,109 +50,32 @@ - + - - - - - - - <_ProjectFileVersion>10.0.30319.1 - ..\lib\distutils\command\ - false - ..\lib\distutils\command\ - $(SolutionDir)$(PlatformName)-temp-$(Configuration)\$(ProjectName)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - .exe - .exe + $(PySourcePath)lib\distutils\command\ + false + wininst-$(VisualStudioVersion) + $(TargetName)-amd64 + .exe - + - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\..\lib\distutils\command\wininst.tlb - - + $(OutDir)wininst.tlb MinSpace - OnlyExplicitInline - ..\PC\bdist_wininst;..\Include;..\Modules\zlib;%(AdditionalIncludeDirectories) + $(PySourcePath)PC\bdist_wininst;$(PySourcePath)Modules\zlib;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - true - MultiThreaded - true - Level3 - true - NDEBUG;%(PreprocessorDefinitions) - 0x0000 - ..\PC;..\PC\bdist_wininst;..\Include;%(AdditionalIncludeDirectories) + $(PySourcePath)PC\bdist_wininst;%(AdditionalIncludeDirectories) comctl32.lib;imagehlp.lib;%(AdditionalDependencies) - ..\lib\distutils\command\wininst-10.0.exe - true - LIBC;%(IgnoreSpecificDefaultLibraries) - ..\lib\distutils\command\wininst-10.0.pdb - Windows - false - - - MachineX86 - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\..\lib\distutils\command\wininst.tlb - - - - - MinSpace - OnlyExplicitInline - ..\PC\bdist_wininst;..\Include;..\Modules\zlib;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - true - MultiThreaded - true - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0000 - ..\PC;..\PC\bdist_wininst;..\Include;%(AdditionalIncludeDirectories) - - - comctl32.lib;imagehlp.lib;%(AdditionalDependencies) - ..\lib\distutils\command\wininst-10.0-amd64.exe - true - LIBC;%(IgnoreSpecificDefaultLibraries) - ..\lib\distutils\command\wininst-9.0-amd64.pdb - Windows - false - - - MachineX64 diff --git a/PCbuild/build.bat b/PCbuild/build.bat --- a/PCbuild/build.bat +++ b/PCbuild/build.bat @@ -6,29 +6,38 @@ rem -c Set the configuration (default: Release) rem -p Set the platform (x64 or Win32, default: Win32) rem -r Target Rebuild instead of Build +rem -t Set the target manually (Build, Rebuild, Clean, or CleanAll) rem -d Set the configuration to Debug rem -e Pull in external libraries using get_externals.bat +rem -M Disable parallel build +rem -v Increased output messages setlocal set platf=Win32 +set vs_platf=x86 set conf=Release set target=Build set dir=%~dp0 +set parallel=/m +set verbose=/nologo /v:m :CheckOpts if '%1'=='-c' (set conf=%2) & shift & shift & goto CheckOpts if '%1'=='-p' (set platf=%2) & shift & shift & goto CheckOpts if '%1'=='-r' (set target=Rebuild) & shift & goto CheckOpts +if '%1'=='-t' (set target=%2) & shift & shift & goto CheckOpts if '%1'=='-d' (set conf=Debug) & shift & goto CheckOpts if '%1'=='-e' call "%dir%get_externals.bat" & shift & goto CheckOpts +if '%1'=='-M' (set parallel=) & shift & goto CheckOpts +if '%1'=='-v' (set verbose=/v:n) & shift & goto CheckOpts if '%platf%'=='x64' (set vs_platf=x86_amd64) rem Setup the environment -call "%VS100COMNTOOLS%..\..\VC\vcvarsall.bat" %vs_platf% +call "%dir%env.bat" %vs_platf% >nul rem Call on MSBuild to do the work, echo the command. rem Passing %1-9 is not the preferred option, but argument parsing in rem batch is, shall we say, "lackluster" echo on -msbuild "%dir%pcbuild.sln" /t:%target% /p:Configuration=%conf% /p:Platform=%platf% %1 %2 %3 %4 %5 %6 %7 %8 %9 +msbuild "%dir%pcbuild.proj" /t:%target% %parallel% %verbose% /p:Configuration=%conf% /p:Platform=%platf% %1 %2 %3 %4 %5 %6 %7 %8 %9 diff --git a/PCbuild/build_pgo.bat b/PCbuild/build_pgo.bat --- a/PCbuild/build_pgo.bat +++ b/PCbuild/build_pgo.bat @@ -7,6 +7,7 @@ setlocal set platf=Win32 +set parallel=/m set dir=%~dp0 rem use the performance testsuite. This is quick and simple @@ -23,26 +24,25 @@ :CheckOpts if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts if "%1"=="-2" (set job=%job2%) & (set clrpath=%path2%) & shift & goto CheckOpts +if "%1"=="-M" (set parallel=) & shift & goto CheckOpts -set PGI=%dir%%platf%-pgi -set PGO=%dir%%platf%-pgo rem We cannot cross compile PGO builds, as the optimization needs to be run natively set vs_platf=x86 -if "%platf%"=="x64" (set vs_platf=amd64) +set PGO=%dir%win32-pgo + +if "%platf%"=="x64" (set vs_platf=amd64) & (set PGO=%dir%amd64-pgo) rem Setup the environment -call "%VS100COMNTOOLS%..\..\VC\vcvarsall.bat" %vs_platf% +call "%dir%env.bat" %vs_platf% + rem build the instrumented version -msbuild "%dir%pcbuild.sln" /t:Build /p:Configuration=PGInstrument /p:Platform=%platf% %1 %2 %3 %4 %5 %6 %7 %8 %9 +msbuild "%dir%pcbuild.proj" %parallel% /t:Build /p:Configuration=PGInstrument /p:Platform=%platf% %1 %2 %3 %4 %5 %6 %7 %8 %9 rem remove .pyc files, .pgc files and execute the job -"%PGI%\python.exe" "%dir%rmpyc.py" %clrpath% -del "%PGI%\*.pgc" -"%PGI%\python.exe" %job% - -rem clean -if exist "%PGO%" del /s /q "%PGO%" +"%PGO%\python.exe" "%dir%rmpyc.py" %clrpath% +del "%PGO%\*.pgc" +"%PGO%\python.exe" %job% rem build optimized version -msbuild "%dir%pcbuild.sln" /t:Build /p:Configuration=PGUpdate /p:Platform=%platf% %1 %2 %3 %4 %5 %6 %7 %8 %9 +msbuild "%dir%pcbuild.proj" %parallel% /t:Build /p:Configuration=PGUpdate /p:Platform=%platf% %1 %2 %3 %4 %5 %6 %7 %8 %9 diff --git a/PCbuild/clean.bat b/PCbuild/clean.bat new file mode 100644 --- /dev/null +++ b/PCbuild/clean.bat @@ -0,0 +1,5 @@ +@echo off +rem A batch program to clean a particular configuration, +rem just for convenience. + +call %~dp0build.bat -t Clean %* diff --git a/PCbuild/debug.props b/PCbuild/debug.props deleted file mode 100644 --- a/PCbuild/debug.props +++ /dev/null @@ -1,31 +0,0 @@ - - - - _d - $(OutDir)kill_python_d.exe - g - - - <_ProjectFileVersion>10.0.30319.1 - $(ProjectName)_d - - - - _DEBUG;%(PreprocessorDefinitions) - - - _DEBUG - - - - - $(PyDebugExt) - - - $(KillPythonExe) - - - $(TclDebugExt) - - - \ No newline at end of file diff --git a/PCbuild/env.bat b/PCbuild/env.bat --- a/PCbuild/env.bat +++ b/PCbuild/env.bat @@ -1,5 +1,16 @@ @echo off +rem This script adds the latest available tools to the path for the current +rem command window. However, most builds of Python will ignore the version +rem of the tools on PATH and use PlatformToolset instead. Ideally, both sets of +rem tools should be the same version to avoid potential conflicts. +rem +rem To build Python with an earlier toolset, pass "/p:PlatformToolset=v100" (or +rem 'v110', 'v120' or 'v140') to the build script. -echo Build environments: x86, ia64, amd64, x86_amd64, x86_ia64 +echo Build environments: x86, amd64, x86_amd64 echo. -call "%VS100COMNTOOLS%..\..\VC\vcvarsall.bat" %1 +set VSTOOLS=%VS140COMNTOOLS% +if "%VSTOOLS%"=="" set VSTOOLS=%VS120COMNTOOLS% +if "%VSTOOLS%"=="" set VSTOOLS=%VS110COMNTOOLS% +if "%VSTOOLS%"=="" set VSTOOLS=%VS100COMNTOOLS% +call "%VSTOOLS%..\..\VC\vcvarsall.bat" %* diff --git a/PCbuild/idle.bat b/PCbuild/idle.bat --- a/PCbuild/idle.bat +++ b/PCbuild/idle.bat @@ -4,10 +4,10 @@ rem -d Run Debug build (python_d.exe). Else release build. setlocal -set exe=python -PATH %PATH%;..\..\tcltk\bin +set exe=win32\python +PATH %PATH%;..\externals\tcltk\bin -if "%1"=="-d" (set exe=python_d) & shift +if "%1"=="-d" (set exe=%exe%_d) & shift set cmd=%exe% ../Lib/idlelib/idle.py %1 %2 %3 %4 %5 %6 %7 %8 %9 diff --git a/PCbuild/installer.bmp b/PCbuild/installer.bmp deleted file mode 100644 index 1875e194ba2720cf25541c20e0459f16f3f96d72..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 GIT binary patch literal 0 Hc$@ -#include -#include -#include - -#pragma comment(lib, "psapi") - -#ifdef _DEBUG -#define PYTHON_EXE (L"python_d.exe") -#define PYTHON_EXE_LEN (12) -#define KILL_PYTHON_EXE (L"kill_python_d.exe") -#define KILL_PYTHON_EXE_LEN (17) -#else -#define PYTHON_EXE (L"python.exe") -#define PYTHON_EXE_LEN (10) -#define KILL_PYTHON_EXE (L"kill_python.exe") -#define KILL_PYTHON_EXE_LEN (15) -#endif - -int -main(int argc, char **argv) -{ - HANDLE hp, hsp, hsm; /* process, snapshot processes, snapshot modules */ - DWORD dac, our_pid; - size_t len; - wchar_t path[MAX_PATH+1]; - - MODULEENTRY32W me; - PROCESSENTRY32W pe; - - me.dwSize = sizeof(MODULEENTRY32W); - pe.dwSize = sizeof(PROCESSENTRY32W); - - memset(path, 0, MAX_PATH+1); - - our_pid = GetCurrentProcessId(); - - hsm = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, our_pid); - if (hsm == INVALID_HANDLE_VALUE) { - printf("CreateToolhelp32Snapshot[1] failed: %d\n", GetLastError()); - return 1; - } - - if (!Module32FirstW(hsm, &me)) { - printf("Module32FirstW[1] failed: %d\n", GetLastError()); - CloseHandle(hsm); - return 1; - } - - /* - * Enumerate over the modules for the current process in order to find - * kill_process[_d].exe, then take a note of the directory it lives in. - */ - do { - if (_wcsnicmp(me.szModule, KILL_PYTHON_EXE, KILL_PYTHON_EXE_LEN)) - continue; - - len = wcsnlen_s(me.szExePath, MAX_PATH) - KILL_PYTHON_EXE_LEN; - wcsncpy_s(path, MAX_PATH+1, me.szExePath, len); - - break; - - } while (Module32NextW(hsm, &me)); - - CloseHandle(hsm); - - if (path == NULL) { - printf("failed to discern directory of running process\n"); - return 1; - } - - /* - * Take a snapshot of system processes. Enumerate over the snapshot, - * looking for python processes. When we find one, verify it lives - * in the same directory we live in. If it does, kill it. If we're - * unable to kill it, treat this as a fatal error and return 1. - * - * The rationale behind this is that we're called at the start of the - * build process on the basis that we'll take care of killing any - * running instances, such that the build won't encounter permission - * denied errors during linking. If we can't kill one of the processes, - * we can't provide this assurance, and the build shouldn't start. - */ - - hsp = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); - if (hsp == INVALID_HANDLE_VALUE) { - printf("CreateToolhelp32Snapshot[2] failed: %d\n", GetLastError()); - return 1; - } - - if (!Process32FirstW(hsp, &pe)) { - printf("Process32FirstW failed: %d\n", GetLastError()); - CloseHandle(hsp); - return 1; - } - - dac = PROCESS_QUERY_INFORMATION | PROCESS_VM_READ | PROCESS_TERMINATE; - do { - - /* - * XXX TODO: if we really wanted to be fancy, we could check the - * modules for all processes (not just the python[_d].exe ones) - * and see if any of our DLLs are loaded (i.e. python35[_d].dll), - * as that would also inhibit our ability to rebuild the solution. - * Not worth loosing sleep over though; for now, a simple check - * for just the python executable should be sufficient. - */ - - if (_wcsnicmp(pe.szExeFile, PYTHON_EXE, PYTHON_EXE_LEN)) - /* This isn't a python process. */ - continue; - - /* It's a python process, so figure out which directory it's in... */ - hsm = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pe.th32ProcessID); - if (hsm == INVALID_HANDLE_VALUE) - /* - * If our module snapshot fails (which will happen if we don't own - * the process), just ignore it and continue. (It seems different - * versions of Windows return different values for GetLastError() - * in this situation; it's easier to just ignore it and move on vs. - * stopping the build for what could be a false positive.) - */ - continue; - - if (!Module32FirstW(hsm, &me)) { - printf("Module32FirstW[2] failed: %d\n", GetLastError()); - CloseHandle(hsp); - CloseHandle(hsm); - return 1; - } - - do { - if (_wcsnicmp(me.szModule, PYTHON_EXE, PYTHON_EXE_LEN)) - /* Wrong module, we're looking for python[_d].exe... */ - continue; - - if (_wcsnicmp(path, me.szExePath, len)) - /* Process doesn't live in our directory. */ - break; - - /* Python process residing in the right directory, kill it! */ - hp = OpenProcess(dac, FALSE, pe.th32ProcessID); - if (!hp) { - printf("OpenProcess failed: %d\n", GetLastError()); - CloseHandle(hsp); - CloseHandle(hsm); - return 1; - } - - if (!TerminateProcess(hp, 1)) { - printf("TerminateProcess failed: %d\n", GetLastError()); - CloseHandle(hsp); - CloseHandle(hsm); - CloseHandle(hp); - return 1; - } - - CloseHandle(hp); - break; - - } while (Module32NextW(hsm, &me)); - - CloseHandle(hsm); - - } while (Process32NextW(hsp, &pe)); - - CloseHandle(hsp); - - return 0; -} - -/* vi: set ts=8 sw=4 sts=4 expandtab */ diff --git a/PCbuild/kill_python.vcxproj b/PCbuild/kill_python.vcxproj deleted file mode 100644 --- a/PCbuild/kill_python.vcxproj +++ /dev/null @@ -1,120 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} - kill_python - Win32Proj - - - - Application - NotSet - true - - - Application - NotSet - - - Application - NotSet - true - - - Application - NotSet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - - - - $(OutDir)$(ProjectName)_d.exe - Console - - - - - X64 - - - $(OutDir)$(ProjectName)_d.exe - Console - - - - - Console - - - - - X64 - - - Console - - - - - - - - - \ No newline at end of file diff --git a/PCbuild/kill_python.vcxproj.filters b/PCbuild/kill_python.vcxproj.filters deleted file mode 100644 --- a/PCbuild/kill_python.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {48606591-c8b6-41a5-95c5-9a0890c5504f} - - - - - Source Files - - - \ No newline at end of file diff --git a/PCbuild/libeay.vcxproj b/PCbuild/libeay.vcxproj new file mode 100644 --- /dev/null +++ b/PCbuild/libeay.vcxproj @@ -0,0 +1,892 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + PGInstrument + Win32 + + + PGInstrument + x64 + + + PGUpdate + Win32 + + + PGUpdate + x64 + + + Debug + x64 + + + Release + x64 + + + + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0} + libeay + + + + + + + + StaticLibrary + $(opensslDir)tmp32\libeay\ + $(opensslDir)tmp64\libeay\ + + + + + + + <_DATEValue>#define DATE "$([System.DateTime]::Now.ToString(`ddd MMM dd HH':'mm':'ss yyyy`))" + <_CFLAGSValue>#define CFLAGS "cl /MD /Ox -W3 -Gs0 -Gy -nologo @(PreprocessorDefinitions->'-D%(Identity)',' ')" + <_PLATFORMValue Condition="$(Platform)=='Win32'">#define PLATFORM "VC-WIN32" + <_PLATFORMValue Condition="$(Platform)=='x64'">#define PLATFORM "VC-WIN64A" + + + + + + + + + + + + $(IntDir);%(AdditionalIncludeDirectories) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PCbuild/make_buildinfo.c b/PCbuild/make_buildinfo.c deleted file mode 100644 --- a/PCbuild/make_buildinfo.c +++ /dev/null @@ -1,194 +0,0 @@ -#include -#include -#include -#include -#include - -#define CMD_SIZE 500 - -/* This file creates the getbuildinfo.o object, by first - invoking subwcrev.exe (if found), and then invoking cl.exe. - As a side effect, it might generate PCBuild\getbuildinfo2.c - also. If this isn't a subversion checkout, or subwcrev isn't - found, it compiles ..\\Modules\\getbuildinfo.c instead. - - Currently, subwcrev.exe is found from the registry entries - of TortoiseSVN. - - No attempt is made to place getbuildinfo.o into the proper - binary directory. This isn't necessary, as this tool is - invoked as a pre-link step for pythoncore, so that overwrites - any previous getbuildinfo.o. - - However, if a second argument is provided, this will be used - as a temporary directory where any getbuildinfo2.c and - getbuildinfo.o files are put. This is useful if multiple - configurations are being built in parallel, to avoid them - trampling each other's files. - -*/ - -int make_buildinfo2(const char *tmppath) -{ - struct _stat st; - HKEY hTortoise; - char command[CMD_SIZE+1]; - DWORD type, size; - if (_stat(".svn", &st) < 0) - return 0; - /* Allow suppression of subwcrev.exe invocation if a no_subwcrev file is present. */ - if (_stat("no_subwcrev", &st) == 0) - return 0; - if (RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\TortoiseSVN", &hTortoise) != ERROR_SUCCESS && - RegOpenKey(HKEY_CURRENT_USER, "Software\\TortoiseSVN", &hTortoise) != ERROR_SUCCESS) - /* Tortoise not installed */ - return 0; - command[0] = '"'; /* quote the path to the executable */ - size = sizeof(command) - 1; - if (RegQueryValueEx(hTortoise, "Directory", 0, &type, command+1, &size) != ERROR_SUCCESS || - type != REG_SZ) - /* Registry corrupted */ - return 0; - strcat_s(command, CMD_SIZE, "bin\\subwcrev.exe"); - if (_stat(command+1, &st) < 0) - /* subwcrev.exe not part of the release */ - return 0; - strcat_s(command, CMD_SIZE, "\" .. ..\\Modules\\getbuildinfo.c \""); - strcat_s(command, CMD_SIZE, tmppath); /* quoted tmppath */ - strcat_s(command, CMD_SIZE, "getbuildinfo2.c\""); - puts(command); fflush(stdout); - if (system(command) < 0) - return 0; - return 1; -} - -const char DELIMS[] = { " \n" }; - -int get_mercurial_info(char * hgbranch, char * hgtag, char * hgrev, int size) -{ - int result = 0; - char filename[CMD_SIZE]; - char cmdline[CMD_SIZE]; - - strcpy_s(filename, CMD_SIZE, "tmpXXXXXX"); - if (_mktemp_s(filename, CMD_SIZE) == 0) { - int rc; - - strcpy_s(cmdline, CMD_SIZE, "hg id -bit > "); - strcat_s(cmdline, CMD_SIZE, filename); - rc = system(cmdline); - if (rc == 0) { - FILE * fp; - - if (fopen_s(&fp, filename, "r") == 0) { - char * cp = fgets(cmdline, CMD_SIZE, fp); - - if (cp) { - char * context = NULL; - char * tp = strtok_s(cp, DELIMS, &context); - if (tp) { - strcpy_s(hgrev, size, tp); - tp = strtok_s(NULL, DELIMS, &context); - if (tp) { - strcpy_s(hgbranch, size, tp); - tp = strtok_s(NULL, DELIMS, &context); - if (tp) { - strcpy_s(hgtag, size, tp); - result = 1; - } - } - } - } - fclose(fp); - } - } - _unlink(filename); - } - return result; -} - -int main(int argc, char*argv[]) -{ - char command[CMD_SIZE] = "cl.exe -c -D_WIN32 -DUSE_DL_EXPORT -D_WINDOWS -DWIN32 -D_WINDLL "; - char tmppath[CMD_SIZE] = ""; - int do_unlink, result; - char *tmpdir = NULL; - if (argc <= 2 || argc > 3) { - fprintf(stderr, "make_buildinfo $(ConfigurationName) [tmpdir]\n"); - return EXIT_FAILURE; - } - if (strcmp(argv[1], "Release") == 0) { - strcat_s(command, CMD_SIZE, "-MD "); - } - else if (strcmp(argv[1], "Debug") == 0) { - strcat_s(command, CMD_SIZE, "-D_DEBUG -MDd "); - } - else if (strcmp(argv[1], "ReleaseItanium") == 0) { - strcat_s(command, CMD_SIZE, "-MD /USECL:MS_ITANIUM "); - } - else if (strcmp(argv[1], "ReleaseAMD64") == 0) { - strcat_s(command, CMD_SIZE, "-MD "); - strcat_s(command, CMD_SIZE, "-MD /USECL:MS_OPTERON "); - } - else { - fprintf(stderr, "unsupported configuration %s\n", argv[1]); - return EXIT_FAILURE; - } - if (argc > 2) { - tmpdir = argv[2]; - strcat_s(tmppath, _countof(tmppath), tmpdir); - /* Hack fix for bad command line: If the command is issued like this: - * $(SolutionDir)make_buildinfo.exe" Debug "$(IntDir)" - * we will get a trailing quote because IntDir ends with a backslash that then - * escapes the final ". To simplify the life for developers, catch that problem - * here by cutting it off. - * The proper command line, btw is: - * $(SolutionDir)make_buildinfo.exe" Debug "$(IntDir)\" - * Hooray for command line parsing on windows. - */ - if (strlen(tmppath) > 0 && tmppath[strlen(tmppath)-1] == '"') - tmppath[strlen(tmppath)-1] = '\0'; - strcat_s(tmppath, _countof(tmppath), "\\"); - } - - if ((do_unlink = make_buildinfo2(tmppath))) { - strcat_s(command, CMD_SIZE, "\""); - strcat_s(command, CMD_SIZE, tmppath); - strcat_s(command, CMD_SIZE, "getbuildinfo2.c\" -DSUBWCREV "); - } - else { - char hgtag[CMD_SIZE]; - char hgbranch[CMD_SIZE]; - char hgrev[CMD_SIZE]; - - if (get_mercurial_info(hgbranch, hgtag, hgrev, CMD_SIZE)) { - strcat_s(command, CMD_SIZE, "-DHGBRANCH=\\\""); - strcat_s(command, CMD_SIZE, hgbranch); - strcat_s(command, CMD_SIZE, "\\\""); - - strcat_s(command, CMD_SIZE, " -DHGTAG=\\\""); - strcat_s(command, CMD_SIZE, hgtag); - strcat_s(command, CMD_SIZE, "\\\""); - - strcat_s(command, CMD_SIZE, " -DHGVERSION=\\\""); - strcat_s(command, CMD_SIZE, hgrev); - strcat_s(command, CMD_SIZE, "\\\" "); - } - strcat_s(command, CMD_SIZE, "..\\Modules\\getbuildinfo.c"); - } - strcat_s(command, CMD_SIZE, " -Fo\""); - strcat_s(command, CMD_SIZE, tmppath); - strcat_s(command, CMD_SIZE, "getbuildinfo.o\" -I..\\Include -I..\\PC"); - puts(command); fflush(stdout); - result = system(command); - if (do_unlink) { - command[0] = '\0'; - strcat_s(command, CMD_SIZE, "\""); - strcat_s(command, CMD_SIZE, tmppath); - strcat_s(command, CMD_SIZE, "getbuildinfo2.c\""); - _unlink(command); - } - if (result < 0) - return EXIT_FAILURE; - return 0; -} diff --git a/PCbuild/make_buildinfo.vcxproj b/PCbuild/make_buildinfo.vcxproj deleted file mode 100644 --- a/PCbuild/make_buildinfo.vcxproj +++ /dev/null @@ -1,52 +0,0 @@ - - - - - Release - Win32 - - - - {C73F0EC1-358B-4177-940F-0846AC8B04CD} - make_buildinfo - Win32Proj - - - - Application - NotSet - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - AllRules.ruleset - - - - - - Disabled - OnlyExplicitInline - _CONSOLE;%(PreprocessorDefinitions) - MultiThreaded - - - $(OutDir)make_buildinfo.exe - Console - - - - - - - - - \ No newline at end of file diff --git a/PCbuild/make_buildinfo.vcxproj.filters b/PCbuild/make_buildinfo.vcxproj.filters deleted file mode 100644 --- a/PCbuild/make_buildinfo.vcxproj.filters +++ /dev/null @@ -1,14 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - Source Files - - - \ No newline at end of file diff --git a/PCbuild/make_versioninfo.vcxproj b/PCbuild/make_versioninfo.vcxproj deleted file mode 100644 --- a/PCbuild/make_versioninfo.vcxproj +++ /dev/null @@ -1,200 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {F0E0541E-F17D-430B-97C4-93ADF0DD284E} - make_versioninfo - - - - Application - false - NotSet - - - Application - false - MultiByte - - - Application - - - Application - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - - - - Build PC/pythonnt_rc(_d).h - cd $(SolutionDir) -make_versioninfo.exe > ..\PC\pythonnt_rc.h - - $(SolutionDir)..\PC\pythonnt_rc.h;%(Outputs) - $(SolutionDir)make_versioninfo.exe - - - MaxSpeed - OnlyExplicitInline - true - %(AdditionalIncludeDirectories) - _CONSOLE;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Default - - - $(SolutionDir)make_versioninfo.exe - Console - 0x1d000000 - - - - - - - - - - Build PC/pythonnt_rc(_d).h - cd $(SolutionDir) -make_versioninfo.exe > ..\PC\pythonnt_rc.h - - $(SolutionDir)..\PC\pythonnt_rc.h;%(Outputs) - - - MaxSpeed - OnlyExplicitInline - true - _CONSOLE;%(PreprocessorDefinitions) - - - $(SolutionDir)make_versioninfo.exe - - - cd $(SolutionDir) -make_versioninfo.exe > ..\PC\python_nt.h - - - - - - Build PC/pythonnt_rc(_d).h - cd $(SolutionDir) -make_versioninfo_d.exe > ..\PC\pythonnt_rc_d.h - - $(SolutionDir)..\PC\pythonnt_rc_d.h;%(Outputs) - $(SolutionDir)make_versioninfo_d.exe - - - Disabled - OnlyExplicitInline - false - %(AdditionalIncludeDirectories) - _CONSOLE;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Default - - - $(SolutionDir)make_versioninfo_d.exe - Console - 0x1d000000 - - - - - - - - - Build PC/pythonnt_rc(_d).h - cd $(SolutionDir) -make_versioninfo_d.exe > ..\PC\pythonnt_rc_d.h - - $(SolutionDir)..\PC\pythonnt_rc_d.h;%(Outputs) - - - X64 - - - Disabled - OnlyExplicitInline - false - _CONSOLE;%(PreprocessorDefinitions) - - - $(SolutionDir)make_versioninfo_d.exe - MachineX64 - - - cd $(SolutionDir) -make_versioninfo_d.exe > ..\PC\python_nt_d.h - - - - - - - - - - \ No newline at end of file diff --git a/PCbuild/make_versioninfo.vcxproj.filters b/PCbuild/make_versioninfo.vcxproj.filters deleted file mode 100644 --- a/PCbuild/make_versioninfo.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {e4180954-c3a5-4749-b9a4-31b804ee4fa8} - - - - - Source Files - - - \ No newline at end of file diff --git a/PCbuild/openssl.props b/PCbuild/openssl.props new file mode 100644 --- /dev/null +++ b/PCbuild/openssl.props @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_PreprocessorDefinitionList>@(PreprocessorDefinitions) + + + + + + 4244;4267 + $(opensslDir);$(opensslDir)include;$(opensslDir)crypto;$(opensslDir)crypto\asn1;$(opensslDir)crypto\evp;$(opensslDir)crypto\modes + $(_PreprocessorDefinitionList);%(PreprocessorDefinitions) + + + + + + "$(nasmDir)nasm.exe" -f win32 + "$(nasmDir)nasm.exe" -f win64 -DNEAR -Ox -g + + + + + + + + + + + \ No newline at end of file diff --git a/PCbuild/pcbuild.proj b/PCbuild/pcbuild.proj new file mode 100644 --- /dev/null +++ b/PCbuild/pcbuild.proj @@ -0,0 +1,86 @@ + + + + {CC9B93A2-439D-4058-9D29-6DCF43774405} + Win32 + Release + true + true + true + + + + + $(Platform) + $(Configuration) + + Build + Clean + CleanAll + true + + + + + + + false + + + + + + + + + + + + + + + + + + + + + + + false + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln --- a/PCbuild/pcbuild.sln +++ b/PCbuild/pcbuild.sln @@ -1,5 +1,7 @@ -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.30501.0 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{553EC33E-9816-4996-A660-5D6186A0B0B3}" ProjectSection(SolutionItems) = preProject ..\Modules\getbuildinfo.c = ..\Modules\getbuildinfo.c @@ -8,14 +10,10 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcxproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_versioninfo", "make_versioninfo.vcxproj", "{F0E0541E-F17D-430B-97C4-93ADF0DD284E}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcxproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcxproj", "{F4229CC3-873C-49AE-9729-DD308ED4CD4A}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buildinfo.vcxproj", "{C73F0EC1-358B-4177-940F-0846AC8B04CD}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcxproj", "{28B5D777-DDF2-4B6B-B34F-31D938813856}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_decimal", "_decimal.vcxproj", "{0E9791DB-593A-465F-98BC-681011311617}" @@ -58,10 +56,6 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_multiprocessing", "_multiprocessing.vcxproj", "{9E48B300-37D1-11DD-8C41-005056C00008}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl", "ssl.vcxproj", "{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kill_python", "kill_python.vcxproj", "{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python3dll", "python3dll.vcxproj", "{885D4898-D08D-4091-9C40-C700CFE3FC5A}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xxlimited", "xxlimited.vcxproj", "{F749B822-B489-4CA5-A3AD-CE078F5F338A}" @@ -80,9 +74,13 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcl", "tcl.vcxproj", "{B5FD6F1D-129E-4BFF-9340-03606FAC7283}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tix", "tix.vcxproj", "{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}" +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tk", "tk.vcxproj", "{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tix", "tix.vcxproj", "{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libeay", "libeay.vcxproj", "{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssleay", "ssleay.vcxproj", "{10615B24-73BF-4EFA-93AA-236916321317}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -112,22 +110,6 @@ {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.Build.0 = Release|Win32 {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.ActiveCfg = Release|x64 {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.Build.0 = Release|x64 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.ActiveCfg = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.Build.0 = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.ActiveCfg = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.Build.0 = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.Build.0 = Release|Win32 {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.ActiveCfg = Debug|Win32 {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.Build.0 = Debug|Win32 {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.ActiveCfg = Debug|x64 @@ -148,34 +130,18 @@ {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.Build.0 = Debug|Win32 {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.ActiveCfg = Debug|x64 {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.Build.0 = Debug|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.Build.0 = Release|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.ActiveCfg = Release|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.Build.0 = Release|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.Build.0 = Release|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.ActiveCfg = Release|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.Build.0 = Release|x64 {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.ActiveCfg = Release|Win32 {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.Build.0 = Release|Win32 {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.ActiveCfg = Release|x64 {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.Build.0 = Release|x64 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.Build.0 = Release|Win32 {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.ActiveCfg = Debug|Win32 {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.Build.0 = Debug|Win32 {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.ActiveCfg = Debug|x64 @@ -228,14 +194,14 @@ {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.Build.0 = Debug|Win32 {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.ActiveCfg = Debug|x64 {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.Build.0 = Debug|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.Build.0 = Release|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.ActiveCfg = Release|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.Build.0 = Release|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.Build.0 = Release|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.ActiveCfg = Release|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.Build.0 = Release|x64 {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.ActiveCfg = Release|Win32 {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.Build.0 = Release|Win32 {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.ActiveCfg = Release|x64 @@ -340,14 +306,14 @@ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Debug|Win32.Build.0 = Debug|Win32 {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Debug|x64.ActiveCfg = Debug|x64 {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Debug|x64.Build.0 = Debug|x64 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGInstrument|Win32.Build.0 = Release|Win32 + {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGInstrument|x64.ActiveCfg = Release|x64 + {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGInstrument|x64.Build.0 = Release|x64 + {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGUpdate|Win32.Build.0 = Release|Win32 + {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGUpdate|x64.ActiveCfg = Release|x64 + {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGUpdate|x64.Build.0 = Release|x64 {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Release|Win32.ActiveCfg = Release|Win32 {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Release|Win32.Build.0 = Release|Win32 {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Release|x64.ActiveCfg = Release|x64 @@ -448,14 +414,16 @@ {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.Build.0 = Release|Win32 {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.ActiveCfg = Release|x64 {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.Build.0 = Release|x64 - {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|Win32.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|Win32.ActiveCfg = Debug|Win32 {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|x64.ActiveCfg = Release|x64 {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|Win32.ActiveCfg = Release|Win32 {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|x64.ActiveCfg = Release|x64 {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|Win32.ActiveCfg = Release|Win32 {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|x64.ActiveCfg = Release|x64 {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|Win32.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|Win32.Build.0 = Release|Win32 {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|x64.ActiveCfg = Release|x64 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|x64.Build.0 = Release|x64 {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|Win32.ActiveCfg = Debug|Win32 {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|Win32.Build.0 = Debug|Win32 {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|x64.ActiveCfg = Debug|x64 @@ -504,49 +472,18 @@ {9E48B300-37D1-11DD-8C41-005056C00008}.Release|Win32.Build.0 = Release|Win32 {9E48B300-37D1-11DD-8C41-005056C00008}.Release|x64.ActiveCfg = Release|x64 {9E48B300-37D1-11DD-8C41-005056C00008}.Release|x64.Build.0 = Release|x64 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Debug|Win32.ActiveCfg = Debug|Win32 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Debug|Win32.Build.0 = Debug|Win32 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Debug|x64.ActiveCfg = Debug|x64 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Debug|x64.Build.0 = Debug|x64 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Release|Win32.ActiveCfg = Release|Win32 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Release|Win32.Build.0 = Release|Win32 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Release|x64.ActiveCfg = Release|x64 - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Release|x64.Build.0 = Release|x64 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|Win32.ActiveCfg = Debug|Win32 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|Win32.Build.0 = Debug|Win32 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|x64.ActiveCfg = Debug|x64 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|x64.Build.0 = Debug|x64 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|Win32.ActiveCfg = Release|Win32 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|Win32.Build.0 = Release|Win32 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|x64.ActiveCfg = Release|x64 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|x64.Build.0 = Release|x64 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|Win32.ActiveCfg = Release|Win32 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|Win32.Build.0 = Release|Win32 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|x64.ActiveCfg = Release|x64 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|x64.Build.0 = Release|x64 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|Win32.ActiveCfg = Release|Win32 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|Win32.Build.0 = Release|Win32 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|x64.ActiveCfg = Release|x64 - {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|x64.Build.0 = Release|x64 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Debug|Win32.ActiveCfg = PGInstrument|Win32 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Debug|x64.ActiveCfg = PGUpdate|x64 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Debug|x64.Build.0 = PGUpdate|x64 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Debug|Win32.ActiveCfg = Debug|Win32 + {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Debug|Win32.Build.0 = Debug|Win32 + {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Debug|x64.ActiveCfg = Debug|x64 + {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Debug|x64.Build.0 = Debug|x64 + {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGInstrument|Win32.ActiveCfg = Debug|Win32 + {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGInstrument|Win32.Build.0 = Debug|Win32 + {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGInstrument|x64.ActiveCfg = Debug|x64 + {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGInstrument|x64.Build.0 = Debug|x64 + {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGUpdate|Win32.ActiveCfg = Debug|Win32 + {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGUpdate|Win32.Build.0 = Debug|Win32 + {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGUpdate|x64.ActiveCfg = Debug|x64 + {885D4898-D08D-4091-9C40-C700CFE3FC5A}.PGUpdate|x64.Build.0 = Debug|x64 {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Release|Win32.ActiveCfg = Release|Win32 {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Release|Win32.Build.0 = Release|Win32 {885D4898-D08D-4091-9C40-C700CFE3FC5A}.Release|x64.ActiveCfg = Release|x64 @@ -569,14 +506,14 @@ {A2697BD3-28C1-4AEC-9106-8B748639FD16}.Debug|Win32.Build.0 = Debug|Win32 {A2697BD3-28C1-4AEC-9106-8B748639FD16}.Debug|x64.ActiveCfg = Debug|x64 {A2697BD3-28C1-4AEC-9106-8B748639FD16}.Debug|x64.Build.0 = Debug|x64 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGInstrument|Win32.Build.0 = Release|Win32 + {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGInstrument|x64.ActiveCfg = Release|x64 + {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGInstrument|x64.Build.0 = Release|x64 + {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGUpdate|Win32.Build.0 = Release|Win32 + {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGUpdate|x64.ActiveCfg = Release|x64 + {A2697BD3-28C1-4AEC-9106-8B748639FD16}.PGUpdate|x64.Build.0 = Release|x64 {A2697BD3-28C1-4AEC-9106-8B748639FD16}.Release|Win32.ActiveCfg = Release|Win32 {A2697BD3-28C1-4AEC-9106-8B748639FD16}.Release|Win32.Build.0 = Release|Win32 {A2697BD3-28C1-4AEC-9106-8B748639FD16}.Release|x64.ActiveCfg = Release|x64 @@ -585,34 +522,34 @@ {7B2727B5-5A3F-40EE-A866-43A13CD31446}.Debug|Win32.Build.0 = Debug|Win32 {7B2727B5-5A3F-40EE-A866-43A13CD31446}.Debug|x64.ActiveCfg = Debug|x64 {7B2727B5-5A3F-40EE-A866-43A13CD31446}.Debug|x64.Build.0 = Debug|x64 - {7B2727B5-5A3F-40EE-A866-43A13CD31446}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {7B2727B5-5A3F-40EE-A866-43A13CD31446}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {7B2727B5-5A3F-40EE-A866-43A13CD31446}.PGInstrument|x64.ActiveCfg = PGInstrument|Win32 - {7B2727B5-5A3F-40EE-A866-43A13CD31446}.PGInstrument|x64.Build.0 = PGInstrument|Win32 - {7B2727B5-5A3F-40EE-A866-43A13CD31446}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {7B2727B5-5A3F-40EE-A866-43A13CD31446}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {7B2727B5-5A3F-40EE-A866-43A13CD31446}.PGUpdate|x64.ActiveCfg = PGUpdate|Win32 - {7B2727B5-5A3F-40EE-A866-43A13CD31446}.PGUpdate|x64.Build.0 = PGUpdate|Win32 + {7B2727B5-5A3F-40EE-A866-43A13CD31446}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {7B2727B5-5A3F-40EE-A866-43A13CD31446}.PGInstrument|Win32.Build.0 = Release|Win32 + {7B2727B5-5A3F-40EE-A866-43A13CD31446}.PGInstrument|x64.ActiveCfg = Release|x64 + {7B2727B5-5A3F-40EE-A866-43A13CD31446}.PGInstrument|x64.Build.0 = Release|x64 + {7B2727B5-5A3F-40EE-A866-43A13CD31446}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {7B2727B5-5A3F-40EE-A866-43A13CD31446}.PGUpdate|Win32.Build.0 = Release|Win32 + {7B2727B5-5A3F-40EE-A866-43A13CD31446}.PGUpdate|x64.ActiveCfg = Release|x64 + {7B2727B5-5A3F-40EE-A866-43A13CD31446}.PGUpdate|x64.Build.0 = Release|x64 {7B2727B5-5A3F-40EE-A866-43A13CD31446}.Release|Win32.ActiveCfg = Release|Win32 {7B2727B5-5A3F-40EE-A866-43A13CD31446}.Release|Win32.Build.0 = Release|Win32 - {7B2727B5-5A3F-40EE-A866-43A13CD31446}.Release|x64.ActiveCfg = Release|Win32 - {7B2727B5-5A3F-40EE-A866-43A13CD31446}.Release|x64.Build.0 = Release|Win32 + {7B2727B5-5A3F-40EE-A866-43A13CD31446}.Release|x64.ActiveCfg = Release|x64 + {7B2727B5-5A3F-40EE-A866-43A13CD31446}.Release|x64.Build.0 = Release|x64 {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.Debug|Win32.ActiveCfg = Debug|Win32 {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.Debug|Win32.Build.0 = Debug|Win32 {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.Debug|x64.ActiveCfg = Debug|x64 {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.Debug|x64.Build.0 = Debug|x64 - {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.PGInstrument|x64.ActiveCfg = PGInstrument|Win32 - {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.PGInstrument|x64.Build.0 = PGInstrument|Win32 - {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.PGUpdate|x64.ActiveCfg = PGUpdate|Win32 - {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.PGUpdate|x64.Build.0 = PGUpdate|Win32 + {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.PGInstrument|Win32.Build.0 = Release|Win32 + {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.PGInstrument|x64.ActiveCfg = Release|x64 + {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.PGInstrument|x64.Build.0 = Release|x64 + {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.PGUpdate|Win32.Build.0 = Release|Win32 + {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.PGUpdate|x64.ActiveCfg = Release|x64 + {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.PGUpdate|x64.Build.0 = Release|x64 {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.Release|Win32.ActiveCfg = Release|Win32 {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.Release|Win32.Build.0 = Release|Win32 - {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.Release|x64.ActiveCfg = Release|Win32 - {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.Release|x64.Build.0 = Release|Win32 + {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.Release|x64.ActiveCfg = Release|x64 + {1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.Release|x64.Build.0 = Release|x64 {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Debug|Win32.ActiveCfg = Debug|Win32 {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Debug|x64.ActiveCfg = Debug|x64 {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGInstrument|Win32.ActiveCfg = Release|Win32 @@ -620,7 +557,9 @@ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGUpdate|Win32.ActiveCfg = Release|Win32 {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGUpdate|x64.ActiveCfg = Release|Win32 {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Release|Win32.ActiveCfg = Release|Win32 + {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Release|Win32.Build.0 = Release|Win32 {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Release|x64.ActiveCfg = Release|x64 + {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Release|x64.Build.0 = Release|x64 {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.Debug|Win32.ActiveCfg = Debug|Win32 {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.Debug|Win32.Build.0 = Debug|Win32 {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.Debug|x64.ActiveCfg = Debug|x64 @@ -657,48 +596,80 @@ {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Debug|x64.Build.0 = Debug|x64 {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGInstrument|Win32.ActiveCfg = Release|Win32 {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGInstrument|Win32.Build.0 = Release|Win32 - {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGInstrument|x64.ActiveCfg = Release|x64 + {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGInstrument|x64.Build.0 = Release|x64 {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGUpdate|Win32.ActiveCfg = Release|Win32 {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGUpdate|Win32.Build.0 = Release|Win32 - {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGUpdate|x64.ActiveCfg = Release|x64 + {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGUpdate|x64.Build.0 = Release|x64 {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Release|Win32.ActiveCfg = Release|Win32 {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Release|Win32.Build.0 = Release|Win32 {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Release|x64.ActiveCfg = Release|x64 {B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Release|x64.Build.0 = Release|x64 + {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Debug|Win32.ActiveCfg = Debug|Win32 + {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Debug|Win32.Build.0 = Debug|Win32 + {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Debug|x64.ActiveCfg = Debug|x64 + {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Debug|x64.Build.0 = Debug|x64 + {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGInstrument|Win32.Build.0 = Release|Win32 + {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGInstrument|x64.ActiveCfg = Release|x64 + {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGInstrument|x64.Build.0 = Release|x64 + {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGUpdate|Win32.Build.0 = Release|Win32 + {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGUpdate|x64.ActiveCfg = Release|x64 + {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGUpdate|x64.Build.0 = Release|x64 + {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Release|Win32.ActiveCfg = Release|Win32 + {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Release|Win32.Build.0 = Release|Win32 + {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Release|x64.ActiveCfg = Release|x64 + {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Release|x64.Build.0 = Release|x64 {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Debug|Win32.ActiveCfg = Debug|Win32 {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Debug|Win32.Build.0 = Debug|Win32 {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Debug|x64.ActiveCfg = Debug|x64 {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Debug|x64.Build.0 = Debug|x64 {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGInstrument|Win32.ActiveCfg = Release|Win32 {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGInstrument|Win32.Build.0 = Release|Win32 - {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGInstrument|x64.ActiveCfg = Release|x64 + {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGInstrument|x64.Build.0 = Release|x64 {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGUpdate|Win32.ActiveCfg = Release|Win32 {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGUpdate|Win32.Build.0 = Release|Win32 - {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGUpdate|x64.ActiveCfg = Release|x64 + {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGUpdate|x64.Build.0 = Release|x64 {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Release|Win32.ActiveCfg = Release|Win32 {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Release|Win32.Build.0 = Release|Win32 {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Release|x64.ActiveCfg = Release|x64 {7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Release|x64.Build.0 = Release|x64 - {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Debug|Win32.ActiveCfg = Debug|Win32 - {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Debug|Win32.Build.0 = Debug|Win32 - {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Debug|x64.ActiveCfg = Debug|x64 - {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Debug|x64.Build.0 = Debug|x64 - {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Release|Win32.ActiveCfg = Release|Win32 - {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Release|Win32.Build.0 = Release|Win32 - {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Release|x64.ActiveCfg = Release|x64 - {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Release|x64.Build.0 = Release|x64 + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Debug|Win32.ActiveCfg = Debug|Win32 + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Debug|Win32.Build.0 = Debug|Win32 + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Debug|x64.ActiveCfg = Debug|x64 + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Debug|x64.Build.0 = Debug|x64 + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGInstrument|Win32.Build.0 = Release|Win32 + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGInstrument|x64.ActiveCfg = Release|x64 + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGInstrument|x64.Build.0 = Release|x64 + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGUpdate|Win32.Build.0 = Release|Win32 + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGUpdate|x64.ActiveCfg = Release|x64 + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGUpdate|x64.Build.0 = Release|x64 + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Release|Win32.ActiveCfg = Release|Win32 + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Release|Win32.Build.0 = Release|Win32 + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Release|x64.ActiveCfg = Release|x64 + {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Release|x64.Build.0 = Release|x64 + {10615B24-73BF-4EFA-93AA-236916321317}.Debug|Win32.ActiveCfg = Debug|Win32 + {10615B24-73BF-4EFA-93AA-236916321317}.Debug|Win32.Build.0 = Debug|Win32 + {10615B24-73BF-4EFA-93AA-236916321317}.Debug|x64.ActiveCfg = Debug|x64 + {10615B24-73BF-4EFA-93AA-236916321317}.Debug|x64.Build.0 = Debug|x64 + {10615B24-73BF-4EFA-93AA-236916321317}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {10615B24-73BF-4EFA-93AA-236916321317}.PGInstrument|Win32.Build.0 = Release|Win32 + {10615B24-73BF-4EFA-93AA-236916321317}.PGInstrument|x64.ActiveCfg = Release|x64 + {10615B24-73BF-4EFA-93AA-236916321317}.PGInstrument|x64.Build.0 = Release|x64 + {10615B24-73BF-4EFA-93AA-236916321317}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {10615B24-73BF-4EFA-93AA-236916321317}.PGUpdate|Win32.Build.0 = Release|Win32 + {10615B24-73BF-4EFA-93AA-236916321317}.PGUpdate|x64.ActiveCfg = Release|x64 + {10615B24-73BF-4EFA-93AA-236916321317}.PGUpdate|x64.Build.0 = Release|x64 + {10615B24-73BF-4EFA-93AA-236916321317}.Release|Win32.ActiveCfg = Release|Win32 + {10615B24-73BF-4EFA-93AA-236916321317}.Release|Win32.Build.0 = Release|Win32 + {10615B24-73BF-4EFA-93AA-236916321317}.Release|x64.ActiveCfg = Release|x64 + {10615B24-73BF-4EFA-93AA-236916321317}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/PCbuild/pginstrument.props b/PCbuild/pginstrument.props deleted file mode 100644 --- a/PCbuild/pginstrument.props +++ /dev/null @@ -1,38 +0,0 @@ - - - - $(SolutionDir)$(Platform)-pgi - - - <_ProjectFileVersion>10.0.30319.1 - $(OutDirPGI)\ - $(SolutionDir)$(PlatformName)-temp-pgi\$(ProjectName)\ - - - - MaxSpeed - OnlyExplicitInline - false - Size - true - false - true - true - - - false - - - true - false - PGInstrument - $(SolutionDir)$(Platform)-pgi\$(TargetName).pgd - $(OutDirPGI)\$(TargetName).lib - - - - - $(OutDirPGI) - - - diff --git a/PCbuild/pgupdate.props b/PCbuild/pgupdate.props deleted file mode 100644 --- a/PCbuild/pgupdate.props +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(PlatformName)-pgo\ - - - - %(AdditionalManifestDependencies) - PGUpdate - $(OutDir)$(TargetName).lib - - - \ No newline at end of file diff --git a/PCbuild/pyd.props b/PCbuild/pyd.props deleted file mode 100644 --- a/PCbuild/pyd.props +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - false - false - .pyd - - - - Py_BUILD_CORE_MODULE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - - - - - - - \ No newline at end of file diff --git a/PCbuild/pyd_d.props b/PCbuild/pyd_d.props deleted file mode 100644 --- a/PCbuild/pyd_d.props +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - false - false - false - .pyd - $(ProjectName)_d - - - - Disabled - Default - false - Py_BUILD_CORE_MODULE;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - - - - - - - \ No newline at end of file diff --git a/PCbuild/pyexpat.vcxproj b/PCbuild/pyexpat.vcxproj --- a/PCbuild/pyexpat.vcxproj +++ b/PCbuild/pyexpat.vcxproj @@ -35,186 +35,33 @@ + <_ProjectFileVersion>10.0.30319.1 {D06B6426-4762-44CC-8BAD-D79052507F2F} pyexpat - Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - - + - .\..\Modules\expat;%(AdditionalIncludeDirectories) + $(PySourcePath)Modules\expat;%(AdditionalIncludeDirectories) PYEXPAT_EXPORTS;HAVE_EXPAT_H;XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;XML_STATIC;HAVE_MEMMOVE;%(PreprocessorDefinitions) - - - X64 - - - .\..\Modules\expat;%(AdditionalIncludeDirectories) - PYEXPAT_EXPORTS;HAVE_EXPAT_H;XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;XML_STATIC;HAVE_MEMMOVE;%(PreprocessorDefinitions) - - - - - .\..\Modules\expat;%(AdditionalIncludeDirectories) - PYEXPAT_EXPORTS;HAVE_EXPAT_H;XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;XML_STATIC;HAVE_MEMMOVE;%(PreprocessorDefinitions) - - - - - X64 - - - .\..\Modules\expat;%(AdditionalIncludeDirectories) - PYEXPAT_EXPORTS;HAVE_EXPAT_H;XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;XML_STATIC;HAVE_MEMMOVE;%(PreprocessorDefinitions) - - - - - .\..\Modules\expat;%(AdditionalIncludeDirectories) - PYEXPAT_EXPORTS;HAVE_EXPAT_H;XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;XML_STATIC;HAVE_MEMMOVE;%(PreprocessorDefinitions) - - - - - X64 - - - .\..\Modules\expat;%(AdditionalIncludeDirectories) - PYEXPAT_EXPORTS;HAVE_EXPAT_H;XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;XML_STATIC;HAVE_MEMMOVE;%(PreprocessorDefinitions) - - - MachineX64 - - - - - .\..\Modules\expat;%(AdditionalIncludeDirectories) - PYEXPAT_EXPORTS;HAVE_EXPAT_H;XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;XML_STATIC;HAVE_MEMMOVE;%(PreprocessorDefinitions) - - - - - X64 - - - .\..\Modules\expat;%(AdditionalIncludeDirectories) - PYEXPAT_EXPORTS;HAVE_EXPAT_H;XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;XML_STATIC;HAVE_MEMMOVE;%(PreprocessorDefinitions) - - - MachineX64 - - diff --git a/PCbuild/pylauncher.vcxproj b/PCbuild/pylauncher.vcxproj --- a/PCbuild/pylauncher.vcxproj +++ b/PCbuild/pylauncher.vcxproj @@ -37,256 +37,32 @@ {7B2727B5-5A3F-40EE-A866-43A13CD31446} pylauncher + py + ClCompile + false + - + Application - true - MultiByte - - - Application - true - MultiByte - - - Application - false - true - MultiByte - - - Application - false - true - MultiByte - - - Application - false - true - MultiByte - - - Application - false - true - MultiByte - - - Application - false - true - MultiByte - - - Application - false - true MultiByte - + + ClCompile + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - py_d - - - py_d - - - py - - - py - - - py - - - py - - - py - - - py - - + - Level3 - Disabled _CONSOLE;%(PreprocessorDefinitions) - true - version.lib;%(AdditionalDependencies) - false - Console - $(OutDir)$(TargetName)$(TargetExt) - - - - - Level3 - Disabled - _CONSOLE;%(PreprocessorDefinitions) - - - true - version.lib;%(AdditionalDependencies) - false - Console - $(OutDir)$(TargetName)$(TargetExt) - - - - - Level3 - MaxSpeed - true - true - _CONSOLE;NDEBUG;%(PreprocessorDefinitions) - - - true - false - true - false - version.lib;%(AdditionalDependencies) - Console - - - - - Level3 - MaxSpeed - true - true - _CONSOLE;NDEBUG;%(PreprocessorDefinitions) - - - true - false - true - false - version.lib;%(AdditionalDependencies) - Console - - - - - Level3 - MaxSpeed - true - true - _CONSOLE;NDEBUG;%(PreprocessorDefinitions) - - - true - false - true - false - version.lib;%(AdditionalDependencies) - Console - - - - - Level3 - MaxSpeed - true - true - _CONSOLE;NDEBUG;%(PreprocessorDefinitions) - - - true - false - true - false - version.lib;%(AdditionalDependencies) - Console - - - - - Level3 - MaxSpeed - true - true - _CONSOLE;NDEBUG;%(PreprocessorDefinitions) - - - true - false - true - false - version.lib;%(AdditionalDependencies) - Console - - - - - Level3 - MaxSpeed - true - true - _CONSOLE;NDEBUG;%(PreprocessorDefinitions) - - - true - false - true - false version.lib;%(AdditionalDependencies) Console @@ -300,11 +76,6 @@ - - - {f0e0541e-f17d-430b-97c4-93adf0dd284e} - - diff --git a/PCbuild/pyproject.props b/PCbuild/pyproject.props --- a/PCbuild/pyproject.props +++ b/PCbuild/pyproject.props @@ -1,47 +1,46 @@  - + <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir) - $(SolutionDir)$(PlatformName)-temp-$(Configuration)\$(ProjectName)\ - false + 10.0 + $(BuildPath) + $(SolutionDir)obj\$(ArchName)_$(Configuration)\$(ProjectName)\ + $(SolutionDir)obj\$(ArchName)\$(ProjectName)\ + $(ProjectName) + $(TargetName)$(PyDebugExt) + false + false + true - - <_ProjectFileVersion>10.0.30319.1 - <_PropertySheetDisplayName>amd64 - $(SolutionDir)amd64\ - $(SolutionDir)$(PlatformName)-temp-$(Configuration)\$(ProjectName)\ - - - python35$(PyDebugExt) - $(OutDir)python$(PyDebugExt).exe - $(OutDir)kill_python$(PyDebugExt).exe - ..\externals - $(externalsDir)\sqlite-3.8.3.1 - $(externalsDir)\bzip2-1.0.6 - $(externalsDir)\xz-5.0.5 - $(externalsDir)\nasm-2.11.06 - $(externalsDir)\openssl-1.0.1j - $(externalsDir)\tcl-8.6.1.0 - $(externalsDir)\tk-8.6.1.0 - $(externalsDir)\tix-8.4.3.4 - $(externalsDir)\tcltk + + + <_DebugPreprocessorDefinition>NDEBUG; + <_DebugPreprocessorDefinition Condition="$(Configuration) == 'Debug'">_DEBUG; + <_PlatformPreprocessorDefinition>_WIN32; + <_PlatformPreprocessorDefinition Condition="$(Platform) == 'x64'">_WIN64;_M_X64; + <_PydPreprocessorDefinition Condition="$(TargetExt) == '.pyd'">Py_BUILD_CORE_MODULE; + $(PySourcePath)Include;$(PySourcePath)PC;%(AdditionalIncludeDirectories) + WIN32;$(_PlatformPreprocessorDefinition)$(_DebugPreprocessorDefinition)$(_PydPreprocessorDefinition)%(PreprocessorDefinitions) + MaxSpeed - OnlyExplicitInline true - ..\Include; ..\PC;%(AdditionalIncludeDirectories) - _WIN32;%(PreprocessorDefinitions) true - - - MultiThreaded + + MultiThreadedDLL true Level3 ProgramDatabase Default + true + true + + + Disabled + false + MultiThreadedDebugDLL $(OutDir);%(AdditionalLibraryDirectories) @@ -50,51 +49,92 @@ Windows true true + true + LIBC;%(IgnoreSpecificDefaultLibraries) MachineX86 + MachineX64 + $(OutDir)$(TargetName).pgd + UseLinkTimeCodeGeneration + PGInstrument + PGUpdate + + true + true + true + - ..\PC;..\Include;%(AdditionalIncludeDirectories) + $(PySourcePath)PC;$(PySourcePath)Include;%(AdditionalIncludeDirectories) + $(_DebugPreprocessorDefinition)%(PreprocessorDefinitions) + 0x0409 + + $(_DebugPreprocessorDefinition)%(PreprocessorDefinitions) + true + true + Win32 + X64 + $(OutDir)wininst.tlb + + + - - - $(PyDllName) - - - $(PythonExe) - - - $(KillPythonExe) - - - $(externalsDir) - - - $(sqlite3Dir) - - - $(bz2Dir) - - - $(lzmaDir) - - - $(nasmDir) - - - $(opensslDir) - - - $(tclDir) - - - $(tkDir) - - - $(tixDir) - - - $(tcltkDir) - - + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PCbuild/python.props b/PCbuild/python.props new file mode 100644 --- /dev/null +++ b/PCbuild/python.props @@ -0,0 +1,108 @@ + + + + Win32 + Release + + v140 + v120 + v110 + v100 + + + amd64 + win32 + $(ArchName)-pgo + + + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)\..\)) + $(PySourcePath)\ + + + $(PySourcePath)PCBuild\$(ArchName)\ + $(BuildPath)\ + + + $([System.IO.Path]::GetFullPath(`$(PySourcePath)externals\`)) + $(ExternalsDir)sqlite-3.8.3.1\ + $(ExternalsDir)bzip2-1.0.6\ + $(ExternalsDir)xz-5.0.5\ + $(ExternalsDir)openssl-1.0.1j\ + $(ExternalsDir)\nasm-2.11.06\ + + + _d + + + $(BuildPath)python$(PyDebugExt).exe + + + <_PatchLevelContent>$([System.IO.File]::ReadAllText(`$(PySourcePath)Include\patchlevel.h`)) + $([System.Text.RegularExpressions.Regex]::Match($(_PatchLevelContent), `define\s+PY_MAJOR_VERSION\s+(\d+)`).Groups[1].Value) + $([System.Text.RegularExpressions.Regex]::Match($(_PatchLevelContent), `define\s+PY_MINOR_VERSION\s+(\d+)`).Groups[1].Value) + $([System.Text.RegularExpressions.Regex]::Match($(_PatchLevelContent), `define\s+PY_MICRO_VERSION\s+(\d+)`).Groups[1].Value) + <_ReleaseLevel>$([System.Text.RegularExpressions.Regex]::Match($(_PatchLevelContent), `define\s+PY_RELEASE_LEVEL\s+PY_RELEASE_LEVEL_(\w+)`).Groups[1].Value) + $([System.Text.RegularExpressions.Regex]::Match($(_PatchLevelContent), `define\s+PY_RELEASE_SERIAL\s+(\d+)`).Groups[1].Value) + 15 + 10 + 11 + 12 + a$(ReleaseSerial) + b$(ReleaseSerial) + rc$(ReleaseSerial) + + $(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber) + $(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)$(ReleaseLevelName) + $([msbuild]::BitwiseOr( + $([msbuild]::Multiply($(MajorVersionNumber), 16777216)), + $([msbuild]::BitwiseOr( + $([msbuild]::Multiply($(MinorVersionNumber), 65536)), + $([msbuild]::BitwiseOr( + $([msbuild]::Multiply($(MicroVersionNumber), 256)), + $([msbuild]::BitwiseOr( + $([msbuild]::Multiply($(ReleaseLevelNumber), 16)), + $(ReleaseSerial) + )) + )) + )) + )) + $([msbuild]::Add( + $(ReleaseSerial), + $([msbuild]::Add( + $([msbuild]::Multiply($(ReleaseLevelNumber), 10)), + $([msbuild]::Multiply($(MicroVersionNumber), 1000)) + )) + )) + + + python$(MajorVersionNumber)$(MinorVersionNumber)$(PyDebugExt) + + + + + + + + + + diff --git a/PCbuild/python.vcxproj b/PCbuild/python.vcxproj --- a/PCbuild/python.vcxproj +++ b/PCbuild/python.vcxproj @@ -36,44 +36,11 @@ {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} + ClCompile + - - Application - false - MultiByte - - - Application - false - MultiByte - - - Application - false - NotSet - - - Application - false - MultiByte - - - Application - false - MultiByte - - - Application - false - MultiByte - - - Application - false - MultiByte - - + Application false MultiByte @@ -81,427 +48,23 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - Link - Link - Link - Link - Link - Link - Link - Link - + - %(AdditionalIncludeDirectories) _CONSOLE;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Default - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - $(OutDir)python.exe Console 2000000 0x1d000000 - - echo @rem This script invokes the most recently built Python with all arguments> "$(SolutionDir)..\python.bat" -echo @rem passed through to the interpreter. This file is generated by the>> "$(SolutionDir)..\python.bat" -echo @rem build process and any changes *will* be thrown away by the next>> "$(SolutionDir)..\python.bat" -echo @rem rebuild.>> "$(SolutionDir)..\python.bat" -echo @rem This is only meant as a convenience for developing CPython>> "$(SolutionDir)..\python.bat" -echo @rem and using it outside of that context is ill-advised.>> "$(SolutionDir)..\python.bat" -echo @echo Running $(Configuration)^^^|$(Platform) interpreter...>> "$(SolutionDir)..\python.bat" -echo @"$(OutDir)python$(PyDebugExt).exe" %%*>> "$(SolutionDir)..\python.bat" - - - Creating convenience batch file for easily invoking the newly built interpreter. - - - $(SolutionDir)..\python.bat - - - $(OutDir)python$(PyDebugExt).exe;%(Inputs) - - - - - X64 - - - %(AdditionalIncludeDirectories) - _CONSOLE;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)python.exe - Console - 2000000 - 0x1d000000 - - - echo @rem This script invokes the most recently built Python with all arguments> "$(SolutionDir)..\python.bat" -echo @rem passed through to the interpreter. This file is generated by the>> "$(SolutionDir)..\python.bat" -echo @rem build process and any changes *will* be thrown away by the next>> "$(SolutionDir)..\python.bat" -echo @rem rebuild.>> "$(SolutionDir)..\python.bat" -echo @rem This is only meant as a convenience for developing CPython>> "$(SolutionDir)..\python.bat" -echo @rem and using it outside of that context is ill-advised.>> "$(SolutionDir)..\python.bat" -echo @echo Running $(Configuration)^^^|$(Platform) interpreter...>> "$(SolutionDir)..\python.bat" -echo @"$(OutDir)python$(PyDebugExt).exe" %%*>> "$(SolutionDir)..\python.bat" - - - Creating convenience batch file for easily invoking the newly built interpreter. - - - $(SolutionDir)..\python.bat - - - $(OutDir)python$(PyDebugExt).exe;%(Inputs) - - - - - Disabled - false - %(AdditionalIncludeDirectories) - _CONSOLE;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - true - Default - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - ..\Include;%(AdditionalIncludeDirectories) - - - $(OutDir)python_d.exe - Console - 2000000 - 0x1d000000 - - - echo @rem This script invokes the most recently built Python with all arguments> "$(SolutionDir)..\python.bat" -echo @rem passed through to the interpreter. This file is generated by the>> "$(SolutionDir)..\python.bat" -echo @rem build process and any changes *will* be thrown away by the next>> "$(SolutionDir)..\python.bat" -echo @rem rebuild.>> "$(SolutionDir)..\python.bat" -echo @rem This is only meant as a convenience for developing CPython>> "$(SolutionDir)..\python.bat" -echo @rem and using it outside of that context is ill-advised.>> "$(SolutionDir)..\python.bat" -echo @echo Running $(Configuration)^^^|$(Platform) interpreter...>> "$(SolutionDir)..\python.bat" -echo @"$(OutDir)python$(PyDebugExt).exe" %%*>> "$(SolutionDir)..\python.bat" - - - Creating convenience batch file for easily invoking the newly built interpreter. - - - $(SolutionDir)..\python.bat - - - $(OutDir)python$(PyDebugExt).exe;%(Inputs) - - - - - X64 - - - Disabled - false - %(AdditionalIncludeDirectories) - _CONSOLE;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - true - Default - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - ..\Include;%(AdditionalIncludeDirectories) - - - $(OutDir)python_d.exe - Console - 4194304 - 0x1d000000 - - - echo @rem This script invokes the most recently built Python with all arguments> "$(SolutionDir)..\python.bat" -echo @rem passed through to the interpreter. This file is generated by the>> "$(SolutionDir)..\python.bat" -echo @rem build process and any changes *will* be thrown away by the next>> "$(SolutionDir)..\python.bat" -echo @rem rebuild.>> "$(SolutionDir)..\python.bat" -echo @rem This is only meant as a convenience for developing CPython>> "$(SolutionDir)..\python.bat" -echo @rem and using it outside of that context is ill-advised.>> "$(SolutionDir)..\python.bat" -echo @echo Running $(Configuration)^^^|$(Platform) interpreter...>> "$(SolutionDir)..\python.bat" -echo @"$(OutDir)python$(PyDebugExt).exe" %%*>> "$(SolutionDir)..\python.bat" - - - Creating convenience batch file for easily invoking the newly built interpreter. - - - $(SolutionDir)..\python.bat - - - $(OutDir)python$(PyDebugExt).exe;%(Inputs) - - - - - %(AdditionalIncludeDirectories) - _CONSOLE;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)python.exe - Console - 2000000 - 0x1d000000 - - - - - echo @rem This script invokes the most recently built Python with all arguments> "$(SolutionDir)..\python.bat" -echo @rem passed through to the interpreter. This file is generated by the>> "$(SolutionDir)..\python.bat" -echo @rem build process and any changes *will* be thrown away by the next>> "$(SolutionDir)..\python.bat" -echo @rem rebuild.>> "$(SolutionDir)..\python.bat" -echo @rem This is only meant as a convenience for developing CPython>> "$(SolutionDir)..\python.bat" -echo @rem and using it outside of that context is ill-advised.>> "$(SolutionDir)..\python.bat" -echo @echo Running $(Configuration)^^^|$(Platform) interpreter...>> "$(SolutionDir)..\python.bat" -echo @"$(OutDir)python$(PyDebugExt).exe" %%*>> "$(SolutionDir)..\python.bat" - - - Creating convenience batch file for easily invoking the newly built interpreter. - - - $(SolutionDir)..\python.bat - - - $(OutDir)python$(PyDebugExt).exe;%(Inputs) - - - - - X64 - - - %(AdditionalIncludeDirectories) - _CONSOLE;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)python.exe - Console - 2000000 - 0x1d000000 - - - MachineX64 - - - echo @rem This script invokes the most recently built Python with all arguments> "$(SolutionDir)..\python.bat" -echo @rem passed through to the interpreter. This file is generated by the>> "$(SolutionDir)..\python.bat" -echo @rem build process and any changes *will* be thrown away by the next>> "$(SolutionDir)..\python.bat" -echo @rem rebuild.>> "$(SolutionDir)..\python.bat" -echo @rem This is only meant as a convenience for developing CPython>> "$(SolutionDir)..\python.bat" -echo @rem and using it outside of that context is ill-advised.>> "$(SolutionDir)..\python.bat" -echo @echo Running $(Configuration)^^^|$(Platform) interpreter...>> "$(SolutionDir)..\python.bat" -echo @"$(OutDir)python$(PyDebugExt).exe" %%*>> "$(SolutionDir)..\python.bat" - - - Creating convenience batch file for easily invoking the newly built interpreter. - - - $(SolutionDir)..\python.bat - - - $(OutDir)python$(PyDebugExt).exe;%(Inputs) - - - - - %(AdditionalIncludeDirectories) - _CONSOLE;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)python.exe - Console - 2000000 - 0x1d000000 - - - - - echo @rem This script invokes the most recently built Python with all arguments> "$(SolutionDir)..\python.bat" -echo @rem passed through to the interpreter. This file is generated by the>> "$(SolutionDir)..\python.bat" -echo @rem build process and any changes *will* be thrown away by the next>> "$(SolutionDir)..\python.bat" -echo @rem rebuild.>> "$(SolutionDir)..\python.bat" -echo @rem This is only meant as a convenience for developing CPython>> "$(SolutionDir)..\python.bat" -echo @rem and using it outside of that context is ill-advised.>> "$(SolutionDir)..\python.bat" -echo @echo Running $(Configuration)^^^|$(Platform) interpreter...>> "$(SolutionDir)..\python.bat" -echo @"$(OutDir)python$(PyDebugExt).exe" %%*>> "$(SolutionDir)..\python.bat" - - - Creating convenience batch file for easily invoking the newly built interpreter. - - - $(SolutionDir)..\python.bat - - - $(OutDir)python$(PyDebugExt).exe;%(Inputs) - - - - - X64 - - - %(AdditionalIncludeDirectories) - _CONSOLE;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)python.exe - Console - 2000000 - 0x1d000000 - - - MachineX64 - - - echo @rem This script invokes the most recently built Python with all arguments> "$(SolutionDir)..\python.bat" -echo @rem passed through to the interpreter. This file is generated by the>> "$(SolutionDir)..\python.bat" -echo @rem build process and any changes *will* be thrown away by the next>> "$(SolutionDir)..\python.bat" -echo @rem rebuild.>> "$(SolutionDir)..\python.bat" -echo @rem This is only meant as a convenience for developing CPython>> "$(SolutionDir)..\python.bat" -echo @rem and using it outside of that context is ill-advised.>> "$(SolutionDir)..\python.bat" -echo @echo Running $(Configuration)^^^|$(Platform) interpreter...>> "$(SolutionDir)..\python.bat" -echo @"$(OutDir)python$(PyDebugExt).exe" %%*>> "$(SolutionDir)..\python.bat" - - - Creating convenience batch file for easily invoking the newly built interpreter. - - - $(SolutionDir)..\python.bat - - - $(OutDir)python$(PyDebugExt).exe;%(Inputs) - @@ -521,4 +84,19 @@ + + + <_Content>@rem This script invokes the most recently built Python with all arguments +@rem passed through to the interpreter. This file is generated by the +@rem build process and any changes *will* be thrown away by the next +@rem rebuild. +@rem This is only meant as a convenience for developing CPython +@rem and using it outside of that context is ill-advised. +@echo Running $(Configuration)^|$(Platform) interpreter... +@"$(OutDir)python$(PyDebugExt).exe" %* + + <_ExistingContent Condition="Exists('$(PySourcePath)python.bat')">$([System.IO.File]::ReadAllText('$(PySourcePath)python.bat')) + + + \ No newline at end of file diff --git a/PCbuild/python3dll.vcxproj b/PCbuild/python3dll.vcxproj --- a/PCbuild/python3dll.vcxproj +++ b/PCbuild/python3dll.vcxproj @@ -1,6 +1,14 @@  + + Debug + Win32 + + + Debug + x64 + PGInstrument Win32 @@ -30,144 +38,42 @@ {885D4898-D08D-4091-9C40-C700CFE3FC5A} python3dll Win32Proj + python3 + ClCompile + false + - - Makefile - - - Makefile - - - Makefile - true - - - Makefile - - - Makefile - - - Makefile + + DynamicLibrary - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - cd $(ProjectDir)\..\PC -nmake /f python3.mak MACHINE=x86 OutDir=$(OutDir) - cd $(ProjectDir)\..\PC -nmake /f python3.mak MACHINE=x86 OutDir=$(OutDir) rebuild - cd $(ProjectDir)\..\PC -"$(VSInstallDir)\VC\bin\nmake.exe" /f python3.mak MACHINE=x86 OutDir=$(OutDir) clean - $(OutDir)python3.dll - $(NMakePreprocessorDefinitions) - $(NMakeIncludeSearchPath) - $(NMakeForcedIncludes) - $(NMakeAssemblySearchPath) - $(NMakeForcedUsingAssemblies) - cd $(ProjectDir)\..\PC -nmake /f python3.mak MACHINE=x64 OutDir=$(OutDir) - cd $(ProjectDir)\..\PC -nmake /f python3.mak MACHINE=x64 OutDir=$(OutDir) rebuild - cd $(ProjectDir)\..\PC -"$(VSInstallDir)\VC\bin\nmake.exe" /f python3.mak MACHINE=x64 OutDir=$(OutDir) clean - $(OutDir)python3.dll - $(NMakePreprocessorDefinitions) - $(NMakeIncludeSearchPath) - $(NMakeForcedIncludes) - $(NMakeAssemblySearchPath) - $(NMakeForcedUsingAssemblies) - cd $(ProjectDir)\..\PC -nmake /f python3.mak MACHINE=x86 OutDir=$(OutDir) - cd $(ProjectDir)\..\PC -nmake /f python3.mak MACHINE=x86 OutDir=$(OutDir) rebuild - cd $(ProjectDir)\..\PC -"$(VSInstallDir)\VC\bin\nmake.exe" /f python3.mak MACHINE=x86 OutDir=$(OutDir) clean - $(OutDir)python3.dll - $(NMakePreprocessorDefinitions) - $(NMakeIncludeSearchPath) - $(NMakeForcedIncludes) - $(NMakeAssemblySearchPath) - $(NMakeForcedUsingAssemblies) - cd $(ProjectDir)\..\PC -nmake /f python3.mak MACHINE=x64 OutDir=$(OutDir) - cd $(ProjectDir)\..\PC -nmake /f python3.mak MACHINE=x64 OutDir=$(OutDir) rebuild - cd $(ProjectDir)\..\PC -"$(VSInstallDir)\VC\bin\nmake.exe" /f python3.mak MACHINE=x64 OutDir=$(OutDir) clean - $(OutDir)python3.dll - $(NMakePreprocessorDefinitions) - $(NMakeIncludeSearchPath) - $(NMakeForcedIncludes) - $(NMakeAssemblySearchPath) - $(NMakeForcedUsingAssemblies) - cd $(ProjectDir)\..\PC -nmake /f python3.mak MACHINE=x86 OutDir=$(OutDir) - cd $(ProjectDir)\..\PC -nmake /f python3.mak MACHINE=x86 OutDir=$(OutDir) rebuild - cd $(ProjectDir)\..\PC -"$(VSInstallDir)\VC\bin\nmake.exe" /f python3.mak MACHINE=x86 OutDir=$(OutDir) clean - $(OutDir)python3.dll - $(NMakePreprocessorDefinitions) - $(NMakeIncludeSearchPath) - $(NMakeForcedIncludes) - $(NMakeAssemblySearchPath) - $(NMakeForcedUsingAssemblies) - cd $(ProjectDir)\..\PC -nmake /f python3.mak MACHINE=x64 OutDir=$(OutDir) - cd $(ProjectDir)\..\PC -nmake /f python3.mak MACHINE=x64 OutDir=$(OutDir) rebuild - cd $(ProjectDir)\..\PC -"$(VSInstallDir)\VC\bin\nmake.exe" /f python3.mak MACHINE=x64 OutDir=$(OutDir) clean - $(OutDir)python3.dll - $(NMakePreprocessorDefinitions) - $(NMakeIncludeSearchPath) - $(NMakeForcedIncludes) - $(NMakeAssemblySearchPath) - $(NMakeForcedUsingAssemblies) + <_Machine>X86 + <_Machine Condition="$(Platform) == 'x64'">X64 + + false + + + $(OutDir)$(TargetName)stub.lib + $(PySourcePath)PC\python3.def + DllMain + + + lib /nologo /def:"$(IntDir)python3stub.def" /out:"$(OutDir)$(TargetName)stub.lib" /MACHINE:$(_Machine) + Rebuilding $(TargetName)stub.lib + $(OutDir)$(TargetName)stub.lib + @@ -181,4 +87,27 @@ + + + + + + <_Pattern>^[\w.]+=.+?\.([^ ]+).*$ + <_Sub>$1 + + + <_Lines Include="EXPORTS" /> + <_Symbols Include="@(DefLines)" Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(`%(Identity)`, `$(_Pattern)`))"> + $([System.Text.RegularExpressions.Regex]::Replace(`%(Identity)`, `$(_Pattern)`, `$(_Sub)`)) + + <_Lines Include="@(_Symbols->'%(Symbol)')" /> + + + + + + + + + \ No newline at end of file diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -38,405 +38,41 @@ {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} pythoncore + - - DynamicLibrary - false - - - DynamicLibrary - false - - - DynamicLibrary - false - NotSet - - - DynamicLibrary - false - - - DynamicLibrary - false - - - DynamicLibrary - false - - - DynamicLibrary - false - - + DynamicLibrary false - + + ClCompile + true + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - $(PyDllName) - $(PyDllName) - $(PyDllName) - $(PyDllName) - $(PyDllName) - $(PyDllName) - $(PyDllName) - $(PyDllName) + $(PyDllName) - + + Link + + /Zm200 %(AdditionalOptions) - ..\Python;..\Modules\zlib;%(AdditionalIncludeDirectories) - _USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED;WIN32;%(PreprocessorDefinitions) - MultiThreadedDLL + $(PySourcePath)Python;$(PySourcePath)Modules\zlib;%(AdditionalIncludeDirectories) + _USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED;%(PreprocessorDefinitions) - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - ..\Include;%(AdditionalIncludeDirectories) - - - Generate build information... - "$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)\" - - $(IntDir)getbuildinfo.o;ws2_32.lib;%(AdditionalDependencies) - $(OutDir)$(PyDllName).dll - libc;%(IgnoreSpecificDefaultLibraries) + ws2_32.lib;%(AdditionalDependencies) 0x1e000000 - - $(KillPythonExe) -IF %ERRORLEVEL% NEQ 0 ( - echo kill_python: war^ning: could not kill running Pythons, exit code %ERRORLEVEL% - exit /b 0 -) - - - Killing any running $(PythonExe) instances... - - - - - X64 - - - /Zm200 %(AdditionalOptions) - ..\Python;..\Modules\zlib;%(AdditionalIncludeDirectories) - _USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED;WIN32;%(PreprocessorDefinitions) - MultiThreadedDLL - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - ..\Include;%(AdditionalIncludeDirectories) - - - Generate build information... - "$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)\" - - - $(IntDir)getbuildinfo.o;ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1e000000 - - - $(KillPythonExe) -IF %ERRORLEVEL% NEQ 0 ( - echo kill_python: war^ning: could not kill running Pythons, exit code %ERRORLEVEL% - exit /b 0 -) - - - Killing any running $(PythonExe) instances... - - - - - /Zm200 %(AdditionalOptions) - Disabled - Default - false - ..\Python;..\Modules\zlib;%(AdditionalIncludeDirectories) - _USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED;WIN32;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - ..\Include;%(AdditionalIncludeDirectories) - - - Generate build information... - "$(SolutionDir)make_buildinfo.exe" Debug "$(IntDir)" - - - $(IntDir)getbuildinfo.o;ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1e000000 - - - $(KillPythonExe) -IF %ERRORLEVEL% NEQ 0 ( - echo kill_python: war^ning: could not kill running Pythons, exit code %ERRORLEVEL% - exit /b 0 -) - - - Killing any running $(PythonExe) instances... - - - - - X64 - - - /Zm200 %(AdditionalOptions) - Disabled - Default - false - ..\Python;..\Modules\zlib;%(AdditionalIncludeDirectories) - _USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED;WIN32;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - ..\Include;%(AdditionalIncludeDirectories) - - - Generate build information... - "$(SolutionDir)make_buildinfo.exe" Debug "$(IntDir)" - - - $(IntDir)getbuildinfo.o;ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1e000000 - - - $(KillPythonExe) -IF %ERRORLEVEL% NEQ 0 ( - echo kill_python: war^ning: could not kill running Pythons, exit code %ERRORLEVEL% - exit /b 0 -) - - - Killing any running $(PythonExe) instances... - - - - - /Zm200 %(AdditionalOptions) - ..\Python;..\Modules\zlib;%(AdditionalIncludeDirectories) - _USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED;WIN32;%(PreprocessorDefinitions) - MultiThreadedDLL - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - ..\Include;%(AdditionalIncludeDirectories) - - - Generate build information... - "$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)\" - - - $(IntDir)getbuildinfo.o;ws2_32.lib;%(AdditionalDependencies) - $(OutDir)$(PyDllName).dll - libc;%(IgnoreSpecificDefaultLibraries) - 0x1e000000 - - - $(KillPythonExe) -IF %ERRORLEVEL% NEQ 0 ( - echo kill_python: war^ning: could not kill running Pythons, exit code %ERRORLEVEL% - exit /b 0 -) - - - Killing any running $(PythonExe) instances... - - - - - X64 - - - /Zm200 %(AdditionalOptions) - ..\Python;..\Modules\zlib;%(AdditionalIncludeDirectories) - _USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED;WIN32;%(PreprocessorDefinitions) - MultiThreadedDLL - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - ..\Include;%(AdditionalIncludeDirectories) - - - Generate build information... - "$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)\" - - - $(IntDir)getbuildinfo.o;ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1e000000 - MachineX64 - - - $(KillPythonExe) -IF %ERRORLEVEL% NEQ 0 ( - echo kill_python: war^ning: could not kill running Pythons, exit code %ERRORLEVEL% - exit /b 0 -) - - - Killing any running $(PythonExe) instances... - - - - - /Zm200 %(AdditionalOptions) - ..\Python;..\Modules\zlib;%(AdditionalIncludeDirectories) - _USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED;WIN32;%(PreprocessorDefinitions) - MultiThreadedDLL - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - ..\Include;%(AdditionalIncludeDirectories) - - - Generate build information... - "$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)\" - - - $(IntDir)getbuildinfo.o;ws2_32.lib;%(AdditionalDependencies) - $(OutDir)$(PyDllName).dll - libc;%(IgnoreSpecificDefaultLibraries) - 0x1e000000 - - - $(KillPythonExe) -IF %ERRORLEVEL% NEQ 0 ( - echo kill_python: war^ning: could not kill running Pythons, exit code %ERRORLEVEL% - exit /b 0 -) - - - Killing any running $(PythonExe) instances... - - - - - X64 - - - /Zm200 %(AdditionalOptions) - ..\Python;..\Modules\zlib;%(AdditionalIncludeDirectories) - _USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED;WIN32;%(PreprocessorDefinitions) - MultiThreadedDLL - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - ..\Include;%(AdditionalIncludeDirectories) - - - Generate build information... - "$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)\" - - - $(IntDir)getbuildinfo.o;ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1e000000 - MachineX64 - - - $(KillPythonExe) -IF %ERRORLEVEL% NEQ 0 ( - echo kill_python: war^ning: could not kill running Pythons, exit code %ERRORLEVEL% - exit /b 0 -) - - - Killing any running $(PythonExe) instances... - @@ -753,21 +389,29 @@ - - - {6de10744-e396-40a5-b4e2-1b69aa7c8d31} - false - - - {c73f0ec1-358b-4177-940f-0846ac8b04cd} - false - - - {f0e0541e-f17d-430b-97c4-93adf0dd284e} - false - - - + + + + + + + + $([System.IO.File]::ReadAllText('$(IntDir)hgbranch.txt').Trim()) + $([System.IO.File]::ReadAllText('$(IntDir)hgversion.txt').Trim()) + $([System.IO.File]::ReadAllText('$(IntDir)hgtag.txt').Trim()) + + + + + HGVERSION="$(HgVersion)";HGTAG="$(HgTag)";HGBRANCH="$(HgBranch)";%(PreprocessorDefinitions) + + + + + + + + \ No newline at end of file diff --git a/PCbuild/pythonw.vcxproj b/PCbuild/pythonw.vcxproj --- a/PCbuild/pythonw.vcxproj +++ b/PCbuild/pythonw.vcxproj @@ -36,296 +36,30 @@ {F4229CC3-873C-49AE-9729-DD308ED4CD4A} + ClCompile + false + - - Application - false - - - Application - false - - - Application - false - - - Application - false - NotSet - - - Application - false - - - Application - false - - - Application - false - - + Application false - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - - - Disabled - false - %(AdditionalIncludeDirectories) - _WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - Default - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - + - $(OutDir)pythonw_d.exe 2000000 0x1d000000 - MachineX86 - - - - - X64 - - - Disabled - false - %(AdditionalIncludeDirectories) - _WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - Default - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)pythonw_d.exe - 2000000 - 0x1d000000 - - - - - %(AdditionalIncludeDirectories) - _WINDOWS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)pythonw.exe - 2000000 - 0x1d000000 - MachineX86 - - - - - X64 - - - %(AdditionalIncludeDirectories) - _WINDOWS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)pythonw.exe - 2000000 - 0x1d000000 - - - - - %(AdditionalIncludeDirectories) - _WINDOWS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)pythonw.exe - 2000000 - 0x1d000000 - - - MachineX86 - - - - - X64 - - - %(AdditionalIncludeDirectories) - _WINDOWS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)pythonw.exe - 2000000 - 0x1d000000 - - - MachineX64 - - - - - %(AdditionalIncludeDirectories) - _WINDOWS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)pythonw.exe - 2000000 - 0x1d000000 - - - MachineX86 - - - - - X64 - - - %(AdditionalIncludeDirectories) - _WINDOWS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)pythonw.exe - 2000000 - 0x1d000000 - - - MachineX64 diff --git a/PCbuild/pywlauncher.vcxproj b/PCbuild/pywlauncher.vcxproj --- a/PCbuild/pywlauncher.vcxproj +++ b/PCbuild/pywlauncher.vcxproj @@ -37,200 +37,36 @@ {1D4B18D3-7C12-4ECB-9179-8531FF876CE6} pywlauncher + pyw + ClCompile + false + - + Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - Unicode - - Unicode - + + ClCompile + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - pyw_d - - - pyw_d - - - pyw - - - pyw - - - pyw - - - pyw - - + - Level3 - Disabled _WINDOWS;%(PreprocessorDefinitions) - true - version.lib;%(AdditionalDependencies) - false - Windows - $(OutDir)$(TargetName)$(TargetExt) - - - - - Level3 - Disabled - _WINDOWS;%(PreprocessorDefinitions) - - - true - version.lib;%(AdditionalDependencies) - false - Windows - $(OutDir)$(TargetName)$(TargetExt) - - - - - Level3 - MaxSpeed - true - true - _WINDOWS;NDEBUG;%(PreprocessorDefinitions) - - - true - false - true - false version.lib;%(AdditionalDependencies) Windows - - - Level3 - MaxSpeed - true - true - _WINDOWS;NDEBUG;%(PreprocessorDefinitions) - - - true - false - true - false - version.lib;%(AdditionalDependencies) - Windows - - - - - version.lib;%(AdditionalDependencies) - - - _WINDOWS;NDEBUG;%(PreprocessorDefinitions) - - - - - version.lib;%(AdditionalDependencies) - - - _WINDOWS;NDEBUG;%(PreprocessorDefinitions) - - - - - version.lib;%(AdditionalDependencies) - - - _WINDOWS;NDEBUG;_WIN64;_M_X64;%(PreprocessorDefinitions) - - - - - version.lib;%(AdditionalDependencies) - - - _WINDOWS;NDEBUG;_WIN64;_M_X64;%(PreprocessorDefinitions) - - @@ -240,11 +76,6 @@ - - - {f0e0541e-f17d-430b-97c4-93adf0dd284e} - - diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt --- a/PCbuild/readme.txt +++ b/PCbuild/readme.txt @@ -1,7 +1,7 @@ Quick Start Guide ----------------- -1. Install Microsoft Visual C++ 2010 SP1, any edition. +1. Install Microsoft Visual Studio 2015, any edition. 2. Install Subversion, and make sure 'svn.exe' is on your PATH. 3. Run "build.bat -e" to build Python in 32-bit Release configuration. 4. (Optional, but recommended) Run the test suite with "rt.bat -q". @@ -11,41 +11,38 @@ ------------------------------------------ This directory is used to build CPython for Microsoft Windows NT version -5.1 or higher (Windows XP, Windows Server 2003, or later) on 32 and 64 +6.0 or higher (Windows Vista, Windows Server 2008, or later) on 32 and 64 bit platforms. Using this directory requires an installation of -Microsoft Visual C++ 2010 (MSVC 10.0) of any edition. The specific +Microsoft Visual C++ 2015 (MSVC 14.0) of any edition. The specific requirements are as follows: -Visual C++ 2010 Express Edition - Required for building 32-bit Debug and Release configuration builds. +Visual Studio Express 2015 for Desktop +Visual Studio Professional 2015 + Either edition is sufficient for building all configurations except + for Profile Guided Optimization. The Python build solution pcbuild.sln makes use of Solution Folders, which this edition does not support. Any time pcbuild.sln is opened - or reloaded by Visual C++, a warning about Solution Folders will be - displayed which can be safely dismissed with no impact on your + or reloaded by Visual Studio, a warning about Solution Folders will + be displayed, which can be safely dismissed with no impact on your ability to build Python. -Visual Studio 2010 Professional Edition Required for building 64-bit Debug and Release configuration builds -Visual Studio 2010 Premium Edition +Visual Studio Premium 2015 Required for building Release configuration builds that make use of Profile Guided Optimization (PGO), on either platform. -Installing Service Pack 1 for Visual Studio 2010 is highly recommended -to avoid LNK1123 errors. - All you need to do to build is open the solution "pcbuild.sln" in Visual Studio, select the desired combination of configuration and platform, -then build with "Build Solution" or the F7 keyboard shortcut. You can -also build from the command line using the "build.bat" script in this -directory; see below for details. The solution is configured to build -the projects in the correct order. +then build with "Build Solution". You can also build from the command +line using the "build.bat" script in this directory; see below for +details. The solution is configured to build the projects in the correct +order. The solution currently supports two platforms. The Win32 platform is -used to build standard x86-compatible 32-bit binaries, output into this -directory. The x64 platform is used for building 64-bit AMD64 (aka -x86_64 or EM64T) binaries, output into the amd64 sub-directory which -will be created if it doesn't already exist. The Itanium (IA-64) -platform is no longer supported. See the "Building for AMD64" section -below for more information about 64-bit builds. +used to build standard x86-compatible 32-bit binaries, output into the +win32 sub-directory. The x64 platform is used for building 64-bit AMD64 +(aka x86_64 or EM64T) binaries, output into the amd64 sub-directory. +The Itanium (IA-64) platform is no longer supported. See the "Building +for AMD64" section below for more information about 64-bit builds. Four configuration options are supported by the solution: Debug @@ -61,8 +58,8 @@ requires Premium Edition of Visual Studio. See the "Profile Guided Optimization" section below for more information. Build output from each of these configurations lands in its own - sub-directory of this directory. The official Python releases are - built using these configurations. + sub-directory of this directory. The official Python releases may + be built using these configurations. Release Used to build Python as it is meant to be used in production settings, though without PGO. @@ -72,10 +69,10 @@ ---------------------------------------------- In this directory you can find build.bat, a script designed to make -building Python on Windows simpler. The only absolute requirement for -using this script is for the VS100COMNTOOLS environment variable to be -properly set, which should be done by Microsoft Visual C++ 2010 -installation. +building Python on Windows simpler. This script will use the env.bat +script to detect one of Visual Studio 2015, 2013, 2012, or 2010, any of +which may be used to build Python, though only Visual Studio 2015 is +officially supported. By default, build.bat will build Python in Release configuration for the 32-bit Win32 platform. It accepts several arguments to change @@ -85,37 +82,29 @@ -d Shortcut for "-c Debug" -p Set the platform to build for ("Win32" or "x64") -r Rebuild instead of just building + -t Set the target (Build, Rebuild, Clean or CleanAll) -e Use get_externals.bat to fetch external sources + -M Don't build in parallel + -v Increased output messages Up to 9 MSBuild switches can also be passed, though they must be passed after specifying any of the above switches. For example, use: - build.bat -e -d /m + build.bat -e -d /fl -to do a concurrent debug build with externals fetched as needed. If -the MSBuild switch requires an equal sign ("="), the entire switch must -be quoted: +to do a debug build with externals fetched as needed and write detailed +build logs to a file. If the MSBuild switch requires an equal sign +("="), the entire switch must be quoted: - build.bat -e -d "/p:externalsDir=P:\cpython-externals" + build.bat -e -d "/p:ExternalsDir=P:\cpython-externals" There may also be other situations where quotes are necessary. -Legacy support --------------- - -You can find build directories for older versions of Visual Studio and -Visual C++ in the PC directory. The legacy build directories are no -longer actively maintained and may not work out of the box. - -Currently, the only legacy build directory is PC\VS9.0, for Visual -Studio 2008 (9.0). - - C Runtime --------- -Visual Studio 2010 uses version 10 of the C runtime (MSVCRT10). The +Visual Studio 2015 uses version 14 of the C runtime (MSVCRT14). The executables no longer use the "Side by Side" assemblies used in previous versions of the compiler. This simplifies distribution of applications. @@ -140,10 +129,6 @@ .dll and .lib python .exe -kill_python - kill_python.exe, a small program designed to kill any instances of - python(_d).exe that are running and live in the build output - directory; this is meant to avoid build issues due to locked files make_buildinfo, make_versioninfo helpers to provide necessary information to the build process @@ -163,13 +148,12 @@ purposes, used by test_capi.py These are miscellaneous sub-projects that don't really fit the other -categories. By default, these projects do not build in Debug -configuration: +categories: _freeze_importlib _freeze_importlib.exe, used to regenerate Python\importlib.h after changes have been made to Lib\importlib\_bootstrap.py bdist_wininst - ..\Lib\distutils\command\wininst-10.0[-amd64].exe, the base + ..\Lib\distutils\command\wininst-14.0[-amd64].exe, the base executable used by the distutils bdist_wininst command python3dll python3.dll, the PEP 384 Stable ABI dll @@ -225,10 +209,10 @@ need a later version of NASM. If OpenSSL's self tests don't pass, you should first try to update NASM and do a full rebuild of OpenSSL. get_externals.py also downloads a snapshot of NASM, and the - ssl sub-project includes that version of nasm.exe on PATH. + libeay and ssleay sub-projects use that version of nasm.exe. - The ssl sub-project expects your OpenSSL sources to have already - been configured and be ready to build. If you get your sources + The libeay/ssleay sub-projects expect your OpenSSL sources to have + already been configured and be ready to build. If you get your sources from svn.python.org as suggested in the "Getting External Sources" section below, the OpenSSL source will already be ready to go. If you want to build a different version, you will need to run @@ -241,8 +225,11 @@ OpenSSL. ActivePerl is recommended and is available from http://www.activestate.com/activeperl/ - The ssl sub-project does not have the ability to clean the OpenSSL - build; if you need to rebuild, you'll have to clean it by hand. + The libeay and ssleay sub-projects will build the modules of OpenSSL + required by _ssl and _hashlib and may need to be manually updated when + upgrading to a newer version of OpenSSL or when adding new + functionality to _ssl or _hashlib. They will not clean up their output + with the normal Clean target; CleanAll should be used instead. _sqlite3 Wraps SQLite 3.8.3.1, which is itself built by sqlite3.vcxproj Homepage: @@ -262,9 +249,9 @@ into the current output directory, which should ensure that Tkinter is able to load Tcl/Tk without having to change your PATH. - The tcl, tk, and tix sub-projects do not have the ability to clean - their builds; if you need to rebuild, you'll have to clean them by - hand. + The tcl, tk, and tix sub-projects do not clean their builds with + the normal Clean target; if you need to rebuild, you should use the + CleanAll target or manually delete their builds. Getting External Sources @@ -293,9 +280,7 @@ The build process for AMD64 / x64 is very similar to standard builds, you just have to set x64 as platform. In addition, the HOST_PYTHON environment variable must point to a Python interpreter (at least 2.4), -to support cross-compilation from Win32. Note that Visual Studio -requires Professional Edition or better in order to build 64-bit -binaries. +to support cross-compilation from Win32. Profile Guided Optimization @@ -330,31 +315,22 @@ Visual Studio properties ------------------------ -The PCbuild solution makes heavy use of Visual Studio property files -(*.props). The properties can be viewed and altered in the Property -Manager (View -> Other Windows -> Property Manager). +The PCbuild solution makes use of Visual Studio property files (*.props) +to simplify each project. The properties can be viewed in the Property +Manager (View -> Other Windows -> Property Manager) but should be +carefully modified by hand. -The property files used are (+-- = "also imports"): - * debug (debug macro: _DEBUG) - * pginstrument (PGO) - * pgupdate (PGO) - +-- pginstrument - * pyd (python extension, release build) - +-- release - +-- pyproject - * pyd_d (python extension, debug build) - +-- debug - +-- pyproject - * pyproject (base settings for all projects, user macros like PyDllName) - * release (release macro: NDEBUG) - * sqlite3 (used only by sqlite3.vcxproj) +The property files used are: + * python (versions, directories and build names) + * pyproject (base settings for all projects) + * openssl (used by libeay and ssleay projects) * tcltk (used by _tkinter, tcl, tk and tix projects) - * x64 (AMD64 / x64 platform specific settings) -The pyproject property file defines _WIN32 and x64 defines _WIN64 and -_M_X64 although the macros are set by the compiler, too. The GUI doesn't -always know about the macros and confuse the user with false -information. +The pyproject property file defines all of the build settings for each +project, with some projects overriding certain specific values. The GUI +doesn't always reflect the correct settings and may confuse the user +with false information, especially for settings that automatically adapt +for diffirent configurations. Your Own Extension DLLs diff --git a/PCbuild/release.props b/PCbuild/release.props deleted file mode 100644 --- a/PCbuild/release.props +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - - - - NDEBUG;%(PreprocessorDefinitions) - - - - - $(PyDebugExt) - - - $(TclDebugExt) - - - \ No newline at end of file diff --git a/PCbuild/rt.bat b/PCbuild/rt.bat --- a/PCbuild/rt.bat +++ b/PCbuild/rt.bat @@ -28,7 +28,7 @@ setlocal set pcbuild=%~dp0 -set prefix=%pcbuild% +set prefix=%pcbuild%win32\ set suffix= set qmode= set dashO= @@ -40,7 +40,7 @@ if "%1"=="-x64" (set prefix=%pcbuild%amd64\) & shift & goto CheckOpts set exe=%prefix%python%suffix%.exe -set cmd="%exe%" %dashO% -Wd -E -bb "%pcbuild%..\lib\test\regrtest.py" %1 %2 %3 %4 %5 %6 %7 %8 %9 +set cmd="%exe%" %dashO% -Wd -E -bb "%pcbuild%..\lib\test\regrtest.py %1 %2 %3 %4 %5 %6 %7 %8 %9 if defined qmode goto Qmode echo Deleting .pyc/.pyo files ... diff --git a/PCbuild/select.vcxproj b/PCbuild/select.vcxproj --- a/PCbuild/select.vcxproj +++ b/PCbuild/select.vcxproj @@ -37,188 +37,33 @@ {18CAE28C-B454-46C1-87A0-493D91D97F03} select - Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) 0x1D110000 - - - X64 - - - ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - - - - - ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - - - - - X64 - - - ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - - - - - ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - - - - - X64 - - - ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - MachineX64 - - - - - ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - - - - - X64 - - - ws2_32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - MachineX64 - - diff --git a/PCbuild/sqlite3.props b/PCbuild/sqlite3.props deleted file mode 100644 --- a/PCbuild/sqlite3.props +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - <_ProjectFileVersion>10.0.30319.1 - - - - $(sqlite3Dir);%(AdditionalIncludeDirectories) - SQLITE_API=__declspec(dllexport);%(PreprocessorDefinitions) - Level1 - - - \ No newline at end of file diff --git a/PCbuild/sqlite3.vcxproj b/PCbuild/sqlite3.vcxproj --- a/PCbuild/sqlite3.vcxproj +++ b/PCbuild/sqlite3.vcxproj @@ -37,188 +37,31 @@ {A1A295E5-463C-437F-81CA-1F32367685DA} sqlite3 - Win32Proj + .pyd + false + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - - - %(AdditionalIncludeDirectories) - - - $(OutDir)$(ProjectName)_d.dll - - - - - X64 - - - %(AdditionalIncludeDirectories) - - - $(OutDir)$(ProjectName)_d.dll - - - - - %(AdditionalIncludeDirectories) - - - $(OutDir)$(ProjectName).dll - - - - - X64 - - - %(AdditionalIncludeDirectories) - - - $(OutDir)$(ProjectName).dll - - - + $(sqlite3Dir);%(AdditionalIncludeDirectories) - - - $(OutDir)$(ProjectName).dll - - - - - X64 - - - %(AdditionalIncludeDirectories) - - - - - %(AdditionalIncludeDirectories) - - - $(OutDir)$(ProjectName).dll - - - - - X64 - - - %(AdditionalIncludeDirectories) + SQLITE_API=__declspec(dllexport);%(PreprocessorDefinitions) + Level1 @@ -228,12 +71,6 @@ - - - {6de10744-e396-40a5-b4e2-1b69aa7c8d31} - false - - diff --git a/PCbuild/ssl.vcxproj b/PCbuild/ssl.vcxproj deleted file mode 100644 --- a/PCbuild/ssl.vcxproj +++ /dev/null @@ -1,251 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - PGInstrument - Win32 - - - PGInstrument - x64 - - - PGUpdate - Win32 - - - PGUpdate - x64 - - - Release - Win32 - - - Release - x64 - - - - {E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0} - ssl - MakeFileProj - - - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - -path %PATH%;$(SolutionDir)$(nasmDir) -cd "$(SolutionDir)$(opensslDir)" -copy /Y crypto\buildinf_x86.h crypto\buildinf.h -copy /Y crypto\opensslconf_x86.h crypto\opensslconf.h -nmake /nologo -f "ms\nt.mak" - - - echo OpenSSL must be cleaned manually if you want to rebuild it. - - $(NMakePreprocessorDefinitions) - $(NMakeIncludeSearchPath) - $(NMakeForcedIncludes) - $(NMakeAssemblySearchPath) - $(NMakeForcedUsingAssemblies) - -path %PATH%;$(SolutionDir)$(nasmDir) -cd "$(SolutionDir)$(opensslDir)" -nasm -f win64 -DNEAR -Ox -g ms\\uptable.asm || echo nasm failed! && exit -copy /Y crypto\buildinf_amd64.h crypto\buildinf.h -copy /Y crypto\opensslconf_amd64.h crypto\opensslconf.h -nmake /nologo -f "ms\nt64.mak" - - - echo OpenSSL must be cleaned manually if you want to rebuild it. - - $(NMakePreprocessorDefinitions) - $(NMakeIncludeSearchPath) - $(NMakeForcedIncludes) - $(NMakeAssemblySearchPath) - $(NMakeForcedUsingAssemblies) - -path %PATH%;$(SolutionDir)$(nasmDir) -cd "$(SolutionDir)$(opensslDir)" -copy /Y crypto\buildinf_x86.h crypto\buildinf.h -copy /Y crypto\opensslconf_x86.h crypto\opensslconf.h -nmake /nologo -f "ms\nt.mak" - - - echo OpenSSL must be cleaned manually if you want to rebuild it. - - $(NMakePreprocessorDefinitions) - $(NMakeIncludeSearchPath) - $(NMakeForcedIncludes) - $(NMakeAssemblySearchPath) - $(NMakeForcedUsingAssemblies) - -path %PATH%;$(SolutionDir)$(nasmDir) -cd "$(SolutionDir)$(opensslDir)" -nasm -f win64 -DNEAR -Ox -g ms\\uptable.asm || echo nasm failed! && exit -copy /Y crypto\buildinf_amd64.h crypto\buildinf.h -copy /Y crypto\opensslconf_amd64.h crypto\opensslconf.h -nmake /nologo -f "ms\nt64.mak" - - - echo OpenSSL must be cleaned manually if you want to rebuild it. - - $(NMakePreprocessorDefinitions) - $(NMakeIncludeSearchPath) - $(NMakeForcedIncludes) - $(NMakeAssemblySearchPath) - $(NMakeForcedUsingAssemblies) - -path %PATH%;$(SolutionDir)$(nasmDir) -cd "$(SolutionDir)$(opensslDir)" -copy /Y crypto\buildinf_x86.h crypto\buildinf.h -copy /Y crypto\opensslconf_x86.h crypto\opensslconf.h -nmake /nologo -f "ms\nt.mak" - - - echo OpenSSL must be cleaned manually if you want to rebuild it. - - $(NMakePreprocessorDefinitions) - $(NMakeIncludeSearchPath) - $(NMakeForcedIncludes) - $(NMakeAssemblySearchPath) - $(NMakeForcedUsingAssemblies) - -path %PATH%;$(SolutionDir)$(nasmDir) -cd "$(SolutionDir)$(opensslDir)" -nasm -f win64 -DNEAR -Ox -g ms\\uptable.asm || echo nasm failed! && exit -copy /Y crypto\buildinf_amd64.h crypto\buildinf.h -copy /Y crypto\opensslconf_amd64.h crypto\opensslconf.h -nmake /nologo -f "ms\nt64.mak" - - - echo OpenSSL must be cleaned manually if you want to rebuild it. - - $(NMakePreprocessorDefinitions) - $(NMakeIncludeSearchPath) - $(NMakeForcedIncludes) - $(NMakeAssemblySearchPath) - $(NMakeForcedUsingAssemblies) - -path %PATH%;$(SolutionDir)$(nasmDir) -cd "$(SolutionDir)$(opensslDir)" -copy /Y crypto\buildinf_x86.h crypto\buildinf.h -copy /Y crypto\opensslconf_x86.h crypto\opensslconf.h -nmake /nologo -f "ms\nt.mak" - - - echo OpenSSL must be cleaned manually if you want to rebuild it. - - $(NMakePreprocessorDefinitions) - $(NMakeIncludeSearchPath) - $(NMakeForcedIncludes) - $(NMakeAssemblySearchPath) - $(NMakeForcedUsingAssemblies) - -path %PATH%;$(SolutionDir)$(nasmDir) -cd "$(SolutionDir)$(opensslDir)" -nasm -f win64 -DNEAR -Ox -g ms\\uptable.asm || echo nasm failed! && exit -copy /Y crypto\buildinf_amd64.h crypto\buildinf.h -copy /Y crypto\opensslconf_amd64.h crypto\opensslconf.h -nmake /nologo -f "ms\nt64.mak" - - - echo OpenSSL must be cleaned manually if you want to rebuild it. - - $(NMakePreprocessorDefinitions) - $(NMakeIncludeSearchPath) - $(NMakeForcedIncludes) - $(NMakeAssemblySearchPath) - $(NMakeForcedUsingAssemblies) - - - - - - - \ No newline at end of file diff --git a/PCbuild/ssleay.vcxproj b/PCbuild/ssleay.vcxproj new file mode 100644 --- /dev/null +++ b/PCbuild/ssleay.vcxproj @@ -0,0 +1,121 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + PGInstrument + Win32 + + + PGInstrument + x64 + + + PGUpdate + Win32 + + + PGUpdate + x64 + + + Debug + x64 + + + Release + x64 + + + + {10615B24-73BF-4EFA-93AA-236916321317} + ssleay + + + + + + + + StaticLibrary + $(opensslDir)tmp32\ssleay\ + $(opensslDir)tmp64\ssleay\ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PCbuild/tcl.vcxproj b/PCbuild/tcl.vcxproj --- a/PCbuild/tcl.vcxproj +++ b/PCbuild/tcl.vcxproj @@ -5,9 +5,9 @@ Debug Win32 - - Debug - x64 + + Release + Win32 PGInstrument @@ -25,9 +25,9 @@ PGUpdate x64 - - Release - Win32 + + Debug + x64 Release @@ -36,140 +36,55 @@ {B5FD6F1D-129E-4BFF-9340-03606FAC7283} - tcl - MakeFileProj + + - + + + Makefile - NotSet + $(tcltkDir) + $(OutDir)bin\$(tclDLLName) - - Makefile - NotSet + + + + + + + + + symbols + INSTALLDIR="$(OutDir.TrimEnd(`\`))" INSTALL_DIR="$(OutDir.TrimEnd(`\`))" + DEBUGFLAGS="-wd4456 -wd4457 -wd4458 -wd4459 -wd4996" + setlocal +@(ExpectedOutputs->'if not exist "%(FullPath)" goto build',' +') +goto :eof +:build +set VCINSTALLDIR=$(VCInstallDir) +cd /D "$(tclDir)win" +nmake -f makefile.vc MACHINE=$(TclMachine) OPTS=$(TclOpts) $(TclDirs) $(DebugFlags) core shell dlls +nmake -f makefile.vc MACHINE=$(TclMachine) OPTS=$(TclOpts) $(TclDirs) $(DebugFlags) install-binaries install-libraries + - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - -IF EXIST $(tcltkDir)\include\tcl.h ( - IF EXIST $(tcltkDir)\bin\$(tclDLLName) ( - IF EXIST $(OutDir)$(tclDLLName) ( - echo Tcl is already built and available. - exit /b 0 - ) ELSE ( - echo Copying tcl dll to $(OutDir) - xcopy $(tcltkDir)\bin\$(tclDLLName) $(OutDir) - exit /b 0 - ) - ) -) -IF NOT EXIST $(tclDir) ( - echo error: $(tclDir) doesn't exist. - exit 1 -) - -IF "$(Platform)" EQU "Win32" set TclMachine=IX86 -IF "$(Platform)" EQU "x64" set TclMachine=AMD64 - -IF "$(Configuration)" EQU "Debug" ( - set TclOpts=symbols -) ELSE ( - set TclOpts= -) - -cd $(tclDir)\win - -nmake -f makefile.vc MACHINE=%TclMachine% OPTS=%TclOpts% core shell dlls && nmake -f makefile.vc MACHINE=%TclMachine% OPTS=%TclOpts% INSTALLDIR=$(SolutionDir)$(tcltkDir) install-binaries install-libraries && xcopy /y $(SolutionDir)$(tcltkDir)\bin\$(tclDLLName) $(OutDir) - - del $(OutDir)$(tclDLLName) -echo Tcl must be cleaned manually if you want to rebuild it. - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/PCbuild/tcltk.props b/PCbuild/tcltk.props --- a/PCbuild/tcltk.props +++ b/PCbuild/tcltk.props @@ -1,30 +1,45 @@  - - - Dummy value to avoid patching Tcl/Tk's makefile.vc - tcl86t$(TclDebugExt).dll - tk86t$(TclDebugExt).dll - tix84$(TclDebugExt).dll - $(tcltkDir)\lib\tcl86t$(TclDebugExt).lib;$(tcltkDir)\lib\tk86t$(TclDebugExt).lib + + + 8 + 6 + 1 + 0 + $(TclMajorVersion) + $(TclMinorVersion) + $(TclPatchLevel) + $(TclRevision) + 8 + 4 + 3 + 4 + $(ExternalsDir)tcl-$(TclMajorVersion).$(TclMinorVersion).$(TclPatchLevel).$(TclRevision)\ + $(ExternalsDir)tk-$(TkMajorVersion).$(TkMinorVersion).$(TkPatchLevel).$(TkRevision)\ + $(ExternalsDir)tix-$(TixMajorVersion).$(TixMinorVersion).$(TixPatchLevel).$(TixRevision)\ + $(ExternalsDir)tcltk\ + $(ExternalsDir)tcltk64\ + g + tcl$(TclMajorVersion)$(TclMinorVersion)t$(TclDebugExt).dll + tcl$(TclMajorVersion)$(TclMinorVersion)t$(TclDebugExt).lib + tclsh$(TclMajorVersion)$(TclMinorVersion)t$(TclDebugExt).exe + tk$(TkMajorVersion)$(TkMinorVersion)t$(TclDebugExt).dll + tk$(TkMajorVersion)$(TkMinorVersion)t$(TclDebugExt).lib + tix$(TixMajorVersion)$(TixMinorVersion)$(TclDebugExt).dll + $(tcltkDir)lib\tix$(TixMajorVersion).$(TixMinorVersion).$(TixPatchLevel)\$(tixDLLName) + $(tcltkDir)lib\tcl$(TclMajorVersion)$(TclMinorVersion)t$(TclDebugExt).lib;$(tcltkDir)lib\tk$(TkMajorVersion)$(TkMinorVersion)t$(TclDebugExt).lib + IX86 + AMD64 + TCL_MAJOR_VERSION=$(TclMajorVersion) TCL_MINOR_VERSION=$(TclMinorVersion) TCL_PATCH_LEVEL=$(TclPatchLevel) + TCL_MAJOR=$(TclMajorVersion) TCL_MINOR=$(TclMinorVersion) TCL_PATCH=$(TclPatchLevel) + TK_MAJOR_VERSION=$(TkMajorVersion) TK_MINOR_VERSION=$(TkMinorVersion) TK_PATCH_LEVEL=$(TkPatchLevel) + + Release + Debug + $(BuildDirTop)_$(TclMachine) + $(BuildDirTop)_VC13 + $(BuildDirTop)_VC12 + $(BuildDirTop)_VC11 + $(BuildDirTop)_VC10 - - - - $(MSDEVDIR) - true - - - $(tclDLLName) - - - $(tkDLLName) - - - $(tixDLLName) - - - $(tcltkLib) - - \ No newline at end of file diff --git a/PCbuild/tix.vcxproj b/PCbuild/tix.vcxproj --- a/PCbuild/tix.vcxproj +++ b/PCbuild/tix.vcxproj @@ -5,9 +5,9 @@ Debug Win32 - - Debug - x64 + + Release + Win32 PGInstrument @@ -25,9 +25,9 @@ PGUpdate x64 - - Release - Win32 + + Debug + x64 Release @@ -37,135 +37,58 @@ {C5A3E7FB-9695-4B2E-960B-1D9F43F1E555} tix - MakeFileProj + + - + + + Makefile - NotSet + $(tcltkDir) + $(tixDLLPath) - - Makefile - NotSet + + + + + + + + + msvcrt + symbols,msvcrt + BUILDDIRTOP="$(BuildDirTop)" TCL_DIR="$(tclDir.TrimEnd(`\`))" TK_DIR="$(tkDir.TrimEnd(`\`))" INSTALL_DIR="$(OutDir.TrimEnd(`\`))" + DEBUG=1 NODEBUG=0 TCL_DBGX=g DEBUGFLAGS="-wd4456 -wd4457 -wd4458 -wd4459 -wd4996" + DEBUG=0 NODEBUG=1 + setlocal +@(ExpectedOutputs->'if not exist "%(FullPath)" goto build',' +') +goto :eof +:build +set VCINSTALLDIR=$(VCInstallDir) +cd /D "$(tixDir)win" +nmake /nologo -f makefile.vc MACHINE=$(TclMachine) $(DebugFlags) $(TclShortVersions) $(TixDirs) all install + + rmdir /q/s "$(OutDir.TrimEnd(`\`))" - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - -IF EXIST $(tcltkDir)\lib\tix8.4.3\$(tixDLLName) ( - echo Tix is already built and available. - exit /b 0 -) - -IF NOT EXIST $(tixDir) ( - echo error: $(tixDir) doesn't exist. - exit 1 -) - -IF "$(Platform)" EQU "Win32" set TclMachine=IX86 -IF "$(Platform)" EQU "x64" set TclMachine=AMD64 - -IF "$(Configuration)" EQU "Debug" ( - set TixDebug=1 -) ELSE ( - set TixDebug=0 -) - -cd $(tixDir)\win -nmake -f python.mak MACHINE=%TclMachine% DEBUG=%TixDebug% TCL_DIR=$(SolutionDir)$(tclDir) TK_DIR=$(SolutionDir)$(tkDir) all && nmake -f python.mak MACHINE=%TclMachine% DEBUG=%TixDebug% TCL_DIR=$(SolutionDir)$(tclDir) TK_DIR=$(SolutionDir)$(tkDir) INSTALL_DIR=$(SolutionDir)$(tcltkDir) install - - echo Tix must be cleaned manually if you want to rebuild it. - - - + {b5fd6f1d-129e-4bff-9340-03606fac7283} + false {7e85eccf-a72c-4da4-9e52-884508e80ba1} + false + - - + + + + + + \ No newline at end of file diff --git a/PCbuild/tk.vcxproj b/PCbuild/tk.vcxproj --- a/PCbuild/tk.vcxproj +++ b/PCbuild/tk.vcxproj @@ -5,9 +5,9 @@ Debug Win32 - - Debug - x64 + + Release + Win32 PGInstrument @@ -25,9 +25,9 @@ PGUpdate x64 - - Release - Win32 + + Debug + x64 Release @@ -37,142 +37,59 @@ {7E85ECCF-A72C-4DA4-9E52-884508E80BA1} tk - MakeFileProj + + - + + + Makefile - NotSet + $(tcltkDir) + $(OutDir)bin\$(tkDLLName) - - Makefile - NotSet + + + + + + + + + msvcrt + symbols,msvcrt + TCLDIR="$(tclDir.TrimEnd(`\`))" INSTALLDIR="$(OutDir.TrimEnd(`\`))" + DEBUGFLAGS="-wd4456 -wd4457 -wd4458 -wd4459 -wd4996" + setlocal +@(ExpectedOutputs->'if not exist "%(FullPath)" goto build',' +') +goto :eof +:build +set VCINSTALLDIR=$(VCInstallDir) +cd /D "$(tkDir)win" +nmake /nologo -f makefile.vc RC=rc MACHINE=$(TclMachine) OPTS=$(TkOpts) $(TkDirs) $(DebugFlags) all +nmake /nologo -f makefile.vc RC=rc MACHINE=$(TclMachine) OPTS=$(TkOpts) $(TkDirs) $(DebugFlags) install-binaries install-libraries + - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - Makefile - NotSet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - -IF EXIST $(tcltkDir)\include\tk.h ( - IF EXIST $(tcltkDir)\bin\$(tkDLLName) ( - IF EXIST $(OutDir)$(tkDLLName) ( - echo Tk is already built and available. - exit /b 0 - ) ELSE ( - echo Copying tk dll to $(OutDir) - xcopy $(tcltkDir)\bin\$(tkDLLName) $(OutDir) - exit /b 0 - ) - ) -) - -IF NOT EXIST $(tkDir) ( - echo error: $(tkDir) doesn't exist. - exit 1 -) - -IF "$(Platform)" EQU "Win32" set TclMachine=IX86 -IF "$(Platform)" EQU "x64" set TclMachine=AMD64 - -IF "$(Configuration)" EQU "Debug" ( - set TclOpts=symbols -) ELSE ( - set TclOpts= -) - -cd $(tkDir)\win - -nmake -f makefile.vc MACHINE=%TclMachine% OPTS=%TclOpts% TCLDIR=$(SolutionDir)$(tclDir) all && nmake -f makefile.vc MACHINE=%TclMachine% OPTS=%TclOpts% TCLDIR=$(SolutionDir)$(tclDir) INSTALLDIR=$(SolutionDir)$(tcltkDir) install-binaries install-libraries && xcopy /y $(SolutionDir)$(tcltkDir)\bin\$(tkDLLName) $(OutDir) - - del $(OutDir)$(tkDLLName) -echo Tk must be cleaned manually if you want to rebuild it. - - - {b5fd6f1d-129e-4bff-9340-03606fac7283} + false - - + + + + + + + + + + \ No newline at end of file diff --git a/PCbuild/unicodedata.vcxproj b/PCbuild/unicodedata.vcxproj --- a/PCbuild/unicodedata.vcxproj +++ b/PCbuild/unicodedata.vcxproj @@ -39,170 +39,31 @@ unicodedata Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + 0x1D120000 - - - X64 - - - 0x1D120000 - - - - - 0x1D120000 - - - - - X64 - - - 0x1D120000 - - - - - 0x1D120000 - - - - - X64 - - - 0x1D120000 - MachineX64 - - - - - 0x1D120000 - - - - - X64 - - - 0x1D120000 - MachineX64 - - diff --git a/PCbuild/vs9to10.py b/PCbuild/vs9to10.py deleted file mode 100644 --- a/PCbuild/vs9to10.py +++ /dev/null @@ -1,56 +0,0 @@ -#Run this file after automatic conversion of the VisualStudio 2008 solution by VisualStudio 2010. -#This can be done whenever the 2008 solution changes. -#It will make the necessary cleanup and updates to the vcxproj files -#the .props files need to be maintained by hand if the .vsprops files change - -from __future__ import with_statement -import sys -import os -import os.path - -def vs9to10(src, dest): - for name in os.listdir(src): - path, ext = os.path.splitext(name) - if ext.lower() not in ('.vcxproj',): - continue - - filename = os.path.normpath(os.path.join(src, name)) - destname = os.path.normpath(os.path.join(dest, name)) - print("%s -> %s" % (filename, destname)) - - lines = [] - lastline = b"" - importgroup = False - with open(filename, 'rb') as fin: - for line in fin: - #remove redundant linker output info - if b"" in line: - continue - if b"" in line: - continue - if b"" in line and b"" in line: - continue - - #add new property sheet to the pythoncore - if importgroup and "pythoncore" in name.lower(): - if b"" in line: - if b"debug.props" in lastline: - lines.append(b' \r\n') - elif b"pythoncore" not in lastline: - lines.append(b' \r\n') - if b"" in line: - importgroup = False - lines.append(line) - lastline = line - with open(destname, 'wb') as fout: - for line in lines: - fout.write(line) - -if __name__ == "__main__": - src = "." if len(sys.argv) < 2 else sys.argv[1] - name = os.path.basename(os.path.abspath(src)) - dest = os.path.abspath(os.path.join(src, "..", name + "Upd")) - os.makedirs(dest) - vs9to10(src, dest) diff --git a/PCbuild/vs9to8.py b/PCbuild/vs9to8.py deleted file mode 100644 --- a/PCbuild/vs9to8.py +++ /dev/null @@ -1,34 +0,0 @@ -from __future__ import with_statement -import os - -def vs9to8(src, dest): - for name in os.listdir(src): - path, ext = os.path.splitext(name) - if ext.lower() not in ('.sln', '.vcproj', '.vsprops'): - continue - - filename = os.path.normpath(os.path.join(src, name)) - destname = os.path.normpath(os.path.join(dest, name)) - print("%s -> %s" % (filename, destname)) - - with open(filename, 'rU') as fin: - lines = fin.read() - lines = lines.replace('Version="9,00"', 'Version="8.00"') - lines = lines.replace('Version="9.00"', 'Version="8.00"') - lines = lines.replace('Format Version 10.00', 'Format Version 9.00') - lines = lines.replace('Visual Studio 2008', 'Visual Studio 2005') - - lines = lines.replace('wininst-9.0', 'wininst-8.0') - lines = lines.replace('..\\', '..\\..\\') - lines = lines.replace('..\\..\\..\\..\\', '..\\..\\..\\') - - # Bah. VS8.0 does not expand macros in file names. - # Replace them here. - lines = lines.replace('$(sqlite3Dir)', '..\\..\\..\\sqlite-3.6.21') - - with open(destname, 'wb') as fout: - lines = lines.replace("\n", "\r\n").encode() - fout.write(lines) - -if __name__ == "__main__": - vs9to8(src=".", dest="../PC/VS8.0") diff --git a/PCbuild/winsound.vcxproj b/PCbuild/winsound.vcxproj --- a/PCbuild/winsound.vcxproj +++ b/PCbuild/winsound.vcxproj @@ -39,170 +39,31 @@ winsound Win32Proj + - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - + DynamicLibrary NotSet + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + winmm.lib;%(AdditionalDependencies) - - - X64 - - - winmm.lib;%(AdditionalDependencies) - - - - - winmm.lib;%(AdditionalDependencies) - - - - - X64 - - - winmm.lib;%(AdditionalDependencies) - - - - - winmm.lib;%(AdditionalDependencies) - - - - - X64 - - - winmm.lib;%(AdditionalDependencies) - MachineX64 - - - - - winmm.lib;%(AdditionalDependencies) - - - - - X64 - - - winmm.lib;%(AdditionalDependencies) - MachineX64 - - diff --git a/PCbuild/x64.props b/PCbuild/x64.props deleted file mode 100644 --- a/PCbuild/x64.props +++ /dev/null @@ -1,26 +0,0 @@ - - - - $(HOST_PYTHON) - - - $(externalsDir)\tcltk64 - - - - false - _WIN64;_M_X64;%(PreprocessorDefinitions) - - - MachineX64 - - - - - $(PythonExe) - - - $(tcltkDir) - - - \ No newline at end of file diff --git a/PCbuild/xxlimited.vcxproj b/PCbuild/xxlimited.vcxproj --- a/PCbuild/xxlimited.vcxproj +++ b/PCbuild/xxlimited.vcxproj @@ -1,6 +1,14 @@  + + Debug + Win32 + + + Debug + x64 + PGInstrument Win32 @@ -31,158 +39,44 @@ xxlimited Win32Proj + - + DynamicLibrary NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - true + false + + .pyd + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <_ProjectFileVersion>10.0.30319.1 - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - + - NDEBUG;_WIN32;_WINDLL;Py_LIMITED_API=0x03040000 + %(PreprocessorDefinitions);Py_LIMITED_API=0x03040000 wsock32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) 0x1D110000 - - - X64 - - - wsock32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - - - - - Py_LIMITED_API=0x03040000;%(PreprocessorDefinitions) - - - wsock32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - - - - - X64 - - - wsock32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - MachineX64 - - - - - Py_LIMITED_API=0x03040000;%(PreprocessorDefinitions) - - - wsock32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - - - - - X64 - - - wsock32.lib;%(AdditionalDependencies) - libc;%(IgnoreSpecificDefaultLibraries) - 0x1D110000 - MachineX64 - - + + + {885d4898-d08d-4091-9c40-c700cfe3fc5a} + + diff --git a/Tools/buildbot/build.bat b/Tools/buildbot/build.bat --- a/Tools/buildbot/build.bat +++ b/Tools/buildbot/build.bat @@ -1,7 +1,10 @@ @rem Used by the buildbot "compile" step. @rem Clean up -call "%~dp0clean.bat" +set PLAT= +if '%1' EQU '-p' if '%2' EQU 'x64' (set PLAT=-amd64) + +call "%~dp0clean%PLAT%.bat" @rem If you need the buildbots to start fresh (such as when upgrading to @rem a new version of an external library, especially Tcl/Tk): @@ -14,4 +17,4 @@ @rem 4) re-comment, commit and push again @rem Do the build -call "%~dp0..\..\PCbuild\build.bat" -e -d %* +call "%~dp0..\..\PCbuild\build.bat" -e -d -v %* diff --git a/Tools/buildbot/buildmsi.bat b/Tools/buildbot/buildmsi.bat --- a/Tools/buildbot/buildmsi.bat +++ b/Tools/buildbot/buildmsi.bat @@ -2,6 +2,7 @@ setlocal set cwd=%CD% + @rem build release versions of things call "%~dp0build.bat" -c Release @@ -9,7 +10,7 @@ call "%~dp0..\..\Doc\make.bat" htmlhelp @rem build the MSI file -call "%VS100COMNTOOLS%..\..\VC\vcvarsall.bat" x86 +call "%~dp0..\..\PCBuild\env.bat" x86 cd "%~dp0..\..\PC" nmake /f icons.mak cd ..\Tools\msi diff --git a/Tools/buildbot/clean.bat b/Tools/buildbot/clean.bat --- a/Tools/buildbot/clean.bat +++ b/Tools/buildbot/clean.bat @@ -5,29 +5,25 @@ set root=%~dp0..\.. set pcbuild=%root%\PCbuild -echo.Attempting to kill Pythons... -for %%k in (kill_python.exe - kill_python_d.exe - amd64\kill_python.exe - amd64\kill_python_d.exe - ) do ( - if exist "%pcbuild%\%%k" ( - echo.Calling %pcbuild%\%%k... - "%pcbuild%\%%k" - ) -) if "%1" == "x64" ( set vcvars_target=x86_amd64 - set platform_target=x64 + set platform=x64 ) else ( set vcvars_target=x86 - set platform_target=x86 + set platform=Win32 ) -call "%VS100COMNTOOLS%\..\..\VC\vcvarsall.bat" %vcvars_target% + +call "%pcbuild%\env.bat" %vcvars_target% + +echo.Attempting to kill Pythons... +msbuild /v:m /nologo /target:KillPython "%pcbuild%\pythoncore.vcxproj" /p:Configuration=Release /p:Platform=%platform% + echo Deleting .pyc/.pyo files ... del /s "%root%\Lib\*.pyc" "%root%\Lib\*.pyo" + echo Deleting test leftovers ... rmdir /s /q "%root%\build" -msbuild /target:clean "%pcbuild%\pcbuild.sln" /p:Configuration=Release /p:PlatformTarget=%platform_target% -msbuild /target:clean "%pcbuild%\pcbuild.sln" /p:Configuration=Debug /p:PlatformTarget=%platform_target% +echo Deleting build +msbuild /v:m /nologo /target:clean "%pcbuild%\pcbuild.proj" /p:Configuration=Release /p:Platform=%platform% +msbuild /v:m /nologo /target:clean "%pcbuild%\pcbuild.proj" /p:Configuration=Debug /p:Platform=%platform% diff --git a/Tools/ssl/sslspeed.vcxproj b/Tools/ssl/sslspeed.vcxproj new file mode 100644 --- /dev/null +++ b/Tools/ssl/sslspeed.vcxproj @@ -0,0 +1,70 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + {F068BCCF-C0D6-478D-A2C5-26BA3237C992} + sslspeed + + + + + + + + $(OutDir) + $(MSBuildProjectDirectory)\$(ArchName)\ + $(MSBuildProjectDirectory)\$(ArchName)\obj\ + Application + MultiByte + + + + + + + + + + + + _CONSOLE;%(PreprocessorDefinitions) + $(opensslIncDir);%(AdditionalIncludeDirectories) + + + ws2_32.lib;crypt32.lib;libeay$(PyDebugExt).lib;ssleay$(PyDebugExt).lib;%(AdditionalDependencies) + $(OriginalOutDir);%(AdditionalLibraryDirectories) + Console + + + + + + {10615b24-73bf-4efa-93aa-236916321317} + false + + + {e5b04cc0-eb4c-42ab-b4dc-18ef95f864b0} + false + + + + + \ No newline at end of file