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