]> granicus.if.org Git - nethack/commitdiff
Improve Visual Studio 2015 build.
authorBart House <bhouse@ntdev.microsoft.com>
Wed, 30 Aug 2017 04:26:12 +0000 (21:26 -0700)
committerPasi Kallinen <paxed@alt.org>
Fri, 1 Sep 2017 09:13:52 +0000 (12:13 +0300)
win/win32/.gitignore
win/win32/vs2015/common.props
win/win32/vs2015/notes.txt

index 00483b5c1e9122e2404730a9e4d3318742eecd78..5f3465e5f18eac0e0192b9b4011bda1d687e0d3c 100644 (file)
@@ -3,3 +3,5 @@
 *.ico
 *.db
 record
+*.user
+
index d39cf46160eaf8761b83d6d39b26d7a3cea3b93a..2504e3912cc199085d0f6fc624b49c299ae70fc2 100644 (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'">
index d0aaf24e17ea8292cad95413db862fb0e03cdf1b..c63113fd9c6db34e6f1c9854bd68ef89e53c7eb5 100644 (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