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