diff --git a/Externals/Bochs_disasm/Bochs_disasm.vcxproj b/Externals/Bochs_disasm/Bochs_disasm.vcxproj index 95b05e09b2..3b93cf68c4 100644 --- a/Externals/Bochs_disasm/Bochs_disasm.vcxproj +++ b/Externals/Bochs_disasm/Bochs_disasm.vcxproj @@ -12,6 +12,7 @@ {8ADA04D7-6DB1-4DA4-AB55-64FB12A0997B} + 10.0.15063.0 diff --git a/Externals/LZO/LZO.vcxproj b/Externals/LZO/LZO.vcxproj index 249f745ff1..7bbd4b69c5 100644 --- a/Externals/LZO/LZO.vcxproj +++ b/Externals/LZO/LZO.vcxproj @@ -12,6 +12,7 @@ {AB993F38-C31D-4897-B139-A620C42BC565} + 10.0.15063.0 diff --git a/Externals/SFML/build/vc2010/SFML_Network.vcxproj b/Externals/SFML/build/vc2010/SFML_Network.vcxproj index f4ea0ecd30..1a7fb04d36 100644 --- a/Externals/SFML/build/vc2010/SFML_Network.vcxproj +++ b/Externals/SFML/build/vc2010/SFML_Network.vcxproj @@ -12,6 +12,7 @@ {93D73454-2512-424E-9CDA-4BB357FE13DD} + 10.0.15063.0 diff --git a/Externals/SOIL/SOIL.vcxproj b/Externals/SOIL/SOIL.vcxproj index 7f3de40f4d..148802e519 100644 --- a/Externals/SOIL/SOIL.vcxproj +++ b/Externals/SOIL/SOIL.vcxproj @@ -12,6 +12,7 @@ {B441CC62-877E-4B3F-93E0-0DE80544F705} + 10.0.15063.0 diff --git a/Externals/cpp-optparse/cpp-optparse.vcxproj b/Externals/cpp-optparse/cpp-optparse.vcxproj index aa59b90632..2ab8b046c8 100644 --- a/Externals/cpp-optparse/cpp-optparse.vcxproj +++ b/Externals/cpp-optparse/cpp-optparse.vcxproj @@ -12,6 +12,7 @@ {C636D9D1-82FE-42B5-9987-63B7D4836341} + 10.0.15063.0 diff --git a/Externals/cubeb/msvc/cubeb.vcxproj b/Externals/cubeb/msvc/cubeb.vcxproj index 587b12e2c6..0e3cd94134 100644 --- a/Externals/cubeb/msvc/cubeb.vcxproj +++ b/Externals/cubeb/msvc/cubeb.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -12,11 +12,12 @@ {8EA11166-6512-44FC-B7A5-A4D1ECC81170} + 10.0.15063.0 StaticLibrary - v140 + v141 Unicode diff --git a/Externals/curl/curl.vcxproj b/Externals/curl/curl.vcxproj index cfb7d2e200..b62b65494f 100644 --- a/Externals/curl/curl.vcxproj +++ b/Externals/curl/curl.vcxproj @@ -286,6 +286,7 @@ {BB00605C-125F-4A21-B33B-7BF418322DCB} + 10.0.15063.0 diff --git a/Externals/enet/enet.vcxproj b/Externals/enet/enet.vcxproj index 23db3250be..71e0086faf 100644 --- a/Externals/enet/enet.vcxproj +++ b/Externals/enet/enet.vcxproj @@ -41,6 +41,7 @@ {CBC76802-C128-4B17-BF6C-23B08C313E5E} + 10.0.15063.0 diff --git a/Externals/glslang/glslang.vcxproj b/Externals/glslang/glslang.vcxproj index fd817aa760..da2f4b4eb8 100644 --- a/Externals/glslang/glslang.vcxproj +++ b/Externals/glslang/glslang.vcxproj @@ -12,6 +12,7 @@ {D178061B-84D3-44F9-BEED-EFD18D9033F0} + 10.0.15063.0 diff --git a/Externals/gtest/cmake/internal_utils.cmake b/Externals/gtest/cmake/internal_utils.cmake index 8878dc1a95..6184bb26b6 100644 --- a/Externals/gtest/cmake/internal_utils.cmake +++ b/Externals/gtest/cmake/internal_utils.cmake @@ -81,8 +81,6 @@ macro(config_compiler_and_linker) # Suppress "unreachable code" warning on VS 2012 and later. # http://stackoverflow.com/questions/3232669 explains the issue. set(cxx_base_flags "${cxx_base_flags} -wd4702") - endif() - if (NOT (MSVC_VERSION GREATER 1900)) # 1900 is Visual Studio 2015 # BigObj required for tests. set(cxx_base_flags "${cxx_base_flags} -bigobj") endif() diff --git a/Externals/gtest/include/gtest/internal/gtest-port.h b/Externals/gtest/include/gtest/internal/gtest-port.h index 0d53ad27a7..fc7989053d 100644 --- a/Externals/gtest/include/gtest/internal/gtest-port.h +++ b/Externals/gtest/include/gtest/internal/gtest-port.h @@ -323,7 +323,7 @@ // -std={c,gnu}++{0x,11} is passed. The C++11 standard specifies a // value for __cplusplus, and recent versions of clang, gcc, and // probably other compilers set that too in C++11 mode. -# if __GXX_EXPERIMENTAL_CXX0X__ || __cplusplus >= 201103L +# if __GXX_EXPERIMENTAL_CXX0X__ || __cplusplus >= 201103L || _MSC_VER >= 1900 // Compiling in at least C++11 mode. # define GTEST_LANG_CXX11 1 # else @@ -355,12 +355,16 @@ #if GTEST_STDLIB_CXX11 # define GTEST_HAS_STD_BEGIN_AND_END_ 1 # define GTEST_HAS_STD_FORWARD_LIST_ 1 -# define GTEST_HAS_STD_FUNCTION_ 1 +# if !defined(_MSC_VER) || (_MSC_FULL_VER >= 190023824) // works only with VS2015U2 and better +# define GTEST_HAS_STD_FUNCTION_ 1 +# endif # define GTEST_HAS_STD_INITIALIZER_LIST_ 1 # define GTEST_HAS_STD_MOVE_ 1 # define GTEST_HAS_STD_SHARED_PTR_ 1 # define GTEST_HAS_STD_TYPE_TRAITS_ 1 # define GTEST_HAS_STD_UNIQUE_PTR_ 1 +# define GTEST_HAS_UNORDERED_MAP_ 1 +# define GTEST_HAS_UNORDERED_SET_ 1 #endif // C++11 specifies that provides std::tuple. diff --git a/Externals/libpng/png/png.vcxproj b/Externals/libpng/png/png.vcxproj index 030c688872..8c4df78d4e 100644 --- a/Externals/libpng/png/png.vcxproj +++ b/Externals/libpng/png/png.vcxproj @@ -12,6 +12,7 @@ {4C9F135B-A85E-430C-BAD4-4C67EF5FC12C} + 10.0.15063.0 diff --git a/Externals/libusb/libusb_static_2013.vcxproj b/Externals/libusb/libusb_static_2013.vcxproj index 32885a3b18..050d459552 100644 --- a/Externals/libusb/libusb_static_2013.vcxproj +++ b/Externals/libusb/libusb_static_2013.vcxproj @@ -13,6 +13,7 @@ libusb-1.0 {349EE8F9-7D25-4909-AAF5-FF3FADE72187} + 10.0.15063.0 diff --git a/Externals/mbedtls/mbedTLS.vcxproj b/Externals/mbedtls/mbedTLS.vcxproj index 97bcd85cf3..e677bf329b 100644 --- a/Externals/mbedtls/mbedTLS.vcxproj +++ b/Externals/mbedtls/mbedTLS.vcxproj @@ -12,6 +12,7 @@ {BDB6578B-0691-4E80-A46C-DF21639FD3B8} + 10.0.15063.0 diff --git a/Externals/miniupnpc/miniupnpc.vcxproj b/Externals/miniupnpc/miniupnpc.vcxproj index bfe7048051..a5e2eebe9d 100644 --- a/Externals/miniupnpc/miniupnpc.vcxproj +++ b/Externals/miniupnpc/miniupnpc.vcxproj @@ -12,6 +12,7 @@ {31643FDB-1BB8-4965-9DE7-000FC88D35AE} + 10.0.15063.0 diff --git a/Externals/soundtouch/SoundTouch.vcxproj b/Externals/soundtouch/SoundTouch.vcxproj index 1c53b7f297..bc65b9fa54 100644 --- a/Externals/soundtouch/SoundTouch.vcxproj +++ b/Externals/soundtouch/SoundTouch.vcxproj @@ -12,6 +12,7 @@ {EC082900-B4D8-42E9-9663-77F02F6936AE} + 10.0.15063.0 diff --git a/Externals/wxWidgets3/build/msw/wx_base.vcxproj b/Externals/wxWidgets3/build/msw/wx_base.vcxproj index 4aed0301af..5f4f4a2c09 100644 --- a/Externals/wxWidgets3/build/msw/wx_base.vcxproj +++ b/Externals/wxWidgets3/build/msw/wx_base.vcxproj @@ -1343,6 +1343,7 @@ wxWidgets {1C8436C9-DBAF-42BE-83BC-CF3EC9175ABE} + 10.0.15063.0 diff --git a/Externals/xxhash/xxhash.vcxproj b/Externals/xxhash/xxhash.vcxproj index 65bcd18e59..a486ff3c5f 100644 --- a/Externals/xxhash/xxhash.vcxproj +++ b/Externals/xxhash/xxhash.vcxproj @@ -12,6 +12,7 @@ {677EA016-1182-440C-9345-DC88D1E98C0C} + 10.0.15063.0 diff --git a/Externals/zlib/zlib.vcxproj b/Externals/zlib/zlib.vcxproj index cc0d36c45f..9495274f8b 100644 --- a/Externals/zlib/zlib.vcxproj +++ b/Externals/zlib/zlib.vcxproj @@ -12,6 +12,7 @@ {FF213B23-2C26-4214-9F88-85271E557E87} + 10.0.15063.0 diff --git a/Languages/Languages.vcxproj b/Languages/Languages.vcxproj index d5995792c8..1bc6a6381a 100644 --- a/Languages/Languages.vcxproj +++ b/Languages/Languages.vcxproj @@ -42,6 +42,7 @@ {0E033BE3-2E08-428E-9AE9-BC673EFA12B5} + 10.0.15063.0 diff --git a/Readme.md b/Readme.md index 41dc9ef828..6f9a3ca303 100644 --- a/Readme.md +++ b/Readme.md @@ -41,7 +41,7 @@ Dolphin can only be installed on devices that satisfy the above requirements. At Use the solution file `Source/dolphin-emu.sln` to build Dolphin on Windows. Visual Studio 2017 is a hard requirement. Other compilers might be able to build Dolphin on Windows but have not been tested and are not -recommended to be used. Git must be installed when building. +recommended to be used. Git and Windows 10 SDK 10.0.15063.0 must be installed when building. An installer can be created by using the `Installer.nsi` script in the Installer directory. This will require the Nullsoft Scriptable Install System diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 823094bf48..50c04c0f18 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -13,6 +13,12 @@ if(CMAKE_SYSTEM_NAME MATCHES "Windows") add_definitions(-D_CRT_SECURE_NO_DEPRECATE) endif() +# enable the latest C++ standard feature set, +# and also disable MSVC specific extensions +# to be even more standards compliant. +check_and_add_flag(CPPLATEST /std:c++latest) +check_and_add_flag(STANDARD_COMPLIANCE /permissive-) + # These aren't actually needed for C11/C++11 # but some dependencies require them (LLVM, libav). add_definitions(-D__STDC_LIMIT_MACROS) diff --git a/Source/Core/AudioCommon/AudioCommon.vcxproj b/Source/Core/AudioCommon/AudioCommon.vcxproj index 2ccb711ee5..6ab07e55f4 100644 --- a/Source/Core/AudioCommon/AudioCommon.vcxproj +++ b/Source/Core/AudioCommon/AudioCommon.vcxproj @@ -12,6 +12,7 @@ {54AA7840-5BEB-4A0C-9452-74BA4CC7FD44} + 10.0.15063.0 diff --git a/Source/Core/Common/Common.vcxproj b/Source/Core/Common/Common.vcxproj index 6efbf8e215..d11eed1ec6 100644 --- a/Source/Core/Common/Common.vcxproj +++ b/Source/Core/Common/Common.vcxproj @@ -12,6 +12,7 @@ {2E6C348C-C75C-4D94-8D1E-9C1FCBF3EFE4} + 10.0.15063.0 diff --git a/Source/Core/Common/SCMRevGen.vcxproj b/Source/Core/Common/SCMRevGen.vcxproj index 75c8763000..aadc70941d 100644 --- a/Source/Core/Common/SCMRevGen.vcxproj +++ b/Source/Core/Common/SCMRevGen.vcxproj @@ -12,6 +12,7 @@ {41279555-F94F-4EBC-99DE-AF863C10C5C4} + 10.0.15063.0 diff --git a/Source/Core/Core/Core.vcxproj b/Source/Core/Core/Core.vcxproj index f47971e856..a13c4ea09c 100644 --- a/Source/Core/Core/Core.vcxproj +++ b/Source/Core/Core/Core.vcxproj @@ -12,6 +12,7 @@ {E54CF649-140E-4255-81A5-30A673C1FB36} + 10.0.15063.0 diff --git a/Source/Core/DiscIO/DiscIO.vcxproj b/Source/Core/DiscIO/DiscIO.vcxproj index 910943f559..cb31a72776 100644 --- a/Source/Core/DiscIO/DiscIO.vcxproj +++ b/Source/Core/DiscIO/DiscIO.vcxproj @@ -12,6 +12,7 @@ {160BDC25-5626-4B0D-BDD8-2953D9777FB5} + 10.0.15063.0 diff --git a/Source/Core/DolphinQt2/DolphinQt2.vcxproj b/Source/Core/DolphinQt2/DolphinQt2.vcxproj index 2c6d5e6a89..e0cd0e09b3 100644 --- a/Source/Core/DolphinQt2/DolphinQt2.vcxproj +++ b/Source/Core/DolphinQt2/DolphinQt2.vcxproj @@ -12,7 +12,7 @@ {FA3FA62B-6F58-4B86-9453-4D149940A066} - 8.1 + 10.0.15063.0 + stdcpplatest + + /permissive- %(AdditionalOptions) - /Zc:inline /Zc:rvalueCast /volatile:iso %(AdditionalOptions) + /Zc:inline /volatile:iso %(AdditionalOptions) /Zo /utf-8 %(AdditionalOptions) OldStyle @@ -111,8 +115,6 @@ false false _SECURE_SCL=0;%(PreprocessorDefinitions) - - /Zc:strictStrings %(AdditionalOptions)