From 260769c03b0f8a0905dae7deda3cd24ab6a2acd1 Mon Sep 17 00:00:00 2001 From: Ruevski Date: Thu, 23 May 2019 11:01:26 +0300 Subject: [PATCH] Win32: Restore Windows XP Compatibility By setting WINVER=0x0501 (Windows XP) in CMakeLists.txt and adding a few missing defines in guiwin.cpp and configuring OPENGL=1 in CMake Solvespace (3.0~25b6eba1) compiles and works perfectly on Windows XP. Tested with MinGW GCC-6.3.0-1 --- CMakeLists.txt | 6 +++--- src/platform/guiwin.cpp | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6367874..2f9f738 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -259,8 +259,8 @@ if(WIN32) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS - -DWINVER=0x0601 - -D_WIN32_WINNT=0x0601 + -DWINVER=0x0501 + -D_WIN32_WINNT=0x0501 -D_WIN32_IE=_WIN32_WINNT -DISOLATION_AWARE_ENABLED -DWIN32 @@ -285,7 +285,7 @@ if(MSVC) endif() if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") - set(WARNING_FLAGS "-Wall -Wextra -Wno-unused-parameter") + set(WARNING_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers") if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(WARNING_FLAGS "${WARNING_FLAGS} -Wfloat-conversion") endif() diff --git a/src/platform/guiwin.cpp b/src/platform/guiwin.cpp index 6914a8d..ab5fb4b 100644 --- a/src/platform/guiwin.cpp +++ b/src/platform/guiwin.cpp @@ -12,6 +12,24 @@ #include #include +// Macros to compile under XP +#if !defined(LSTATUS) +# define LSTATUS LONG +#endif + +#if !defined(MAPVK_VK_TO_CHAR) +# define MAPVK_VK_TO_CHAR 2 +#endif + +#if !defined(USER_DEFAULT_SCREEN_DPI) +# define USER_DEFAULT_SCREEN_DPI 96 +#endif + +#if !defined(TTM_POPUP) +# define TTM_POPUP (WM_USER + 34) +#endif +// End macros to compile under XP + #if !defined(WM_DPICHANGED) # define WM_DPICHANGED 0x02E0 #endif