From ff91ebed9cd196e3983acabc0a67e1574ea43419 Mon Sep 17 00:00:00 2001 From: Marc Cannon Date: Sat, 19 Jan 2013 13:27:58 -0500 Subject: [PATCH] Fix up a bunch of Windows build issues: - Remove iButton vcproj; it's less hassle to integrate it into the main build - Remove "VersionSVN" boolean from verinc.c - Move verstub.cpp to pre-link, add git verinfo.h to pre-build - Reinstate VersionNumber/VersionTime for Windows builds - Make OpenITG explicitly dependent on libtomcrypt/libtommath --- src/RageFileDriverDirect.cpp | 6 + src/StepMania-net2010.sln | 4 + src/StepMania-net2010.vcxproj | 3407 +++++++++++++++++---------------- src/StepMania-net2010.vcxproj.filters | 51 +- src/archutils/Win32/Crash.cpp | 6 +- src/archutils/Win32/arch_setup.h | 379 ++-- src/archutils/Win32/verinc.c | 3 +- src/archutils/Win32/verinc.exe | Bin 49152 -> 7168 bytes src/ibutton/ibutton.vcproj | 228 --- 9 files changed, 1977 insertions(+), 2107 deletions(-) delete mode 100644 src/ibutton/ibutton.vcproj diff --git a/src/RageFileDriverDirect.cpp b/src/RageFileDriverDirect.cpp index 6dde7d25..d2b160f0 100644 --- a/src/RageFileDriverDirect.cpp +++ b/src/RageFileDriverDirect.cpp @@ -13,6 +13,12 @@ #include #include #else +#define open _open +#define lseek _lseek +#define read _read +#define write _write +#define close _close +#define rmdir _rmdir #if !defined(_XBOX) #include #endif diff --git a/src/StepMania-net2010.sln b/src/StepMania-net2010.sln index f856445c..6b41f457 100644 --- a/src/StepMania-net2010.sln +++ b/src/StepMania-net2010.sln @@ -2,6 +2,10 @@ Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OpenITG", "StepMania-net2010.vcxproj", "{922728D0-EA2B-4CE3-95A5-C3A578327C85}" + ProjectSection(ProjectDependencies) = postProject + {E3802982-DCB6-4D85-A2BD-6B08F0657E79} = {E3802982-DCB6-4D85-A2BD-6B08F0657E79} + {42109FEE-B0B9-4FCD-9E56-2863BF8C55D2} = {42109FEE-B0B9-4FCD-9E56-2863BF8C55D2} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtomcrypt", "libtomcrypt\libtomcrypt_VS2010.vcxproj", "{E3802982-DCB6-4D85-A2BD-6B08F0657E79}" EndProject diff --git a/src/StepMania-net2010.vcxproj b/src/StepMania-net2010.vcxproj index 8918290a..aa1952d1 100644 --- a/src/StepMania-net2010.vcxproj +++ b/src/StepMania-net2010.vcxproj @@ -1,1682 +1,1729 @@ - - - - - Debug - Win32 - - - FastDebug - Win32 - - - Release-Arcade - Win32 - - - Release-Home-SSE2 - Win32 - - - Release-Home - Win32 - - - Release - Win32 - - - - OpenITG - {922728D0-EA2B-4CE3-95A5-C3A578327C85} - OpenITG - MFCProj - - - - Application - false - MultiByte - - - Application - false - MultiByte - - - Application - false - MultiByte - - - Application - false - MultiByte - - - Application - false - MultiByte - - - Application - false - MultiByte - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(TargetDir) - $(SolutionDir)/build-vs2008/$(ProjectName)/$(Configuration)\ - true - $(TargetDir) - $(SolutionDir)/build-vs2008/$(ProjectName)/$(Configuration)\ - false - FastDebug\ - FastDebug\ - true - ./../Program\ - ./../Release-arcade\ - false - $(TargetDir) - $(SolutionDir)/build-vs2008/$(ProjectName)/$(Configuration)\ - false - $(TargetDir) - $(SolutionDir)/build-vs2008/$(ProjectName)/$(Configuration)\ - false - true - - - - archutils\Win32\verinc -cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)"\ - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\../StepMania.tlb - - - Disabled - .;vorbis;libjpeg;lua-5.0\include;libusb\include;BaseClasses;libtomcrypt\src\headers;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINDOWS;DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - - - EnableFastChecks - MultiThreadedDebug - NotSet - true - Use - global.h - $(IntDir)OpenITG.pch - $(IntDir) - $(IntDir) - $(IntDir)vc80.pdb - - - Level4 - true - EditAndContinue - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - /MACHINE:I386 "$(IntDir)verstub.obj" /FORCE:MULTIPLE %(AdditionalOptions) - shell32.lib;gdi32.lib;user32.lib;ole32.lib;advapi32.lib;libusb.lib;%(AdditionalDependencies) - ../Program/OpenITG-debug.exe - true - libusb\lib\msvc;%(AdditionalLibraryDirectories) - wininet.lib;msimg32.lib;libci.lib;libcmtd.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) - true - - - $(IntDir)StepMania-debug.pdb - true - $(IntDir)$(TargetName).map - true - Windows - false - - - - - archutils\Win32\mapconv "$(IntDir)$(TargetName).map" "$(TargetDir)\OpenITG-debug.vdi" - - - - - archutils\Win32\verinc -cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)"\ - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\../StepMania.tlb - - - /EHa %(AdditionalOptions) - Full - AnySuitable - true - Size - .;vorbis;libjpeg;lua-5.0\include;libusb\include;BaseClasses;libtomcrypt\src\headers;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINDOWS;RELEASE;%(PreprocessorDefinitions) - true - false - - - MultiThreadedDLL - false - false - - - global.h - $(IntDir)OpenITG.pch - $(IntDir) - $(IntDir) - $(IntDir)vc80.pdb - - - Level4 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - /MACHINE:I386 "$(IntDir)verstub.obj" %(AdditionalOptions) - libusb.lib;shell32.lib;gdi32.lib;user32.lib;ole32.lib;advapi32.lib;%(AdditionalDependencies) - ../Program/OpenITG-PC.exe - true - libusb\lib\msvc;%(AdditionalLibraryDirectories) - wininet.lib;msimg32.lib;libci.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) - ../Release/OpenITG-PC.pdb - true - $(IntDir)$(TargetName).map - true - Windows - false - - - - - archutils\Win32\mapconv "$(IntDir)$(TargetName).map" "$(TargetDir)\OpenITG-AC.vdi" - - - - - archutils\Win32\verinc -cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)"\ - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\../StepMania.tlb - - - /EHa %(AdditionalOptions) - Disabled - .;vorbis;libjpeg;lua-5.0\include;libusb\include;BaseClasses;libtomcrypt\src\headers;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINDOWS;DEBUG;%(PreprocessorDefinitions) - - - Default - MultiThreadedDLL - - - $(IntDir)StepMania.pch - .\../FastDebug/ - .\../FastDebug/ - .\../FastDebug/ - - - Level4 - true - EditAndContinue - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - /MACHINE:I386 "$(IntDir)verstub.obj" %(AdditionalOptions) - libusb.lib;%(AdditionalDependencies) - ../Program/StepMania-debug.exe - true - libusb\lib\msvc;%(AdditionalLibraryDirectories) - wininet.lib;msimg32.lib;libci.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) - true - ../Debug/StepMania-debug.pdb - true - $(IntDir)$(TargetName).map - true - Windows - false - - - - - archutils\Win32\mapconv "$(IntDir)$(TargetName).map" "$(TargetDir)\StepMania.vdi" - - - - - archutils\Win32\verinc -cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)"\ - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\../StepMania.tlb - - - /EHa %(AdditionalOptions) - Full - AnySuitable - true - Speed - .;vorbis;libjpeg;lua-5.0\include;libusb\include;BaseClasses;libtomcrypt\src\headers;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINDOWS;RELEASE;ITG_ARCADE;%(PreprocessorDefinitions) - true - false - - - MultiThreadedDLL - false - false - StreamingSIMDExtensions2 - - - global.h - $(IntDir)OpenITG.pch - .\../Release-arcade/ - .\../Release-arcade/ - .\../Release-arcade/ - - - Level4 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - /MACHINE:I386 "$(IntDir)verstub.obj" %(AdditionalOptions) - libusb.lib;%(AdditionalDependencies) - ../Program/OpenITG-AC.exe - true - libusb\lib\msvc;%(AdditionalLibraryDirectories) - wininet.lib;msimg32.lib;libci.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) - false - ../Program/OpenITG-AC.pdb - true - $(IntDir)$(TargetName).map - true - Windows - false - - - - - archutils\Win32\mapconv "$(IntDir)$(TargetName).map" "$(TargetDir)\OpenITG-AC.vdi" - - - - - archutils\Win32\verinc -cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)"\ - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\../StepMania.tlb - - - /EHsc %(AdditionalOptions) - Full - AnySuitable - true - Speed - .;vorbis;libjpeg;lua-5.0\include;libusb\include;BaseClasses;libtomcrypt\src\headers;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINDOWS;RELEASE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - false - - - MultiThreadedDLL - false - false - NotSet - true - - - global.h - $(IntDir)OpenITG.pch - .\../Release-home/ - .\../Release-home/ - .\../Release-home/ - - - Level4 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - /MACHINE:I386 "$(IntDir)verstub.obj" /FORCE:MULTIPLE %(AdditionalOptions) - libusb.lib;%(AdditionalDependencies) - ../Program/OpenITG-PC.exe - true - libusb\lib\msvc;%(AdditionalLibraryDirectories) - wininet.lib;msimg32.lib;libci.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) - false - ../Program/OpenITG-PC.pdb - true - $(IntDir)$(TargetName).map - true - Windows - false - - - - - archutils\Win32\mapconv "$(IntDir)$(TargetName).map" "$(TargetDir)\OpenITG-PC.vdi" - - - - - archutils\Win32\verinc-svn -archutils\Win32\verinc -cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)"\ - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\../StepMania.tlb - - - /MP4 %(AdditionalOptions) - Full - AnySuitable - true - Size - .;vorbis;libjpeg;lua-5.0\include;libusb\include;BaseClasses;libtomcrypt\src\headers;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINDOWS;RELEASE;_CRT_SECURE_NO_WARNINGS;OITG_VERSION="b3-win32";OITG_DATE="03_31_2001";%(PreprocessorDefinitions) - true - false - - - MultiThreadedDLL - false - false - StreamingSIMDExtensions2 - true - - - global.h - $(IntDir)OpenITG.pch - $(IntDir) - $(IntDir) - $(IntDir)vc80.pdb - - - Level4 - true - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - /MACHINE:I386 "$(IntDir)verstub.obj" %(AdditionalOptions) - libusb.lib;%(AdditionalDependencies) - NotSet - ../Program/OpenITG-PC-SSE2.exe - true - libusb\lib\msvc;%(AdditionalLibraryDirectories) - wininet.lib;msimg32.lib;libci.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) - false - ../Program/OpenITG-PC-SSE2.pdb - true - $(IntDir)$(TargetName).map - true - Windows - false - - - - - true - - + + + + + Debug + Win32 + + + FastDebug + Win32 + + + Release-Arcade + Win32 + + + Release-Home-SSE2 + Win32 + + + Release-Home + Win32 + + + Release + Win32 + + + + OpenITG + {922728D0-EA2B-4CE3-95A5-C3A578327C85} + OpenITG + MFCProj + + + + Application + false + MultiByte + + + Application + false + MultiByte + + + Application + false + MultiByte + + + Application + false + MultiByte + + + Application + false + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(TargetDir) + $(SolutionDir)/build-vs2010/$(ProjectName)/$(Configuration)\ + true + $(TargetDir) + $(SolutionDir)/build-vs2010/$(ProjectName)/$(Configuration)\ + false + $(TargetDir) + $(SolutionDir)/build-vs2010/$(ProjectName)/$(Configuration)\ + true + $(TargetDir) + $(SolutionDir)/build-vs2010/$(ProjectName)/$(Configuration)\ + false + $(TargetDir) + $(SolutionDir)/build-vs2010/$(ProjectName)/$(Configuration)\ + false + $(TargetDir) + $(SolutionDir)/build-vs2010/$(ProjectName)/$(Configuration)\ + false + true + $(ProgramFiles)\Microsoft DirectX 9.0 SDK (October 2004)\Include;$(IncludePath) + $(ProgramFiles)\Microsoft DirectX 9.0 SDK (October 2004)\Lib;$(LibraryPath) + $(ProgramFiles)\Microsoft DirectX 9.0 SDK (October 2004)\Include;$(IncludePath) + $(ProgramFiles)\Microsoft DirectX 9.0 SDK (October 2004)\Lib;$(LibraryPath) + $(ProgramFiles)\Microsoft DirectX 9.0 SDK (October 2004)\Include;$(IncludePath) + $(ProgramFiles)\Microsoft DirectX 9.0 SDK (October 2004)\Lib;$(LibraryPath) + $(ProgramFiles)\Microsoft DirectX 9.0 SDK (October 2004)\Include;$(IncludePath) + $(ProgramFiles)\Microsoft DirectX 9.0 SDK (October 2004)\Lib;$(LibraryPath) + $(ProgramFiles)\Microsoft DirectX 9.0 SDK (October 2004)\Include;$(IncludePath) + $(ProgramFiles)\Microsoft DirectX 9.0 SDK (October 2004)\Lib;$(LibraryPath) + $(ProgramFiles)\Microsoft DirectX 9.0 SDK (October 2004)\Include;$(IncludePath) + $(ProgramFiles)\Microsoft DirectX 9.0 SDK (October 2004)\Lib;$(LibraryPath) + + + + archutils\Win32\gen-git-verinfo.bat + Pull revision info from Git + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\../StepMania.tlb + + + Disabled + .;vorbis;libjpeg;lua-5.0\include;libusb\include;BaseClasses;libtomcrypt\src\headers;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINDOWS;DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + false + + + EnableFastChecks + MultiThreadedDebug + NotSet + true + Use + global.h + $(IntDir)OpenITG.pch + $(IntDir) + $(IntDir) + $(IntDir)vc80.pdb + + + Level4 + true + EditAndContinue + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + /MACHINE:I386 "$(IntDir)verstub.obj" + shell32.lib;gdi32.lib;user32.lib;ole32.lib;advapi32.lib;libusb.lib;%(AdditionalDependencies) + ../Program/OpenITG-debug.exe + true + libusb\lib\msvc;%(AdditionalLibraryDirectories) + wininet.lib;msimg32.lib;libci.lib;libcmtd.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) + true + + + $(IntDir)StepMania-debug.pdb + true + $(IntDir)$(TargetName).map + true + Windows + false + + + + + archutils\Win32\mapconv "$(IntDir)$(TargetName).map" "$(TargetDir)\OpenITG-debug.vdi" + + + archutils\Win32\verinc & +cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)/verstub.obj" + Create build-specific info for Windows debug + + + + + archutils\Win32\gen-git-verinfo.bat + Pull revision info from Git + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\../StepMania.tlb + + + /EHa %(AdditionalOptions) + Full + AnySuitable + true + Size + .;vorbis;libjpeg;lua-5.0\include;libusb\include;BaseClasses;libtomcrypt\src\headers;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINDOWS;RELEASE;%(PreprocessorDefinitions) + true + false + + + MultiThreadedDLL + false + false + + + global.h + $(IntDir)OpenITG.pch + $(IntDir) + $(IntDir) + $(IntDir)vc80.pdb + + + Level4 + true + ProgramDatabase + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + /MACHINE:I386 "$(IntDir)verstub.obj" + libusb.lib;shell32.lib;gdi32.lib;user32.lib;ole32.lib;advapi32.lib;%(AdditionalDependencies) + ../Program/OpenITG-PC.exe + true + libusb\lib\msvc;%(AdditionalLibraryDirectories) + wininet.lib;msimg32.lib;libci.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) + ../Release/OpenITG-PC.pdb + true + $(IntDir)$(TargetName).map + true + Windows + false + + + + + archutils\Win32\mapconv "$(IntDir)$(TargetName).map" "$(TargetDir)\OpenITG-AC.vdi" + + + archutils\Win32\verinc & +cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)/verstub.obj" + Create build-specific info for Windows debug + + + + + archutils\Win32\gen-git-verinfo.bat + Pull revision info from Git + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\../StepMania.tlb + + + /EHa %(AdditionalOptions) + Disabled + .;vorbis;libjpeg;lua-5.0\include;libusb\include;BaseClasses;libtomcrypt\src\headers;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINDOWS;DEBUG;%(PreprocessorDefinitions) + + + Default + MultiThreadedDLL + + + $(IntDir)StepMania.pch + .\../FastDebug/ + .\../FastDebug/ + .\../FastDebug/ + + + Level4 + true + EditAndContinue + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + /MACHINE:I386 "$(IntDir)verstub.obj" + libusb.lib;%(AdditionalDependencies) + ../Program/StepMania-debug.exe + true + libusb\lib\msvc;%(AdditionalLibraryDirectories) + wininet.lib;msimg32.lib;libci.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) + true + ../Debug/StepMania-debug.pdb + true + $(IntDir)$(TargetName).map + true + Windows + false + + + + + archutils\Win32\mapconv "$(IntDir)$(TargetName).map" "$(TargetDir)\StepMania.vdi" + + + archutils\Win32\verinc & +cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)/verstub.obj" + Create build-specific info for Windows debug + + + + + archutils\Win32\gen-git-verinfo.bat + Pull revision info from Git + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\../StepMania.tlb + + + /EHa %(AdditionalOptions) + Full + AnySuitable + true + Speed + .;vorbis;libjpeg;lua-5.0\include;libusb\include;BaseClasses;libtomcrypt\src\headers;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINDOWS;RELEASE;ITG_ARCADE;%(PreprocessorDefinitions) + true + false + + + MultiThreadedDLL + false + false + StreamingSIMDExtensions2 + + + global.h + $(IntDir)OpenITG.pch + .\../Release-arcade/ + .\../Release-arcade/ + .\../Release-arcade/ + + + Level4 + true + ProgramDatabase + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + /MACHINE:I386 "$(IntDir)verstub.obj" + libusb.lib;%(AdditionalDependencies) + ../Program/OpenITG-AC.exe + true + libusb\lib\msvc;%(AdditionalLibraryDirectories) + wininet.lib;msimg32.lib;libci.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) + false + ../Program/OpenITG-AC.pdb + true + $(IntDir)$(TargetName).map + true + Windows + false + + + + + archutils\Win32\mapconv "$(IntDir)$(TargetName).map" "$(TargetDir)\OpenITG-AC.vdi" + + + archutils\Win32\verinc & +cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)/verstub.obj" + Create build-specific info for Windows debug + + + + + archutils\Win32\gen-git-verinfo.bat + Pull revision info from Git + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\../StepMania.tlb + + + /EHsc %(AdditionalOptions) + Full + AnySuitable + true + Speed + .;vorbis;libjpeg;lua-5.0\include;libusb\include;BaseClasses;libtomcrypt\src\headers;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINDOWS;RELEASE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + + + MultiThreadedDLL + false + false + NotSet + true + + + global.h + $(IntDir)OpenITG.pch + .\../Release-home/ + .\../Release-home/ + .\../Release-home/ + + + Level4 + true + ProgramDatabase + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + /MACHINE:I386 "$(IntDir)verstub.obj" + libusb.lib;%(AdditionalDependencies) + ../Program/OpenITG-PC.exe + true + libusb\lib\msvc;%(AdditionalLibraryDirectories) + wininet.lib;msimg32.lib;libci.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) + false + ../Program/OpenITG-PC.pdb + true + $(IntDir)$(TargetName).map + true + Windows + false + + + + + archutils\Win32\mapconv "$(IntDir)$(TargetName).map" "$(TargetDir)\OpenITG-PC.vdi" + + + archutils\Win32\verinc & +cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)/verstub.obj" + Create build-specific info for Windows debug + + + + + archutils\Win32\gen-git-verinfo.bat + Pull revision info from Git + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\../StepMania.tlb + + + /MP4 %(AdditionalOptions) + Full + AnySuitable + true + Size + .;vorbis;libjpeg;lua-5.0\include;libusb\include;BaseClasses;libtomcrypt\src\headers;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINDOWS;RELEASE;_CRT_SECURE_NO_WARNINGS;OITG_VERSION="b3-win32";OITG_DATE="03_31_2001";%(PreprocessorDefinitions) + true + false + + + MultiThreadedDLL + false + false + StreamingSIMDExtensions2 + true + + + global.h + $(IntDir)OpenITG.pch + $(IntDir) + $(IntDir) + $(IntDir)vc80.pdb + + + Level4 + true + ProgramDatabase + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + /MACHINE:I386 "$(IntDir)verstub.obj" + libusb.lib;%(AdditionalDependencies) + NotSet + ../Program/OpenITG-PC-SSE2.exe + true + libusb\lib\msvc;%(AdditionalLibraryDirectories) + wininet.lib;msimg32.lib;libci.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) + false + ../Program/OpenITG-PC-SSE2.pdb + true + $(IntDir)$(TargetName).map + true + Windows + false + + + + + true + + archutils\Win32\mapconv "$(IntDir)$(TargetName).map" "$(TargetDir)\OpenITG-PC-SSE2.vdi" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Create - Create - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - - - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - - - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - - - - - - - + + + + archutils\Win32\verinc & +cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)/verstub.obj" + Create build-specific info for Windows debug + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Create + Create + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + + + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + + + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/StepMania-net2010.vcxproj.filters b/src/StepMania-net2010.vcxproj.filters index 23514fea..80bd4cb7 100644 --- a/src/StepMania-net2010.vcxproj.filters +++ b/src/StepMania-net2010.vcxproj.filters @@ -85,6 +85,9 @@ {8e416c61-9b4a-497e-942b-ac1bb9992bc2} + + {d1e0ead5-46be-415c-a80b-dc3b0660bffa} + @@ -633,9 +636,6 @@ StepMania\arch\Lights - - StepMania\arch\Lights - StepMania\arch\Lights @@ -1416,6 +1416,36 @@ BaseClasses + + Special I/O\iButton + + + Special I/O\iButton + + + Special I/O\iButton + + + Special I/O\iButton + + + Special I/O\iButton + + + Special I/O\iButton + + + Special I/O\iButton + + + Special I/O\iButton + + + Special I/O\iButton + + + Special I/O\iButton + @@ -2003,9 +2033,6 @@ StepMania\arch\Lights - - StepMania\arch\Lights - StepMania\arch\Lights @@ -2723,6 +2750,18 @@ Special I/O + + Special I/O\iButton + + + Special I/O\iButton + + + Special I/O\iButton + + + Special I/O\iButton + diff --git a/src/archutils/Win32/Crash.cpp b/src/archutils/Win32/Crash.cpp index c111d229..051a6b0c 100644 --- a/src/archutils/Win32/Crash.cpp +++ b/src/archutils/Win32/Crash.cpp @@ -42,9 +42,9 @@ static void DoSave(); extern HINSTANCE g_hInstance; -/* TODO: clean up Windows build data, then fix this back up. */ -unsigned long VersionNumber = 1; -const char *const VersionTime = "(unknown)"; +/* Defined in verstub.cpp, generated by the pre-link event */ +extern unsigned long VersionNumber; +extern const char *const VersionTime; extern HINSTANCE g_hInstance; #define BACKTRACE_MAX_SIZE 100 diff --git a/src/archutils/Win32/arch_setup.h b/src/archutils/Win32/arch_setup.h index 1ba5ddae..c270cf8a 100644 --- a/src/archutils/Win32/arch_setup.h +++ b/src/archutils/Win32/arch_setup.h @@ -1,191 +1,194 @@ -#ifndef ARCH_SETUP_WINDOWS_H -#define ARCH_SETUP_WINDOWS_H - -#if !defined(XBOX) -#define SUPPORT_OPENGL -#endif - -#define SUPPORT_D3D - -/* Fix VC breakage. */ -#define PATH_MAX _MAX_PATH - -#if _MSC_VER < 1300 /* VC6, not VC7 */ -#define NEED_MINMAX_TEMPLATES 1 -#endif - -// HACK: Fake correct scoping rules in VC6. -#if _MSC_VER == 1200 -#define for if(0); else for -#endif - -/* Don't include windows.h everywhere; when we do eventually include it, use these: */ -#define WIN32_LEAN_AND_MEAN -#define VC_EXTRALEAN - -/* Pull in NT-only definitions. We support Windows XP onward. */ -#define _WIN32_WINNT 0x0500 - -/* If this isn't defined to 0, VC fails to define things like stat and alloca. */ -#define __STDC__ 0 - -#include /* has stuff that should be in unistd.h */ -#include /* needs to be included before our fixes below */ - -#define lstat stat -#define fsync _commit -#define isnan _isnan -#define finite _finite - -/* mkdir is missing the mode arg */ -#define mkdir(p,m) mkdir(p) - -typedef time_t time_t; -struct tm; -struct tm *my_localtime_r( const time_t *timep, struct tm *result ); -#define localtime_r my_localtime_r -struct tm *my_gmtime_r( const time_t *timep, struct tm *result ); -#define gmtime_r my_gmtime_r -void my_usleep( unsigned long usec ); -#define usleep my_usleep - -/* Missing stdint types: */ -#ifndef WIN32 -#include "stdint.h" -#else -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef signed short int16_t; -typedef unsigned short uint16_t; -typedef int int32_t; -typedef unsigned int uint32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -#endif +#ifndef ARCH_SETUP_WINDOWS_H +#define ARCH_SETUP_WINDOWS_H + +#if !defined(XBOX) +#define SUPPORT_OPENGL +#endif + +#define SUPPORT_D3D + +/* Fix VC breakage. */ +#define PATH_MAX _MAX_PATH + +#if _MSC_VER < 1300 /* VC6, not VC7 */ +#define NEED_MINMAX_TEMPLATES 1 +#endif + +// HACK: Fake correct scoping rules in VC6. +#if _MSC_VER == 1200 +#define for if(0); else for +#endif + +/* Don't include windows.h everywhere; when we do eventually include it, use these: */ +#define WIN32_LEAN_AND_MEAN +#define VC_EXTRALEAN + +/* Pull in NT-only definitions. We support Windows XP onward. */ +#define _WIN32_WINNT 0x0500 + +/* If this isn't defined to 0, VC fails to define things like stat and alloca. */ +#define __STDC__ 0 + +#include /* has stuff that should be in unistd.h */ +#include /* needs to be included before our fixes below */ + +#define lstat stat +#define fsync _commit +#define isnan _isnan +#define finite _finite + +#pragma warning( disable : 4996 ) /* '_stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp. */ +/* I tried defining stricmp to _stricmp and that's what VS2010 gave me; clearly, the only winning move is not to play. */ + +/* mkdir is missing the mode arg */ +#define mkdir(p,m) mkdir(p) + +typedef time_t time_t; +struct tm; +struct tm *my_localtime_r( const time_t *timep, struct tm *result ); +#define localtime_r my_localtime_r +struct tm *my_gmtime_r( const time_t *timep, struct tm *result ); +#define gmtime_r my_gmtime_r +void my_usleep( unsigned long usec ); +#define usleep my_usleep + +/* Missing stdint types: */ +#ifndef WIN32 +#include "stdint.h" +#else +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef int int32_t; +typedef unsigned int uint32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#endif #if _MSC_VER < 1600 // 1600 = VC++ 2010 static inline int64_t llabs( int64_t i ) { return i >= 0? i: -i; } #endif // #if _MSC_VER < 1600 - -#if defined(_MSC_VER) -#pragma warning (disable : 4201) // nonstandard extension used : nameless struct/union (Windows headers do this) -#pragma warning (disable : 4786) // turn off broken debugger warning -#pragma warning (disable : 4512) // assignment operator could not be generated (so?) -/* "unreachable code". This warning crops up in incorrect places (end of do ... while(0) - * blocks, try/catch blocks), and I've never found it to be useful. */ -#pragma warning (disable : 4702) // assignment operator could not be generated (so?) -/* "unreferenced formal parameter"; we *want* that in many cases */ -#pragma warning (disable : 4100) -/* "case 'aaa' is not a valid value for switch of enum 'bbb' - * Actually, this is a valid warning, but we do it all over the - * place, eg. with ScreenMessages. Those should be fixed, but later. XXX */ -#pragma warning (disable : 4063) -#pragma warning (disable : 4127) -#pragma warning (disable : 4786) /* VC6: identifier was truncated to '255' characters in the debug information */ -#pragma warning (disable : 4800) /* Forcing value to bool 'true' or 'false' - that's the whole point. Why warn us? */ -#endif - -#undef min -#undef max -#define NOMINMAX /* make sure Windows doesn't try to define this */ - -/* Windows is missing some basic math functions: */ -#define NEED_TRUNCF -#define NEED_ROUNDF -#define NEED_STRTOF -//our cross-platform stdint covers us here -//#define MISSING_STDINT_H - -inline int lrintf( float f ) -{ - int retval; - - _asm fld f; - _asm fistp retval; - - return retval; -} - -/* For RageLog. */ -#define HAVE_VERSION_INFO - -/* We implement the crash handler interface (though that interface isn't completely - * uniform across platforms yet). */ -#if defined(_XBOX) - // no crash handler on Xbox -#else -# define CRASH_HANDLER -#endif - -#define ENDIAN_LITTLE - -#if defined(XBOX) -#include "ArchUtils/Xbox/arch_setup.h" -#endif - -#define HAVE_BYTE_SWAPS - -inline uint32_t ArchSwap32( uint32_t n ) -{ - __asm - { - mov eax, n - xchg al, ah - ror eax, 16 - xchg al, ah - mov n, eax - }; - return n; -} - -inline uint32_t ArchSwap24( uint32_t n ) -{ - __asm - { - mov eax, n - xchg al, ah - ror eax, 16 - xchg al, ah - ror eax, 8 - mov n, eax - }; - return n; -} - -inline uint16_t ArchSwap16( uint16_t n ) -{ - __asm - { - mov ax, n - xchg al, ah - mov n, ax - }; - return n; -} - -#endif - -/* - * (c) 2002-2004 Glenn Maynard - * (c) 2008 BoXoRRoXoRs - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, and/or sell copies of the Software, and to permit persons to - * whom the Software is furnished to do so, provided that the above - * copyright notice(s) and this permission notice appear in all copies of - * the Software and that both the above copyright notice(s) and this - * permission notice appear in supporting documentation. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF - * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS - * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT - * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS - * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ + +#if defined(_MSC_VER) +#pragma warning (disable : 4201) // nonstandard extension used : nameless struct/union (Windows headers do this) +#pragma warning (disable : 4786) // turn off broken debugger warning +#pragma warning (disable : 4512) // assignment operator could not be generated (so?) +/* "unreachable code". This warning crops up in incorrect places (end of do ... while(0) + * blocks, try/catch blocks), and I've never found it to be useful. */ +#pragma warning (disable : 4702) // assignment operator could not be generated (so?) +/* "unreferenced formal parameter"; we *want* that in many cases */ +#pragma warning (disable : 4100) +/* "case 'aaa' is not a valid value for switch of enum 'bbb' + * Actually, this is a valid warning, but we do it all over the + * place, eg. with ScreenMessages. Those should be fixed, but later. XXX */ +#pragma warning (disable : 4063) +#pragma warning (disable : 4127) +#pragma warning (disable : 4786) /* VC6: identifier was truncated to '255' characters in the debug information */ +#pragma warning (disable : 4800) /* Forcing value to bool 'true' or 'false' - that's the whole point. Why warn us? */ +#endif + +#undef min +#undef max +#define NOMINMAX /* make sure Windows doesn't try to define this */ + +/* Windows is missing some basic math functions: */ +#define NEED_TRUNCF +#define NEED_ROUNDF +#define NEED_STRTOF +//our cross-platform stdint covers us here +//#define MISSING_STDINT_H + +inline int lrintf( float f ) +{ + int retval; + + _asm fld f; + _asm fistp retval; + + return retval; +} + +/* For RageLog. */ +#define HAVE_VERSION_INFO + +/* We implement the crash handler interface (though that interface isn't completely + * uniform across platforms yet). */ +#if defined(_XBOX) + // no crash handler on Xbox +#else +# define CRASH_HANDLER +#endif + +#define ENDIAN_LITTLE + +#if defined(XBOX) +#include "ArchUtils/Xbox/arch_setup.h" +#endif + +#define HAVE_BYTE_SWAPS + +inline uint32_t ArchSwap32( uint32_t n ) +{ + __asm + { + mov eax, n + xchg al, ah + ror eax, 16 + xchg al, ah + mov n, eax + }; + return n; +} + +inline uint32_t ArchSwap24( uint32_t n ) +{ + __asm + { + mov eax, n + xchg al, ah + ror eax, 16 + xchg al, ah + ror eax, 8 + mov n, eax + }; + return n; +} + +inline uint16_t ArchSwap16( uint16_t n ) +{ + __asm + { + mov ax, n + xchg al, ah + mov n, ax + }; + return n; +} + +#endif + +/* + * (c) 2002-2004 Glenn Maynard + * (c) 2008 BoXoRRoXoRs + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, and/or sell copies of the Software, and to permit persons to + * whom the Software is furnished to do so, provided that the above + * copyright notice(s) and this permission notice appear in all copies of + * the Software and that both the above copyright notice(s) and this + * permission notice appear in supporting documentation. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF + * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS + * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT + * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS + * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ diff --git a/src/archutils/Win32/verinc.c b/src/archutils/Win32/verinc.c index 40ebf924..f1f3be59 100755 --- a/src/archutils/Win32/verinc.c +++ b/src/archutils/Win32/verinc.c @@ -52,8 +52,7 @@ int main(void) fprintf(f, "unsigned long VersionNumber = %ld;\n" "extern const char *const VersionTime = \"%s\";\n" - "extern const char *const VersionDate = \"%s\";\n" - "extern const bool VersionSVN = false;\n", + "extern const char *const VersionDate = \"%s\";\n", build, strtime, strdate ); fclose( f ); diff --git a/src/archutils/Win32/verinc.exe b/src/archutils/Win32/verinc.exe index 8fd2bc1720eab07aa199b8530c3f7c3837527103..e7d377acead3e91d6508ad762310e03e83689f6e 100755 GIT binary patch literal 7168 zcmeHLeQ;aVmA{fDqBwS9id76Gv}3~^BW6`MFw6zR!Nj=p#w zj=e)!vLcVx7Jh(&lCOx1%YjSFU}1 zB{{nMZ1uQd+u7<)F)DK@DcLUt<6J11NF)_*pTJ3Kf{P}&mIphycrq;1m6w;+6kO{! zz3}~G(oYr^;k;?*!Z`ZpO+)vgak^RT0Mv$j9#GW0 zgkqkE^;{2b>c;?ZiL?*N_lP10HQf6&(a6%^WB`lRL1M~bz3z%b&Q95DHH z>$f5A*56H^tkivz;(D!t9kvWu zaxat+(mOFwAwFw^vlTZG!vCyc%_DH3uIT6(Fm&kFyD%!Vdm%hZPmY!{Wp+;=Pr(4I zqg(AzHclwFG@eo|{6||d>hw&7n1fT@>Vj(Krx1?DU=4%Pfweg|oo}X*i4JAeyE1O7 z6sKS-o(IbPsTl^nhqB7er+o{b>bgFT2LZYKbD)gdg}@iR-6l@bL1*Zod)c7VX6nlb z%ZA<4s-*+rd7y1r^BBa+Eg~hk9@LAvFYOpGA~`A>rFGKEAA@bipu1^Lchj=zZd$jT z@M~R9pDY`*qtmda23XyQ^?w}pnr~LKXv?t){5x_Xnp^LLCge2V6tkwaWcJHo{{)ML zrl8)STaTbu$Z(W8&YeeK6XR_U5fW)YI*8cBXJ_1_O<)h=N$4f?@uANAa0PCuNWH4(Pgd9T=@#M7CoJMME_2P6#uW zQ9sj#A<0;B?M6a!FCvz7b0u65wM?w9qOP{VsyElqG!@jjx|}+0rD8riksE^M@()ld zO~*MtIJ*wj81p*dw7iL8tB2w>E{ffDikt5Ojyz%QVWfN;BWu<%VyZ9an74EP(R%CQ#oPMbZz%S|ME+T6snI5PAo zWe#1$kWmw3FM-vql}KmoFa!gJ+$LnyJAl-yAQZ=|X%$w3O*c~mqFP|HhT4eKw{GR2 z!#dZ1ygk9Hp!qBsIp_(=@hSDr^iV~KTBCU@n>q8>Zc(hw)s(Dkwo$UInRx%wpqg{% zP&Pih`%M!O->IZC(#cU@z4lo!1C`>q4Vz`3kzjYyMbz9Ckn0yRzUlP5u9oSlMYpCP z>YWMWd_PV1WLj7#STj4_O}7ALr$&5J{t@4_AEPuk-6Oc!a=S1F`#s~kq^r~V1-4go zbqX9ESJ<>U`YhLcmvXBS$^>RwOJ~Zb4R5)2RP)Nk+p&Q^}cCuWhRA=w9{O!#D8fc8;`Is&Gf&rhTzY zYb|U14{5p9V=4K^#!sZu`_kEUjTfXGpAGEUb&b1xJOiJK7ZJXA`DQN(j}kP0de(x= zl5IJMZ=Qb(C7%nAQB_9Bp`Mfz=?Tx>iK?YfnoyWd?49-O)aNyRrm;YCx8|)mkz0FZ zGCgG|EQZ!L7tWMZH@ygoJ}cP8#GgAzuaYdwoZd?Xb3S|h0KK-4E`M!Hp|-R{`5bgN zb*#12RAgc`6(fK@nYx+Vn#*XR~Jg9NNsOzyf#e8fr1>7)a{EVh=e|Uywb;REBOC) z!}!N+^wCX7dq+#h{dYWRoSXP^+fmEk+`iZT!7H>roA2)Hk`Yti;IJ6(Ye|OGxR6lf zz6Vo6Vr%F9>%+oeUlM#&>F>jrUtdrPiK-Hf$$dMc3EtV)F2sbOEc79-Xd+aX3h%o% z+RHaz+h6R_*HFq&7AWn%`Z+H-1)yzF|4xyf%3m+6`J(<}k^TWZ9`*o~qCL}%ebmC? zleS1!`bTgC*=M!imGe?v62SL&Fs5L$*1HIK*c2$RX>%lnwNfG^U=GS5DkZvER-_1H z$us820V%2oc#@hUk`N4&L31P&OUjTOG)L%WAZ;Dpo7)|BdtEpdBjhbZAQ+eX1Hw=g zKS_iPfk3~Y#Dmd9Q0kY-B|{*T*W78$o2)kkdO|5>OEiXqMr3nd8^*XO_L-0vBrh8o z3w4~la+MDVWES3%iAc0x5ov5JM}a(#v9h43*vavrA_@|Y& zR#-Ihf(f(yW_8I{xusB0za+?TN`6dQgyJavx@3ncNW*?XVxcBN!sevP;`^Erv2;d5 z`eGkByTRT!cY-V>a7{1=)7*J>{iM zL0J~!`(nc!93dD$h3Ey_Y>NbAvS7QXX~UB5YX>j+FS599_NEQj#M-oB zDQOIE+OSy9dx};U@4c;9w`F##{Z{*0d!2oYz0=-nm+fhL#{RT@)c%tFUHe7*Cw8Nw z+OfgW;P5)OI395L9bJxx9D5z2;}J*3@r>iUjvqMw&T-K(y&Gi+v>jEUF){H>)l)3d)!g?pSi#8 z9(BLx{uj5YetG@6`ZM)s>;I|#*Y!7Uym{lJ8z0~Jm5ncL{A45X+~*NIlIKy+mpp&r z`G#l0^Apbn&n3@4dvcy%c|P=f>>&+=%fB+dgIZm(k2~IQEI5esd(M}glgMz+Syb`= HSL}ZR)C=F5 literal 49152 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 Rk_Ji|C~2Uif&Ui`{2TGE+>HPL diff --git a/src/ibutton/ibutton.vcproj b/src/ibutton/ibutton.vcproj deleted file mode 100644 index c7042c54..00000000 --- a/src/ibutton/ibutton.vcproj +++ /dev/null @@ -1,228 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- 2.11.0