- fixed Windows XP compatibility for MSVC 2017 targets

Workaround initially implemented for MSVC 2015 is enabled with all Windows XP compatible toolsets regardless of Visual Studio version

https://forum.zdoom.org/viewtopic.php?t=60675
This commit is contained in:
alexey.lysiuk 2018-05-31 10:24:16 +03:00
parent 4f5911da21
commit 0546c86716
2 changed files with 6 additions and 12 deletions

View file

@ -416,11 +416,6 @@ if( NOT MSVC )
add_definitions( -D__forceinline=inline ) add_definitions( -D__forceinline=inline )
endif() endif()
# Fix stat in v140_xp (broken in RTM and Update 1 so far)
if( MSVC AND MSVC_VERSION EQUAL 1900 AND CMAKE_GENERATOR_TOOLSET STREQUAL "v140_xp" )
add_definitions( -D_stat64i32=VS14Stat )
endif()
if( UNIX ) if( UNIX )
CHECK_LIBRARY_EXISTS( rt clock_gettime "" CLOCK_GETTIME_IN_RT ) CHECK_LIBRARY_EXISTS( rt clock_gettime "" CLOCK_GETTIME_IN_RT )
if( NOT CLOCK_GETTIME_IN_RT ) if( NOT CLOCK_GETTIME_IN_RT )

View file

@ -1440,19 +1440,18 @@ FString I_GetLongPathName(FString shortpath)
return longpath; return longpath;
} }
#if _MSC_VER == 1900 && defined(_USING_V110_SDK71_) #ifdef _USING_V110_SDK71_
//========================================================================== //==========================================================================
// //
// VS14Stat // _stat64i32
// //
// Work around an issue where stat doesn't work with v140_xp. This was // Work around an issue where stat() function doesn't work
// supposedly fixed, but as of Update 1 continues to not function on XP. // with Windows XP compatible toolset.
// It uses GetFileInformationByHandleEx() which requires Windows Vista.
// //
//========================================================================== //==========================================================================
#include <sys/stat.h> int _stat64i32(const char *path, struct _stat64i32 *buffer)
int VS14Stat(const char *path, struct _stat64i32 *buffer)
{ {
WIN32_FILE_ATTRIBUTE_DATA data; WIN32_FILE_ATTRIBUTE_DATA data;
if(!GetFileAttributesEx(path, GetFileExInfoStandard, &data)) if(!GetFileAttributesEx(path, GetFileExInfoStandard, &data))