| /* SPDX-License-Identifier: LZMA-SDK-9.22 */ |
| /* Precomp.h -- precompilation file |
| 2024-01-25 : Igor Pavlov : Public domain */ |
| |
| #ifndef ZIP7_INC_PRECOMP_H |
| #define ZIP7_INC_PRECOMP_H |
| |
| /* |
| this file must be included before another *.h files and before <windows.h>. |
| this file is included from the following files: |
| C\*.c |
| C\Util\*\Precomp.h <- C\Util\*\*.c |
| CPP\Common\Common.h <- *\StdAfx.h <- *\*.cpp |
| |
| this file can set the following macros: |
| Z7_LARGE_PAGES 1 |
| Z7_LONG_PATH 1 |
| Z7_WIN32_WINNT_MIN 0x0500 (or higher) : we require at least win2000+ for 7-Zip |
| _WIN32_WINNT 0x0500 (or higher) |
| WINVER _WIN32_WINNT |
| UNICODE 1 |
| _UNICODE 1 |
| */ |
| |
| #include "Compiler.h" |
| |
| #ifdef _MSC_VER |
| // #pragma warning(disable : 4206) // nonstandard extension used : translation unit is empty |
| #if _MSC_VER >= 1912 |
| // #pragma warning(disable : 5039) // pointer or reference to potentially throwing function passed to 'extern "C"' function under - EHc.Undefined behavior may occur if this function throws an exception. |
| #endif |
| #endif |
| |
| /* |
| // for debug: |
| #define UNICODE 1 |
| #define _UNICODE 1 |
| #define _WIN32_WINNT 0x0500 // win2000 |
| #ifndef WINVER |
| #define WINVER _WIN32_WINNT |
| #endif |
| */ |
| |
| #ifdef _WIN32 |
| /* |
| this "Precomp.h" file must be included before <windows.h>, |
| if we want to define _WIN32_WINNT before <windows.h>. |
| */ |
| |
| #ifndef Z7_LARGE_PAGES |
| #ifndef Z7_NO_LARGE_PAGES |
| #define Z7_LARGE_PAGES 1 |
| #endif |
| #endif |
| |
| #ifndef Z7_LONG_PATH |
| #ifndef Z7_NO_LONG_PATH |
| #define Z7_LONG_PATH 1 |
| #endif |
| #endif |
| |
| #ifndef Z7_DEVICE_FILE |
| #ifndef Z7_NO_DEVICE_FILE |
| // #define Z7_DEVICE_FILE 1 |
| #endif |
| #endif |
| |
| // we don't change macros if included after <windows.h> |
| #ifndef _WINDOWS_ |
| |
| #ifndef Z7_WIN32_WINNT_MIN |
| #if defined(_M_ARM64) || defined(__aarch64__) |
| // #define Z7_WIN32_WINNT_MIN 0x0a00 // win10 |
| #define Z7_WIN32_WINNT_MIN 0x0600 // vista |
| #elif defined(_M_ARM) && defined(_M_ARMT) && defined(_M_ARM_NT) |
| // #define Z7_WIN32_WINNT_MIN 0x0602 // win8 |
| #define Z7_WIN32_WINNT_MIN 0x0600 // vista |
| #elif defined(_M_X64) || defined(_M_AMD64) || defined(__x86_64__) || defined(_M_IA64) |
| #define Z7_WIN32_WINNT_MIN 0x0503 // win2003 |
| // #elif defined(_M_IX86) || defined(__i386__) |
| // #define Z7_WIN32_WINNT_MIN 0x0500 // win2000 |
| #else // x86 and another(old) systems |
| #define Z7_WIN32_WINNT_MIN 0x0500 // win2000 |
| // #define Z7_WIN32_WINNT_MIN 0x0502 // win2003 // for debug |
| #endif |
| #endif // Z7_WIN32_WINNT_MIN |
| |
| #ifndef Z7_DO_NOT_DEFINE_WIN32_WINNT |
| #ifdef _WIN32_WINNT |
| // #error Stop_Compiling_Bad_WIN32_WINNT |
| #else |
| #ifndef Z7_NO_DEFINE_WIN32_WINNT |
| Z7_DIAGNOSTIC_IGNORE_BEGIN_RESERVED_MACRO_IDENTIFIER |
| #define _WIN32_WINNT Z7_WIN32_WINNT_MIN |
| Z7_DIAGNOSTIC_IGNORE_END_RESERVED_MACRO_IDENTIFIER |
| #endif |
| #endif // _WIN32_WINNT |
| |
| #ifndef WINVER |
| #define WINVER _WIN32_WINNT |
| #endif |
| #endif // Z7_DO_NOT_DEFINE_WIN32_WINNT |
| |
| #ifndef _MBCS |
| #ifndef Z7_NO_UNICODE |
| // UNICODE and _UNICODE are used by <windows.h> and by 7-zip code. |
| |
| #ifndef UNICODE |
| #define UNICODE 1 |
| #endif |
| |
| #ifndef _UNICODE |
| Z7_DIAGNOSTIC_IGNORE_BEGIN_RESERVED_MACRO_IDENTIFIER |
| #define _UNICODE 1 |
| Z7_DIAGNOSTIC_IGNORE_END_RESERVED_MACRO_IDENTIFIER |
| #endif |
| |
| #endif // Z7_NO_UNICODE |
| #endif // _MBCS |
| #endif // _WINDOWS_ |
| |
| // #include "7zWindows.h" |
| |
| #endif // _WIN32 |
| |
| #endif |