Skip to content

Silo Build Instructions for Visual Studio 2017 with vcpkg

Parsa Amini edited this page Jan 9, 2019 · 4 revisions

The following are Silo build instructions (Release, 64-bit) for Visual Studio 2017 with vcpkg without Qt

  1. Ensure you have vcpkg set up and you have 64 bit versions of hdf5, szip and zlib installed

  2. Ensure you have perl installed in your path

Verify by running perl --version in Command Prompt

  1. Download url https://wci.llnl.gov/content/assets/docs/simulation/computer-codes/silo/silo-4.10.2/silo-4.10.2.tar.gz:
$ curl -JLO https://wci.llnl.gov/content/assets/docs/simulation/computer-codes/silo/silo-4.10.2/silo-4.10.2.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12.5M  100 12.5M    0     0   944k      0  0:00:13  0:00:13 --:--:--  997k
  1. Extract:
$ tar xf silo-4.10.2.tar.gz
tar: silo-4.10.2/config-site/alderaan.conf: Cannot create symlink to ‘hoth.conf’: No such file or directory
tar: silo-4.10.2/config-site/bgl1.conf: Cannot create symlink to ‘ubgl.conf’: No such file or directory
tar: silo-4.10.2/config-site/bgl10.conf: Cannot create symlink to ‘ubgl.conf’: No such file or directory
tar: silo-4.10.2/config-site/bgl11.conf: Cannot create symlink to ‘ubgl.conf’: No such file or directory
tar: silo-4.10.2/config-site/bgl2.conf: Cannot create symlink to ‘ubgl.conf’: No such file or directory
tar: silo-4.10.2/config-site/bgl3.conf: Cannot create symlink to ‘ubgl.conf’: No such file or directory
tar: silo-4.10.2/config-site/bgl4.conf: Cannot create symlink to ‘ubgl.conf’: No such file or directory
tar: silo-4.10.2/config-site/bgl5.conf: Cannot create symlink to ‘ubgl.conf’: No such file or directory
tar: silo-4.10.2/config-site/bgl6.conf: Cannot create symlink to ‘ubgl.conf’: No such file or directory
tar: silo-4.10.2/config-site/bgl7.conf: Cannot create symlink to ‘ubgl.conf’: No such file or directory
tar: silo-4.10.2/config-site/bgl8.conf: Cannot create symlink to ‘ubgl.conf’: No such file or directory
tar: silo-4.10.2/config-site/bgl9.conf: Cannot create symlink to ‘ubgl.conf’: No such file or directory
tar: silo-4.10.2/config-site/cslic.conf: Cannot create symlink to ‘llnl_lc.conf’: No such file or directory
tar: silo-4.10.2/config-site/cslic1.conf: Cannot create symlink to ‘cslic.conf’: No such file or directory
tar: silo-4.10.2/config-site/cslic2.conf: Cannot create symlink to ‘cslic.conf’: No such file or directory
tar: silo-4.10.2/config-site/cslic3.conf: Cannot create symlink to ‘cslic.conf’: No such file or directory
tar: silo-4.10.2/config-site/cslic4.conf: Cannot create symlink to ‘cslic.conf’: No such file or directory
tar: silo-4.10.2/config-site/cslic5.conf: Cannot create symlink to ‘cslic.conf’: No such file or directory
tar: silo-4.10.2/config-site/eos.conf: Cannot create symlink to ‘llnl_lc.conf’: No such file or directory
tar: silo-4.10.2/config-site/eos0.conf: Cannot create symlink to ‘eos.conf’: No such file or directory
tar: silo-4.10.2/config-site/eos1.conf: Cannot create symlink to ‘eos.conf’: No such file or directory
tar: silo-4.10.2/config-site/hera.conf: Cannot create symlink to ‘llnl_lc.conf’: No such file or directory
tar: silo-4.10.2/config-site/hera0.conf: Cannot create symlink to ‘hera.conf’: No such file or directory
tar: silo-4.10.2/config-site/hera1.conf: Cannot create symlink to ‘hera.conf’: No such file or directory
tar: silo-4.10.2/config-site/hera552.conf: Cannot create symlink to ‘hera.conf’: No such file or directory
tar: silo-4.10.2/config-site/hera553.conf: Cannot create symlink to ‘hera.conf’: No such file or directory
tar: silo-4.10.2/config-site/hera840.conf: Cannot create symlink to ‘hera.conf’: No such file or directory
tar: silo-4.10.2/config-site/hera841.conf: Cannot create symlink to ‘hera.conf’: No such file or directory
tar: silo-4.10.2/config-site/um.conf: Cannot create symlink to ‘uv.conf’: No such file or directory
tar: silo-4.10.2/config-site/um006.conf: Cannot create symlink to ‘uv.conf’: No such file or directory
tar: Exiting with failure status due to previous errors
  1. Open a\SiloWindows in Windows Explorer:

  2. Edit the file "a\SiloWindows\MSVC2012\DepLibs.props": Update lines 5-19 from:

    <HDF5_INC_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\hdf5\1.8.12\include</HDF5_INC_DIR>
    <HDF5_INC_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\hdf5\1.8.12\include</HDF5_INC_DIR_X64>
    <HDF5_LIB_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\hdf5\1.8.12\lib</HDF5_LIB_DIR>
    <HDF5_LIB_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\hdf5\1.8.12\lib</HDF5_LIB_DIR_X64>
    <HDF5_BIN_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\hdf5\1.8.12\bin</HDF5_BIN_DIR>
    <HDF5_BIN_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\hdf5\1.8.12\bin</HDF5_BIN_DIR_X64>
    <SZIP_INC_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\szip\2.1\include</SZIP_INC_DIR>
    <SZIP_LIB_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\szip\2.1\lib</SZIP_LIB_DIR>
    <SZIP_LIB_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\szip\2.1\lib</SZIP_LIB_DIR_X64>
    <ZLIB_INC_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\zlib\1.2.8\include</ZLIB_INC_DIR>
    <ZLIB_LIB_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\zlib\1.2.8\lib</ZLIB_LIB_DIR>
    <ZLIB_LIB_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\zlib\1.2.8\lib</ZLIB_LIB_DIR_X64>
    <QT_INC_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\Qt\4.8.3\include</QT_INC_DIR>
    <QT_LIB_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\Qt\4.8.3\lib</QT_LIB_DIR>
    <QT_LIB_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\Qt\4.8.3\lib</QT_LIB_DIR_X64>

