From 2bd36c91d03e03b31a4f12fd0afc100ae32d66e2 Mon Sep 17 00:00:00 2001 From: huangqinjin Date: Mon, 13 Dec 2021 20:49:21 +0800 Subject: [PATCH] CMake: Keep compatible with Windows 95 for 32-bit build. --- CMakeLists.txt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 88bec28..af175d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -164,7 +164,17 @@ endif() set(THREADS_PREFER_PTHREAD_FLAG TRUE) find_package(Threads REQUIRED) if(CMAKE_USE_WIN32_THREADS_INIT) - add_compile_definitions(MYTHREAD_VISTA) + if(CMAKE_SIZEOF_VOID_P EQUAL 4) + # Define to 1 when using Windows 95 (and thus XP) compatible threads. This + # avoids use of features that were added in Windows Vista. + # This is used for 32-bit x86 builds for compatibility reasons since it + # makes no measurable difference in performance compared to Vista threads. + add_compile_definitions(MYTHREAD_WIN95) + else() + # Define to 1 when using Windows Vista compatible threads. This uses features + # that are not available on Windows XP. + add_compile_definitions(MYTHREAD_VISTA) + endif() else() add_compile_definitions(MYTHREAD_POSIX)