- Added Win64 support to the crash report generator.

SVN r1184 (trunk)
This commit is contained in:
Randy Heit 2008-08-24 04:51:15 +00:00
parent 3638c658d6
commit 4d56889483
4 changed files with 430 additions and 260 deletions

View file

@ -1,3 +1,7 @@
August 23, 2008
- Added Win64 support to the crash report generator. (Pity that Win32
cannot be as informative.)
August 22, 2008 (Changes by Graf Zahl) August 22, 2008 (Changes by Graf Zahl)
- Added and fixed Boss death submission for random spawner. - Added and fixed Boss death submission for random spawner.
- Added functions to FActorInfo that can set the damage factors and - Added functions to FActorInfo that can set the damage factors and

View file

@ -41,6 +41,9 @@
#include <richedit.h> #include <richedit.h>
#include <winuser.h> #include <winuser.h>
#include <tlhelp32.h> #include <tlhelp32.h>
#ifndef _M_IX86
#include <winternl.h>
#endif
#ifndef __GNUC__ #ifndef __GNUC__
#include <dbghelp.h> #include <dbghelp.h>
#endif #endif
@ -142,6 +145,11 @@ typedef BOOL (WINAPI *WRITEDUMP) (HANDLE, DWORD, HANDLE, int,
// TYPES ------------------------------------------------------------------- // TYPES -------------------------------------------------------------------
#ifdef _M_X64
typedef PRUNTIME_FUNCTION (WINAPI *RTLLOOKUPFUNCTIONENTRY)
(ULONG64 ControlPc, PULONG64 ImageBase, void *HistoryTable);
#endif
// Damn Microsoft for doing Get/SetWindowLongPtr half-assed. Instead of // Damn Microsoft for doing Get/SetWindowLongPtr half-assed. Instead of
// giving them proper prototypes under Win32, they are just macros for // giving them proper prototypes under Win32, they are just macros for
// Get/SetWindowLong, meaning they take LONGs and not LONG_PTRs. // Get/SetWindowLong, meaning they take LONGs and not LONG_PTRs.
@ -235,8 +243,8 @@ static void AddZipFile (HANDLE ziphandle, TarFile *whichfile, short dosdate, sho
static HANDLE CreateTempFile (); static HANDLE CreateTempFile ();
static void DumpBytes (HANDLE file, BYTE *address); static void DumpBytes (HANDLE file, BYTE *address);
static void AddStackInfo (HANDLE file, void *dumpaddress, DWORD code); static void AddStackInfo (HANDLE file, void *dumpaddress, DWORD code, CONTEXT *ctxt);
static void StackWalk (HANDLE file, void *dumpaddress, DWORD *topOfStack, DWORD *jump); static void StackWalk (HANDLE file, void *dumpaddress, DWORD *topOfStack, DWORD *jump, CONTEXT *ctxt);
static void AddToolHelp (HANDLE file); static void AddToolHelp (HANDLE file);
static HANDLE WriteTextReport (); static HANDLE WriteTextReport ();
@ -650,9 +658,9 @@ HANDLE WriteTextReport ()
if (verinfo.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS) if (verinfo.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS)
{ {
j += mysnprintf (CrashSummary + j, countof(CrashSummary) - j, j += mysnprintf (CrashSummary + j, countof(CrashSummary) - j,
" - tried to %s address %08lX", " - tried to %s address %p",
CrashPointers.ExceptionRecord->ExceptionInformation[0] ? "write" : "read", CrashPointers.ExceptionRecord->ExceptionInformation[0] ? "write" : "read",
CrashPointers.ExceptionRecord->ExceptionInformation[1]); (void *)CrashPointers.ExceptionRecord->ExceptionInformation[1]);
} }
} }
CrashSummary[j++] = ')'; CrashSummary[j++] = ')';
@ -741,17 +749,21 @@ HANDLE WriteTextReport ()
AddToolHelp (file); AddToolHelp (file);
#ifdef _M_IX86
Writef (file, "\r\nBytes near EIP:"); Writef (file, "\r\nBytes near EIP:");
#else
Writef (file, "\r\nBytes near RIP:");
#endif
DumpBytes (file, (BYTE *)CrashPointers.ExceptionRecord->ExceptionAddress-16); DumpBytes (file, (BYTE *)CrashPointers.ExceptionRecord->ExceptionAddress-16);
if (ctxt->ContextFlags & CONTEXT_CONTROL) if (ctxt->ContextFlags & CONTEXT_CONTROL)
{ {
#ifndef _M_X64 #ifndef _M_X64
AddStackInfo (file, (void *)(size_t)CrashPointers.ContextRecord->Esp, AddStackInfo (file, (void *)(size_t)CrashPointers.ContextRecord->Esp,
CrashPointers.ExceptionRecord->ExceptionCode); CrashPointers.ExceptionRecord->ExceptionCode, ctxt);
#else #else
AddStackInfo (file, (void *)CrashPointers.ContextRecord->Rsp, AddStackInfo (file, (void *)CrashPointers.ContextRecord->Rsp,
CrashPointers.ExceptionRecord->ExceptionCode); CrashPointers.ExceptionRecord->ExceptionCode, ctxt);
#endif #endif
} }
@ -814,7 +826,7 @@ static void AddToolHelp (HANDLE file)
if (thread.th32ThreadID == DbgThreadID) if (thread.th32ThreadID == DbgThreadID)
{ {
Writef (file, " at %08x*", CrashAddress); Writef (file, " at %p*", CrashAddress);
} }
Writef (file, "\r\n"); Writef (file, "\r\n");
} }
@ -829,7 +841,7 @@ static void AddToolHelp (HANDLE file)
{ {
do do
{ {
Writef (file, "%08x - %08x %c%s\r\n", Writef (file, "%p - %p %c%s\r\n",
module.modBaseAddr, module.modBaseAddr + module.modBaseSize - 1, module.modBaseAddr, module.modBaseAddr + module.modBaseSize - 1,
module.modBaseAddr <= CrashPointers.ExceptionRecord->ExceptionAddress && module.modBaseAddr <= CrashPointers.ExceptionRecord->ExceptionAddress &&
module.modBaseAddr + module.modBaseSize > CrashPointers.ExceptionRecord->ExceptionAddress module.modBaseAddr + module.modBaseSize > CrashPointers.ExceptionRecord->ExceptionAddress
@ -849,12 +861,16 @@ static void AddToolHelp (HANDLE file)
// //
//========================================================================== //==========================================================================
static void AddStackInfo (HANDLE file, void *dumpaddress, DWORD code) static void AddStackInfo (HANDLE file, void *dumpaddress, DWORD code, CONTEXT *ctxt)
{ {
DWORD *addr = (DWORD *)dumpaddress, *jump; DWORD *addr = (DWORD *)dumpaddress, *jump;
DWORD *topOfStack = GetTopOfStack (dumpaddress); DWORD *topOfStack = GetTopOfStack (dumpaddress);
BYTE peekb; BYTE peekb;
#ifdef _M_IX86
DWORD peekd; DWORD peekd;
#else
QWORD peekq;
#endif
jump = topOfStack; jump = topOfStack;
if (code == EXCEPTION_STACK_OVERFLOW) if (code == EXCEPTION_STACK_OVERFLOW)
@ -866,7 +882,7 @@ static void AddStackInfo (HANDLE file, void *dumpaddress, DWORD code)
} }
} }
StackWalk (file, dumpaddress, topOfStack, jump); StackWalk (file, dumpaddress, topOfStack, jump, ctxt);
Writef (file, "\r\nStack Contents:\r\n"); Writef (file, "\r\nStack Contents:\r\n");
DWORD *scan; DWORD *scan;
@ -881,6 +897,8 @@ static void AddStackInfo (HANDLE file, void *dumpaddress, DWORD code)
Writef (file, "\r\n . . . Snip . . .\r\n\r\n"); Writef (file, "\r\n . . . Snip . . .\r\n\r\n");
} }
Writef (file, "%p:", scan);
#ifdef _M_IX86
if (topOfStack - scan < 4) if (topOfStack - scan < 4)
{ {
max = topOfStack - scan; max = topOfStack - scan;
@ -890,7 +908,6 @@ static void AddStackInfo (HANDLE file, void *dumpaddress, DWORD code)
max = 4; max = 4;
} }
Writef (file, "%p:", scan);
for (i = 0; i < max; ++i) for (i = 0; i < max; ++i)
{ {
if (!SafeReadMemory (&scan[i], &peekd, 4)) if (!SafeReadMemory (&scan[i], &peekd, 4))
@ -903,8 +920,31 @@ static void AddStackInfo (HANDLE file, void *dumpaddress, DWORD code)
{ {
Writef (file, " "); Writef (file, " ");
} }
#else
if ((QWORD *)topOfStack - (QWORD *)scan < 2)
{
max = (QWORD *)topOfStack - (QWORD *)scan;
}
else
{
max = 2;
}
for (i = 0; i < max; ++i)
{
if (!SafeReadMemory (&scan[i], &peekq, 8))
{
break;
}
Writef (file, " %016x", peekq);
}
if (i < 2)
{
Writef (file, " ");
}
#endif
Writef (file, " "); Writef (file, " ");
for (i = 0; i < max*4; ++i) for (i = 0; i < max*sizeof(void*); ++i)
{ {
if (!SafeReadMemory ((BYTE *)scan + i, &peekb, 1)) if (!SafeReadMemory ((BYTE *)scan + i, &peekb, 1))
{ {
@ -916,9 +956,12 @@ static void AddStackInfo (HANDLE file, void *dumpaddress, DWORD code)
} }
} }
#ifdef _M_IX86
//========================================================================== //==========================================================================
// //
// StackWalk // StackWalk
// Win32 version
// //
// Lists a possible call trace for the crashing thread to the text report. // Lists a possible call trace for the crashing thread to the text report.
// This is not very specific and just lists any pointers into the // This is not very specific and just lists any pointers into the
@ -926,7 +969,7 @@ static void AddStackInfo (HANDLE file, void *dumpaddress, DWORD code)
// //
//========================================================================== //==========================================================================
static void StackWalk (HANDLE file, void *dumpaddress, DWORD *topOfStack, DWORD *jump) static void StackWalk (HANDLE file, void *dumpaddress, DWORD *topOfStack, DWORD *jump, CONTEXT *ctxt)
{ {
DWORD *addr = (DWORD *)dumpaddress; DWORD *addr = (DWORD *)dumpaddress;
@ -947,7 +990,6 @@ static void StackWalk (HANDLE file, void *dumpaddress, DWORD *topOfStack, DWORD
Writef (file, "\r\n\r\n . . . . Snip . . . .\r\n"); Writef (file, "\r\n\r\n . . . . Snip . . . .\r\n");
} }
#ifndef _M_X64
DWORD_PTR code; DWORD_PTR code;
if (SafeReadMemory (scan, &code, sizeof(code)) && if (SafeReadMemory (scan, &code, sizeof(code)) &&
@ -1106,11 +1148,133 @@ static void StackWalk (HANDLE file, void *dumpaddress, DWORD *topOfStack, DWORD
} }
} }
} }
#endif
} }
Writef (file, "\r\n"); Writef (file, "\r\n");
} }
#else
//==========================================================================
//
// StackWalk
// Win64 version
//
// Walks the stack for the crashing thread and dumps the trace to the text
// report. Unlike the Win32 version, Win64 provides facilities for
// doing a 100% exact walk.
//
// See http://www.nynaeve.net/?p=113 for more information, and
// http://www.nynaeve.net/Code/StackWalk64.cpp in particular.
//
//==========================================================================
static void StackWalk (HANDLE file, void *dumpaddress, DWORD *topOfStack, DWORD *jump, CONTEXT *ctxt)
{
RTLLOOKUPFUNCTIONENTRY RtlLookupFunctionEntry;
HMODULE kernel;
CONTEXT context;
KNONVOLATILE_CONTEXT_POINTERS nv_context;
PRUNTIME_FUNCTION function;
PVOID handler_data;
ULONG64 establisher_frame;
ULONG64 image_base;
Writef (file, "\r\nCall trace:\r\n rip=%p <- Here it dies.\r\n", CrashAddress);
kernel = GetModuleHandle("kernel32.dll");
if (kernel == NULL || NULL == (RtlLookupFunctionEntry =
(RTLLOOKUPFUNCTIONENTRY)GetProcAddress(kernel, "RtlLookupFunctionEntry")))
{
Writef (file, " Unavailable: Could not get address of RtlLookupFunctionEntry\r\n");
return;
}
// Get the caller's context
context = *ctxt;
// This unwind loop intentionally skips the first call frame, as it
// shall correspond to the call to StackTrace64, which we aren't
// interested in.
for (ULONG frame = 0; ; ++frame)
{
// Try to look up unwind metadata for the current function.
function = RtlLookupFunctionEntry(context.Rip, &image_base, NULL);
memset(&nv_context, 0, sizeof(nv_context));
if (function == NULL)
{
// If we don't have a RUNTIME_FUNCTION, then we've encountered
// a leaf function. Adjust the stack appropriately.
context.Rip = (ULONG64)(*(PULONG64)context.Rsp);
context.Rsp += 8;
Writef(file, " Leaf function\r\n\r\n");
}
else
{
// Note that there is not a one-to-one correspondance between
// runtime functions and source functions. One source function
// may be broken into multiple runtime functions. This loop walks
// backward from the current runtime function for however many
// consecutive runtime functions precede it. There is a slight
// chance that this will walk across different source functions.
// (Or maybe not, depending on whether or not the compiler
// guarantees that there will be empty space between functions;
// it looks like VC++ might.) In practice, this seems to work
// quite well for identifying the exact address to search for in
// a map file to determine the function name.
PRUNTIME_FUNCTION function2 = function;
ULONG64 base = image_base;
while (function2 != NULL)
{
Writef(file, " Function range: %p -> %p\r\n",
(void *)(base + function2->BeginAddress),
(void *)(base + function2->EndAddress));
function2 = RtlLookupFunctionEntry(base + function2->BeginAddress - 1, &base, NULL);
}
Writef(file, "\r\n");
// Use RtlVirtualUnwind to execute the unwind for us.
RtlVirtualUnwind(0/*UNW_FLAG_NHANDLER*/, image_base, context.Rip,
function, &context, &handler_data, &establisher_frame,
&nv_context);
}
// If we reach a RIP of zero, this means we've walked off the end of
// the call stack and are done.
if (context.Rip == NULL)
{
break;
}
// Display the context. Note that we don't bother showing the XMM
// context, although we have the nonvolatile portion of it.
Writef(file, " FRAME %02d:\r\n rip=%p rsp=%p rbp=%p\r\n",
frame, context.Rip, context.Rsp, context.Rbp);
Writef(file, " r12=%p r13=%p r14=%p\r\n"
" rdi=%p rsi=%p rbx=%p\r\n",
context.R12, context.R13, context.R14,
context.Rdi, context.Rsi, context.Rbx);
static const char reg_names[16][4] =
{
"rax", "rcx", "rdx", "rbx", "rsp", "rbp", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15"
};
// If we have stack-based register stores, then display them here.
for (int i = 0; i < 16; ++i)
{
if (nv_context.IntegerContext[i])
{
Writef(file, " -> '%s' saved on stack at %p (=> %p)\r\n",
reg_names[i], nv_context.IntegerContext[i], *nv_context.IntegerContext[i]);
}
}
}
}
#endif
//========================================================================== //==========================================================================
// //
// DumpBytes // DumpBytes
@ -1121,7 +1285,7 @@ static void StackWalk (HANDLE file, void *dumpaddress, DWORD *topOfStack, DWORD
static void DumpBytes (HANDLE file, BYTE *address) static void DumpBytes (HANDLE file, BYTE *address)
{ {
char line[64*3], *line_p = line; char line[68*3], *line_p = line;
DWORD len; DWORD len;
BYTE peek; BYTE peek;

View file

@ -9,6 +9,7 @@
// //
#include "afxres.h" #include "afxres.h"
#include "../version.h" #include "../version.h"
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS #undef APSTUDIO_READONLY_SYMBOLS
@ -35,7 +36,7 @@ END
2 TEXTINCLUDE 2 TEXTINCLUDE
BEGIN BEGIN
"#include ""afxres.h""\r\n" "#include ""afxres.h""\r\n"
"#include ""../version.h\0" "#include ""../version.h""\r\0"
END END
3 TEXTINCLUDE 3 TEXTINCLUDE
@ -161,7 +162,7 @@ BEGIN
IDD_CRASHDIALOG, DIALOG IDD_CRASHDIALOG, DIALOG
BEGIN BEGIN
LEFTMARGIN, 4 LEFTMARGIN, 4
RIGHTMARGIN, 401 RIGHTMARGIN, 408
TOPMARGIN, 4 TOPMARGIN, 4
BOTTOMMARGIN, 303 BOTTOMMARGIN, 303
HORZGUIDE, 49 HORZGUIDE, 49
@ -179,7 +180,7 @@ BEGIN
IDD_CRASHDETAILS, DIALOG IDD_CRASHDETAILS, DIALOG
BEGIN BEGIN
LEFTMARGIN, 7 LEFTMARGIN, 7
RIGHTMARGIN, 384 RIGHTMARGIN, 392
TOPMARGIN, 7 TOPMARGIN, 7
HORZGUIDE, 76 HORZGUIDE, 76
END END
@ -374,19 +375,19 @@ BEGIN
PUSHBUTTON "Select None",IDC_SELECTNONE,320,31,50,14 PUSHBUTTON "Select None",IDC_SELECTNONE,320,31,50,14
END END
IDD_CRASHDIALOG DIALOGEX 0, 0, 405, 308 IDD_CRASHDIALOG DIALOGEX 0, 0, 415, 308
STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_CONTROLPARENT | WS_EX_APPWINDOW EXSTYLE WS_EX_CONTROLPARENT | WS_EX_APPWINDOW
CAPTION "ZDoom Very Fatal Error" CAPTION "ZDoom Very Fatal Error"
FONT 8, "MS Shell Dlg", 400, 0, 0x0 FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN BEGIN
CONTROL "",IDC_CRASHTAB,"SysTabControl32",WS_TABSTOP,4,4,397,280 CONTROL "",IDC_CRASHTAB,"SysTabControl32",WS_TABSTOP,4,4,404,280
PUSHBUTTON "&Send Error Report",IDYES,139,289,91,14,WS_DISABLED PUSHBUTTON "&Send Error Report",IDYES,146,289,91,14,WS_DISABLED
PUSHBUTTON "Save Report to Disk...",IDC_SAVEREPORT,235,289,91,14 PUSHBUTTON "Save Report to Disk...",IDC_SAVEREPORT,242,289,91,14
PUSHBUTTON "&Discard Report",IDNO,331,289,70,14 PUSHBUTTON "&Discard Report",IDNO,338,289,70,14
END END
IDD_CRASHOVERVIEW DIALOGEX 1, 13, 391, 264 IDD_CRASHOVERVIEW DIALOGEX 1, 13, 400, 264
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_VISIBLE STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_VISIBLE
FONT 8, "MS Shell Dlg", 400, 0, 0x1 FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN BEGIN
@ -400,15 +401,15 @@ BEGIN
LTEXT "Static",IDC_CRASHSUMMARY,14,233,363,20 LTEXT "Static",IDC_CRASHSUMMARY,14,233,363,20
END END
IDD_CRASHDETAILS DIALOGEX 0, 0, 391, 164 IDD_CRASHDETAILS DIALOGEX 0, 0, 400, 164
STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | DS_CONTROL | WS_CHILD STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1 FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN BEGIN
LTEXT "The error report contains these files:",IDC_STATIC,7,5,119,8 LTEXT "The error report contains these files:",IDC_STATIC,7,5,119,8
LTEXT "The selected file contains this information:",IDC_STATIC,7,74,136,8 LTEXT "The selected file contains this information:",IDC_STATIC,7,74,136,8
RTEXT "Static",IDC_CRASHFILESIZE,329,74,55,8 RTEXT "Static",IDC_CRASHFILESIZE,337,74,55,8
LISTBOX IDC_CRASHFILES,7,15,377,53,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP LISTBOX IDC_CRASHFILES,7,15,385,53,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
CONTROL "",IDC_CRASHFILECONTENTS,"RichEdit20A",ES_MULTILINE | ES_READONLY | WS_BORDER | WS_VSCROLL | WS_TABSTOP,7,83,377,174 CONTROL "",IDC_CRASHFILECONTENTS,"RichEdit20A",ES_MULTILINE | ES_READONLY | WS_BORDER | WS_VSCROLL | WS_TABSTOP,7,83,385,174
END END
IDD_BOING DIALOGEX 0, 0, 187, 196 IDD_BOING DIALOGEX 0, 0, 187, 196
@ -508,7 +509,7 @@ BEGIN
BEGIN BEGIN
VALUE "Translation", 0x409, 1200 VALUE "Translation", 0x409, 1200
END END
END END
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED #endif // not APSTUDIO_INVOKED

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?> <?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject <VisualStudioProject
ProjectType="Visual C++" ProjectType="Visual C++"
Version="8,00" Version="8.00"
Name="zdoom" Name="zdoom"
ProjectGUID="{8049475B-5C87-46F9-9358-635218A4EF18}" ProjectGUID="{8049475B-5C87-46F9-9358-635218A4EF18}"
RootNamespace=" zdoom" RootNamespace=" zdoom"
@ -138,6 +138,118 @@
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
</Configuration> </Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="$(OutDir)\updaterevision.exe src src/svnrevision.h"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="3"
TypeLibraryName=".\Release/zdoom.tlb"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="3"
InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
AdditionalIncludeDirectories="src\win32;src\sound;src;zlib;src\g_shared;src\g_doom;src\g_raven;src\g_heretic;src\g_hexen;src\g_strife;jpeg-6b;snes_spc\snes_spc;gdtoa"
PreprocessorDefinitions="NDEBUG,WIN32,_WIN32,_WINDOWS,HAVE_STRUPR,HAVE_FILELENGTH"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="false"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="false"
UsePrecompiledHeader="0"
PrecompiledHeaderFile=""
AssemblerOutput="0"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="1"
CompileAs="0"
DisableSpecificWarnings="4996"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="ddraw.lib dxguid.lib dinput8.lib comctl32.lib strmiids.lib wsock32.lib ws2_32.lib winmm.lib fmodex64_vc.lib setupapi.lib"
ShowProgress="0"
OutputFile="../zdoom64.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
GenerateDebugInformation="true"
ProgramDatabaseFile="..\zdoom64.pdb"
StripPrivateSymbols=""
GenerateMapFile="true"
MapFileName="$(OutDir)/zdoom.map"
MapExports="true"
SubSystem="2"
StackReserveSize="0"
TerminalServerAware="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
SetChecksum="true"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration <Configuration
Name="Debug|Win32" Name="Debug|Win32"
OutputDirectory=".\Debug" OutputDirectory=".\Debug"
@ -244,117 +356,6 @@
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
</Configuration> </Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="$(OutDir)\updaterevision.exe src src/svnrevision.h"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="3"
TypeLibraryName=".\Release/zdoom.tlb"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="3"
InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
AdditionalIncludeDirectories="src\win32;src\sound;src;zlib;src\g_shared;src\g_doom;src\g_raven;src\g_heretic;src\g_hexen;src\g_strife;jpeg-6b;snes_spc\snes_spc;gdtoa"
PreprocessorDefinitions="NDEBUG,WIN32,_WIN32,_WINDOWS,HAVE_STRUPR,HAVE_FILELENGTH"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="false"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="false"
UsePrecompiledHeader="0"
PrecompiledHeaderFile=""
AssemblerOutput="0"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="1"
CompileAs="0"
DisableSpecificWarnings="4996"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="ddraw.lib dxguid.lib dinput8.lib comctl32.lib strmiids.lib wsock32.lib ws2_32.lib winmm.lib fmodex64_vc.lib setupapi.lib"
ShowProgress="0"
OutputFile="../zdoom64.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
GenerateDebugInformation="true"
ProgramDatabaseFile="..\zdoom.pdb"
StripPrivateSymbols=""
GenerateMapFile="true"
MapFileName=".\Release/zdoom.map"
MapExports="true"
SubSystem="2"
StackReserveSize="0"
TerminalServerAware="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration <Configuration
Name="Debug|x64" Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)" OutputDirectory="$(PlatformName)\$(ConfigurationName)"
@ -929,16 +930,6 @@
Outputs="&quot;src/$(InputName).h&quot;" Outputs="&quot;src/$(InputName).h&quot;"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Creating $(InputName).h from src/$(InputFileName)"
CommandLine="tools\re2c\re2c --no-generation-date -s -o &quot;src/$(InputName).h&quot; &quot;src/$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="&quot;src/$(InputName).h&quot;"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Release|x64"
> >
@ -949,6 +940,16 @@
Outputs="&quot;src/$(InputName).h&quot;" Outputs="&quot;src/$(InputName).h&quot;"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Creating $(InputName).h from src/$(InputFileName)"
CommandLine="tools\re2c\re2c --no-generation-date -s -o &quot;src/$(InputName).h&quot; &quot;src/$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="&quot;src/$(InputName).h&quot;"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
> >
@ -1546,16 +1547,6 @@
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1567,6 +1558,16 @@
Outputs="$(IntDir)/$(InputName).obj" Outputs="$(IntDir)/$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1592,16 +1593,6 @@
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1613,6 +1604,16 @@
Outputs="$(IntDir)/$(InputName).obj" Outputs="$(IntDir)/$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1638,16 +1639,6 @@
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1659,6 +1650,16 @@
Outputs="$(IntDir)/$(InputName).obj" Outputs="$(IntDir)/$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1684,16 +1685,6 @@
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1705,6 +1696,16 @@
Outputs="$(IntDir)/$(InputName).obj" Outputs="$(IntDir)/$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1730,16 +1731,6 @@
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1751,6 +1742,16 @@
Outputs="$(IntDir)/$(InputName).obj" Outputs="$(IntDir)/$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1778,14 +1779,6 @@
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Release|x64"
> >
@ -1796,6 +1789,14 @@
Outputs="$(IntDir)/$(InputName).obj" Outputs="$(IntDir)/$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
> >
@ -1961,6 +1962,14 @@
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Release|x64"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Debug|Win32"
> >
@ -1971,14 +1980,6 @@
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Release|x64"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -2848,6 +2849,14 @@
AdditionalIncludeDirectories="src\win32;$(NoInherit)" AdditionalIncludeDirectories="src\win32;$(NoInherit)"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="src\win32;$(NoInherit)"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Debug|Win32"
> >
@ -2857,14 +2866,6 @@
AdditionalIncludeDirectories="src\win32;$(NoInherit)" AdditionalIncludeDirectories="src\win32;$(NoInherit)"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="src\win32;$(NoInherit)"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
> >
@ -3139,7 +3140,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3147,7 +3148,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3179,7 +3180,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3187,7 +3188,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3216,7 +3217,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3225,7 +3226,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3255,7 +3256,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3263,7 +3264,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3292,7 +3293,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3301,7 +3302,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3332,7 +3333,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3341,7 +3342,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3371,7 +3372,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3379,7 +3380,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3408,7 +3409,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3417,7 +3418,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3448,7 +3449,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3457,7 +3458,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3488,7 +3489,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3497,7 +3498,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3527,7 +3528,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3535,7 +3536,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3563,7 +3564,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3571,7 +3572,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3599,7 +3600,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3607,7 +3608,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3635,7 +3636,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3643,7 +3644,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3673,7 +3674,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3683,7 +3684,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3727,7 +3728,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3735,7 +3736,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3769,7 +3770,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
@ -3779,7 +3780,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"