to:

    <HDF5_INC_DIR></HDF5_INC_DIR>
    <HDF5_INC_DIR_X64>C:\Repos\vcpkg\installed\x64-windows\include</HDF5_INC_DIR_X64>
    <HDF5_LIB_DIR></HDF5_LIB_DIR>
    <HDF5_LIB_DIR_X64>C:\Repos\vcpkg\installed\x64-windows\lib</HDF5_LIB_DIR_X64>
    <HDF5_BIN_DIR></HDF5_BIN_DIR>
    <HDF5_BIN_DIR_X64>C:\Repos\vcpkg\installed\x64-windows\bin</HDF5_BIN_DIR_X64>
    <SZIP_INC_DIR></SZIP_INC_DIR>
    <SZIP_LIB_DIR></SZIP_LIB_DIR>
    <SZIP_LIB_DIR_X64>C:\Repos\vcpkg\installed\x64-windows\lib</SZIP_LIB_DIR_X64>
    <ZLIB_INC_DIR></ZLIB_INC_DIR>
    <ZLIB_LIB_DIR></ZLIB_LIB_DIR>
    <ZLIB_LIB_DIR_X64>C:\Repos\vcpkg\installed\x64-windows\lib</ZLIB_LIB_DIR_X64>
    <QT_INC_DIR>C:\Repos\vcpkg\installed\x64-windows\include</QT_INC_DIR>
    <QT_LIB_DIR></QT_LIB_DIR>
    <QT_LIB_DIR_X64>C:\Repos\vcpkg\installed\x64-windows\lib</QT_LIB_DIR_X64>
