f535537f |
1 | /* Precomp.h -- precompilation file |
2 | 2024-01-25 : Igor Pavlov : Public domain */ |
3 | |
4 | #ifndef ZIP7_INC_PRECOMP_H |
5 | #define ZIP7_INC_PRECOMP_H |
6 | |
7 | /* |
8 | this file must be included before another *.h files and before <windows.h>. |
9 | this file is included from the following files: |
10 | C\*.c |
11 | C\Util\*\Precomp.h <- C\Util\*\*.c |
12 | CPP\Common\Common.h <- *\StdAfx.h <- *\*.cpp |
13 | |
14 | this file can set the following macros: |
15 | Z7_LARGE_PAGES 1 |
16 | Z7_LONG_PATH 1 |
17 | Z7_WIN32_WINNT_MIN 0x0500 (or higher) : we require at least win2000+ for 7-Zip |
18 | _WIN32_WINNT 0x0500 (or higher) |
19 | WINVER _WIN32_WINNT |
20 | UNICODE 1 |
21 | _UNICODE 1 |
22 | */ |
23 | |
24 | #include "Compiler.h" |
25 | |
26 | #ifdef _MSC_VER |
27 | // #pragma warning(disable : 4206) // nonstandard extension used : translation unit is empty |
28 | #if _MSC_VER >= 1912 |
29 | // #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. |
30 | #endif |
31 | #endif |
32 | |
33 | /* |
34 | // for debug: |
35 | #define UNICODE 1 |
36 | #define _UNICODE 1 |
37 | #define _WIN32_WINNT 0x0500 // win2000 |
38 | #ifndef WINVER |
39 | #define WINVER _WIN32_WINNT |
40 | #endif |
41 | */ |
42 | |
43 | #ifdef _WIN32 |
44 | /* |
45 | this "Precomp.h" file must be included before <windows.h>, |
46 | if we want to define _WIN32_WINNT before <windows.h>. |
47 | */ |
48 | |
49 | #ifndef Z7_LARGE_PAGES |
50 | #ifndef Z7_NO_LARGE_PAGES |
51 | #define Z7_LARGE_PAGES 1 |
52 | #endif |
53 | #endif |
54 | |
55 | #ifndef Z7_LONG_PATH |
56 | #ifndef Z7_NO_LONG_PATH |
57 | #define Z7_LONG_PATH 1 |
58 | #endif |
59 | #endif |
60 | |
61 | #ifndef Z7_DEVICE_FILE |
62 | #ifndef Z7_NO_DEVICE_FILE |
63 | // #define Z7_DEVICE_FILE 1 |
64 | #endif |
65 | #endif |
66 | |
67 | // we don't change macros if included after <windows.h> |
68 | #ifndef _WINDOWS_ |
69 | |
70 | #ifndef Z7_WIN32_WINNT_MIN |
71 | #if defined(_M_ARM64) || defined(__aarch64__) |
72 | // #define Z7_WIN32_WINNT_MIN 0x0a00 // win10 |
73 | #define Z7_WIN32_WINNT_MIN 0x0600 // vista |
74 | #elif defined(_M_ARM) && defined(_M_ARMT) && defined(_M_ARM_NT) |
75 | // #define Z7_WIN32_WINNT_MIN 0x0602 // win8 |
76 | #define Z7_WIN32_WINNT_MIN 0x0600 // vista |
77 | #elif defined(_M_X64) || defined(_M_AMD64) || defined(__x86_64__) || defined(_M_IA64) |
78 | #define Z7_WIN32_WINNT_MIN 0x0503 // win2003 |
79 | // #elif defined(_M_IX86) || defined(__i386__) |
80 | // #define Z7_WIN32_WINNT_MIN 0x0500 // win2000 |
81 | #else // x86 and another(old) systems |
82 | #define Z7_WIN32_WINNT_MIN 0x0500 // win2000 |
83 | // #define Z7_WIN32_WINNT_MIN 0x0502 // win2003 // for debug |
84 | #endif |
85 | #endif // Z7_WIN32_WINNT_MIN |
86 | |
87 | |
88 | #ifndef Z7_DO_NOT_DEFINE_WIN32_WINNT |
89 | #ifdef _WIN32_WINNT |
90 | // #error Stop_Compiling_Bad_WIN32_WINNT |
91 | #else |
92 | #ifndef Z7_NO_DEFINE_WIN32_WINNT |
93 | Z7_DIAGNOSTIC_IGNORE_BEGIN_RESERVED_MACRO_IDENTIFIER |
94 | #define _WIN32_WINNT Z7_WIN32_WINNT_MIN |
95 | Z7_DIAGNOSTIC_IGNORE_END_RESERVED_MACRO_IDENTIFIER |
96 | #endif |
97 | #endif // _WIN32_WINNT |
98 | |
99 | #ifndef WINVER |
100 | #define WINVER _WIN32_WINNT |
101 | #endif |
102 | #endif // Z7_DO_NOT_DEFINE_WIN32_WINNT |
103 | |
104 | |
105 | #ifndef _MBCS |
106 | #ifndef Z7_NO_UNICODE |
107 | // UNICODE and _UNICODE are used by <windows.h> and by 7-zip code. |
108 | |
109 | #ifndef UNICODE |
110 | #define UNICODE 1 |
111 | #endif |
112 | |
113 | #ifndef _UNICODE |
114 | Z7_DIAGNOSTIC_IGNORE_BEGIN_RESERVED_MACRO_IDENTIFIER |
115 | #define _UNICODE 1 |
116 | Z7_DIAGNOSTIC_IGNORE_END_RESERVED_MACRO_IDENTIFIER |
117 | #endif |
118 | |
119 | #endif // Z7_NO_UNICODE |
120 | #endif // _MBCS |
121 | #endif // _WINDOWS_ |
122 | |
123 | // #include "7zWindows.h" |
124 | |
125 | #endif // _WIN32 |
126 | |
127 | #endif |