Improve Visual Studio 2015 build.

This commit is contained in:
Bart House
2017-08-29 21:26:12 -07:00
committed by Pasi Kallinen
parent e5dadd525f
commit 98266801b6
3 changed files with 45 additions and 6 deletions

View File

@@ -3,3 +3,5 @@
*.ico
*.db
record
*.user

View File

@@ -10,8 +10,6 @@
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>WIN32;CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MultiProcessorCompilation>false</MultiProcessorCompilation>
<AdditionalOptions>/FS %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@@ -27,7 +25,6 @@
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalOptions>/SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">

View File

@@ -1,7 +1,47 @@
Changes made to vs2015 build
1. allow solution to be used in place
Changes
1. Removed the use of /FS.
2. Allow multi-processor compilation.
To Do
Questions
1. win\share\tiletxt.c is copied from win\share\tilemap.c ... use tilemap.c instead directly.
1. Why is /Gs used? This initiates stack probes for every function call (not just functions that use more then 4k)?
2. Why is /Oi- used? This turns off compiler intrinsics.
3. Why is /FS used? This forces serialization of writes to PDB. This really isn't needed.
4. Why are we disabling optimizations for release builds?
5. Why are we omitting frame pointers? Makes debugging harder. Crash dumps less usefull.
6. Why are we forcing function level linking?
7. Why are we turning off intrinsics (again)?
8. Why are we enabling additional security checks? (SDLCheck)
9. Why are we using string pooling?
10. Why do we turn off multi-processor compilation?
Nethack Compiler Settings - Release
/Gs
/Oi-
/FS
Optimizations:Disabled
WarningLevel:Level3
InlineFunctionExpansion:Default
FavorSizeOrSpeed:Speed
OmitFramePointers:true
Optimization:MaxSpeed
FunctionLevelLinking:true
IntrinsicFunctions:false
PreprocessorDefinitions:TILES;MSWIN_GRAPHICS;WIN32;WIN32CON;DLB;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;NDEBUG;_CONSOLE;_LIB;
SDLCheck:true
AdditionalIncludeDirectories:..\win\win32;..\include;..\sys\winnt;..\sys\share;..\win\share;
StringPooling:true
RuntimeLibrary:MultiThreaded
SuppressStartupBanner:true
MultiProcessorCompilation:false
Nethack Link Settings - Release
SubSystem:Console
GenetateDebugInformation:true
EnableCOMDATFolding:true
OptimizeReferenes:true
AdditionalDependencies:kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;winmm.lib;Winmm.lib;
SuppressStartupBanner:true
TargetMachine:MachineX86