diff a/SiloWindows/MSVC2012/DepLibs.props b/SiloWindows/MSVC2012/DepLibs.props
--- a/SiloWindows/MSVC2012/DepLibs.props	2014-05-22 18:58:26.000000000 -0500
+++ b/SiloWindows/MSVC2012/DepLibs.props	2019-01-03 10:26:25.558377700 -0600
@@ -2,21 +2,21 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Label="PropertySheets" />
   <PropertyGroup Label="UserMacros">
-    <HDF5_INC_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\hdf5\1.8.12\include</HDF5_INC_DIR>
-    <HDF5_INC_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\hdf5\1.8.12\include</HDF5_INC_DIR_X64>
-    <HDF5_LIB_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\hdf5\1.8.12\lib</HDF5_LIB_DIR>
-    <HDF5_LIB_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\hdf5\1.8.12\lib</HDF5_LIB_DIR_X64>
-    <HDF5_BIN_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\hdf5\1.8.12\bin</HDF5_BIN_DIR>
-    <HDF5_BIN_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\hdf5\1.8.12\bin</HDF5_BIN_DIR_X64>
-    <SZIP_INC_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\szip\2.1\include</SZIP_INC_DIR>
-    <SZIP_LIB_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\szip\2.1\lib</SZIP_LIB_DIR>
-    <SZIP_LIB_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\szip\2.1\lib</SZIP_LIB_DIR_X64>
-    <ZLIB_INC_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\zlib\1.2.8\include</ZLIB_INC_DIR>
-    <ZLIB_LIB_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\zlib\1.2.8\lib</ZLIB_LIB_DIR>
-    <ZLIB_LIB_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\zlib\1.2.8\lib</ZLIB_LIB_DIR_X64>
-    <QT_INC_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\Qt\4.8.3\include</QT_INC_DIR>
-    <QT_LIB_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\Qt\4.8.3\lib</QT_LIB_DIR>
-    <QT_LIB_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\Qt\4.8.3\lib</QT_LIB_DIR_X64>
+    <HDF5_INC_DIR>C:\Repos\vcpkg\installed\x64-windows\include</HDF5_INC_DIR>
+    <HDF5_INC_DIR_X64>C:\Repos\vcpkg\installed\x64-windows\include</HDF5_INC_DIR_X64>
+    <HDF5_LIB_DIR>C:\Repos\vcpkg\installed\x64-windows\lib</HDF5_LIB_DIR>
+    <HDF5_LIB_DIR_X64>C:\Repos\vcpkg\installed\x64-windows\lib</HDF5_LIB_DIR_X64>
+    <HDF5_BIN_DIR>C:\Repos\vcpkg\installed\x64-windows\bin</HDF5_BIN_DIR>
+    <HDF5_BIN_DIR_X64>C:\Repos\vcpkg\installed\x64-windows\bin</HDF5_BIN_DIR_X64>
+    <SZIP_INC_DIR>C:\Repos\vcpkg\installed\x64-windows\include</SZIP_INC_DIR>
+    <SZIP_LIB_DIR>C:\Repos\vcpkg\installed\x64-windows\lib</SZIP_LIB_DIR>
+    <SZIP_LIB_DIR_X64>C:\Repos\vcpkg\installed\x64-windows\lib</SZIP_LIB_DIR_X64>
+    <ZLIB_INC_DIR>C:\Repos\vcpkg\installed\x64-windows\include</ZLIB_INC_DIR>
+    <ZLIB_LIB_DIR>C:\Repos\vcpkg\installed\x64-windows\lib</ZLIB_LIB_DIR>
+    <ZLIB_LIB_DIR_X64>C:\Repos\vcpkg\installed\x64-windows\lib</ZLIB_LIB_DIR_X64>
+    <QT_INC_DIR>C:\Repos\vcpkg\installed\x64-windows\include</QT_INC_DIR>
+    <QT_LIB_DIR>C:\Repos\vcpkg\installed\x64-windows\lib</QT_LIB_DIR>
+    <QT_LIB_DIR_X64>C:\Repos\vcpkg\installed\x64-windows\lib</QT_LIB_DIR_X64>
   </PropertyGroup>
   <PropertyGroup />
   <ItemDefinitionGroup />
  1. Open Silo.sln

Visual Studio offers to upgrade and retarget the projects. Click OK.

diff a/SiloWindows/MSVC2012/browser.vcxproj b/SiloWindows/MSVC2012/browser.vcxproj
--- a/SiloWindows/MSVC2012/browser.vcxproj	2014-05-07 21:55:43.000000000 -0500
+++ b/SiloWindows/MSVC2012/browser.vcxproj	2019-01-03 14:03:53.920843100 -0600
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
@@ -22,31 +22,32 @@
     <ProjectGuid>{239DB654-39CC-46B4-85EC-894F6592BF17}</ProjectGuid>
     <Keyword>Win32Proj</Keyword>
     <RootNamespace>browser</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
     <CharacterSet>Unicode</CharacterSet>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
     <CharacterSet>Unicode</CharacterSet>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CharacterSet>Unicode</CharacterSet>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CharacterSet>Unicode</CharacterSet>
   </PropertyGroup>
diff a/SiloWindows/MSVC2012/pdb_detect/pdb_detect.vcxproj b/SiloWindows/MSVC2012/pdb_detect/pdb_detect.vcxproj
--- a/SiloWindows/MSVC2012/pdb_detect/pdb_detect.vcxproj	2014-05-07 21:55:42.000000000 -0500
+++ b/SiloWindows/MSVC2012/pdb_detect/pdb_detect.vcxproj	2019-01-03 14:03:53.920843100 -0600
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Release|Win32">
       <Configuration>Release</Configuration>
@@ -14,19 +14,20 @@
     <ProjectGuid>{17857422-AD82-4D37-A5AF-94C4556935D0}</ProjectGuid>
     <RootNamespace>pdb_detect</RootNamespace>
     <Keyword>Win32Proj</Keyword>
+    <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
diff a/SiloWindows/MSVC2012/silex.vcxproj b/SiloWindows/MSVC2012/silex.vcxproj
--- a/SiloWindows/MSVC2012/silex.vcxproj	2014-10-06 17:31:52.000000000 -0500
+++ b/SiloWindows/MSVC2012/silex.vcxproj	2019-01-03 14:03:53.287917100 -0600
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
@@ -22,33 +22,34 @@
     <ProjectGuid>{5B19C3D2-D3F9-4A39-A1CD-5A557D83E990}</ProjectGuid>
     <Keyword>Win32Proj</Keyword>
     <RootNamespace>silex</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
     <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
     <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
diff a/SiloWindows/MSVC2012/Silo.vcxproj b/SiloWindows/MSVC2012/Silo.vcxproj
--- a/SiloWindows/MSVC2012/Silo.vcxproj	2014-10-06 17:31:52.000000000 -0500
+++ b/SiloWindows/MSVC2012/Silo.vcxproj	2019-01-03 14:03:57.958127500 -0600
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
@@ -21,27 +21,28 @@
   <PropertyGroup Label="Globals">
     <Keyword>Win32Proj</Keyword>
     <ProjectGuid>{3A796AF3-3578-B923-4A26-3E27F5305DC9}</ProjectGuid>
+    <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
  1. Change the solution configuration from "Win32" to "x64"

  2. Disable the following warnings for Silo.vcxproj(Project Properties->C/C++->Advanced->Disable Specific Warnings): 4018;4047;4090;4113;4146;4244;4267;4311;4477

  • warning C4018: '>': signed/unsigned mismatch
  • warning C4047: 'initializing': 'XXXX' differs in levels of indirection from 'XXXX'
  • warning C4090: 'function': different 'const' qualifiers
  • warning C4113: 'XXXX' differs in parameter lists from 'XXXX'
  • warning C4146: unary minus operator applied to unsigned type, result still unsigned
  • warning C4244: '=': conversion from 'double' to 'float', possible loss of data
  • warning C4267: 'function': conversion from 'size_t' to 'unsigned int', possible loss of data
  • warning C4311: 'type cast': pointer truncation from 'DBfile *' to 'unsigned long'
  • warning C4477: 'sprintf' : format string '%d' requires an argument of type 'int', but variadic argument 2 has type 'hid_t'
    • note: consider using '%lld' in the format string
    • note: consider using '%Id' in the format string
    • note: consider using '%I64d' in the format string
diff a/SiloWindows/MSVC2012/Silo.vcxproj b/SiloWindows/MSVC2012/Silo.vcxproj
--- a/SiloWindows/MSVC2012/Silo.vcxproj	2019-01-09 14:09:53.124340800 -0600
+++ b/SiloWindows/MSVC2012/Silo.vcxproj	2019-01-09 14:18:41.329373500 -0600
@@ -165,6 +165,7 @@
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <AdditionalIncludeDirectories>..\..\src\fpzip;..\..\src\hzip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <DisableSpecificWarnings>4018;4047;4090;4113;4146;4244;4267;4311;4477</DisableSpecificWarnings>
     </ClCompile>
     <Link>
       <GenerateDebugInformation>false</GenerateDebugInformation>
  1. Add the following macro to Silo.vcxproj (Project Properties->C/C++->Preprocessor->Preprocessor Definitions): H5_BUILT_AS_DYNAMIC_LIB
diff a/SiloWindows/MSVC2012/Silo.vcxproj b/SiloWindows/MSVC2012/Silo.vcxproj
--- a/SiloWindows/MSVC2012/Silo.vcxproj	2019-01-09 14:18:41.329373500 -0600
+++ b/SiloWindows/MSVC2012/Silo.vcxproj	2019-01-09 14:21:25.615740300 -0600
@@ -160,7 +160,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;SILO_EXPORTS;LITE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;SILO_EXPORTS;LITE_EXPORTS;H5_BUILT_AS_DYNAMIC_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
  1. Comment line 15 in a\src\silo\silo_win32_compatibility.h
diff a/src/silo/silo_win32_compatibility.h b/src/silo/silo_win32_compatibility.h
--- a/src/silo/silo_win32_compatibility.h	2013-12-18 12:22:37.000000000 -0600
+++ b/src/silo/silo_win32_compatibility.h	2019-01-04 10:27:52.570443900 -0600
@@ -12,7 +12,7 @@
 #define pclose    _pclose
 #define popen     _popen
 #define read      _read
-#define snprintf  _snprintf
+//#define snprintf  _snprintf
 #define stat      _stat
 #define write     _write
  1. In a\src\hdf5_drv\H5FDsilo.c Add a line after line 502
    H5F_CLOSE_WEAK,				/* fc_degree		*/ <- line 502
	NULL,						/* terminate */
diff a/src/hdf5_drv/H5FDsilo.c b/src/hdf5_drv/H5FDsilo.c
--- a/src/hdf5_drv/H5FDsilo.c	2014-05-07 21:55:44.000000000 -0500
+++ b/src/hdf5_drv/H5FDsilo.c	2019-01-03 14:36:30.981495500 -0600
@@ -499,6 +499,7 @@
 static const H5FD_class_t H5FD_silo_g = {
     "silo",				        /*name			*/
     MAXADDR,				        /*maxaddr		*/
     H5F_CLOSE_WEAK,				/* fc_degree		*/
+    NULL,				            /*terminate		*/
     H5FD_silo_sb_size,                          /*sb_size               */
     H5FD_silo_sb_encode,                        /*sb_encode             */
  1. Undefine the macro DOMAIN in src/fpzip/pcmap.h:
diff a/src/fpzip/pcmap.h b/src/fpzip/pcmap.h
--- a/src/fpzip/pcmap.h	2013-12-18 12:22:35.000000000 -0600
+++ b/src/fpzip/pcmap.h	2019-01-03 14:41:45.215218200 -0600
@@ -1,6 +1,8 @@
 #ifndef PC_MAP_H
 #define PC_MAP_H
 
+#undef DOMAIN
+
 #include <climits>
 #if !defined WITH_REINTERPRET_CAST && !defined WITH_UNION
 #include <cstring>
  1. Build Silo.vcxproj

Patch files:

Patch files can be applied using patch or any other tool of choice

patch.exe --directory=silo-4.10.2 --strip=1 --batch -i <file>