From 517e633fb71ae38ce8206001a623aeffed9a11cf Mon Sep 17 00:00:00 2001 From: shunf4 Date: Sat, 20 Apr 2024 12:48:57 +0800 Subject: [PATCH] make it build after mod --- C/7zWindows.h | 103 +++++++++++++++++++++++++ C/Compiler.h | 103 +++++++++++++++++++++++++ CPP/7zip/UI/FileManager/CopyDialog.cpp | 3 +- CPP/7zip/UI/FileManager/CopyDialog.h | 2 +- CPP/7zip/UI/GUI/ExtractDialog.cpp | 6 +- CPP/7zip/UI/GUI/ExtractDialog.h | 2 +- build.cmd | 2 +- 7 files changed, 213 insertions(+), 8 deletions(-) create mode 100755 C/7zWindows.h diff --git a/C/7zWindows.h b/C/7zWindows.h new file mode 100755 index 00000000..f229cbb9 --- /dev/null +++ b/C/7zWindows.h @@ -0,0 +1,103 @@ +/* 7zWindows.h -- StdAfx +2023-04-02 : Igor Pavlov : Public domain */ + +#ifndef ZIP7_INC_7Z_WINDOWS_H +#define ZIP7_INC_7Z_WINDOWS_H + +#ifdef _WIN32 + +#if defined(__clang__) +# pragma clang diagnostic push +#endif + +#pragma warning(disable : 4255) + +#if defined(_MSC_VER) + +#pragma warning(push) +#pragma warning(disable : 4668) // '_WIN32_WINNT' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' + +#if _MSC_VER == 1900 +// for old kit10 versions +#pragma warning(disable : 4255) // winuser.h(13979): warning C4255: 'GetThreadDpiAwarenessContext': +#endif +// win10 Windows Kit: +#endif // _MSC_VER + +#if defined(_MSC_VER) && _MSC_VER <= 1200 && !defined(_WIN64) +// for msvc6 without sdk2003 +#define RPC_NO_WINDOWS_H +#endif + +#if defined(__MINGW32__) || defined(__MINGW64__) +// #if defined(__GNUC__) && !defined(__clang__) +#include +#else +#include +#endif +// #include +// #include + +// but if precompiled with clang-cl then we need +// #include +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + +#if defined(__clang__) +# pragma clang diagnostic pop +#endif + +#if defined(_MSC_VER) && _MSC_VER <= 1200 && !defined(_WIN64) +#ifndef _W64 + +typedef long LONG_PTR, *PLONG_PTR; +typedef unsigned long ULONG_PTR, *PULONG_PTR; +typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR; + +#define Z7_OLD_WIN_SDK +#endif // _W64 +#endif // _MSC_VER == 1200 + +#ifdef Z7_OLD_WIN_SDK + +#ifndef INVALID_FILE_ATTRIBUTES +#define INVALID_FILE_ATTRIBUTES ((DWORD)-1) +#endif +#ifndef INVALID_SET_FILE_POINTER +#define INVALID_SET_FILE_POINTER ((DWORD)-1) +#endif +#ifndef FILE_SPECIAL_ACCESS +#define FILE_SPECIAL_ACCESS (FILE_ANY_ACCESS) +#endif + +// ShlObj.h: +// #define BIF_NEWDIALOGSTYLE 0x0040 + +#pragma warning(disable : 4201) +// #pragma warning(disable : 4115) + +#undef VARIANT_TRUE +#define VARIANT_TRUE ((VARIANT_BOOL)-1) +#endif + +#endif // Z7_OLD_WIN_SDK + +#ifdef UNDER_CE +#undef VARIANT_TRUE +#define VARIANT_TRUE ((VARIANT_BOOL)-1) +#endif + + +#if defined(_MSC_VER) +#if _MSC_VER >= 1400 && _MSC_VER <= 1600 + // BaseTsd.h(148) : 'HandleToULong' : unreferenced inline function has been removed + // string.h + // #pragma warning(disable : 4514) +#endif +#endif + + +/* #include "7zTypes.h" */ + +#endif diff --git a/C/Compiler.h b/C/Compiler.h index a9816fa5..ff05bc6e 100644 --- a/C/Compiler.h +++ b/C/Compiler.h @@ -35,6 +35,109 @@ // #pragma clang diagnostic ignored "-Wreserved-id-macro" #endif +#if _MSC_VER < 1900 +// winnt.h: 'Int64ShllMod32' +#pragma warning(disable : 4514) // unreferenced inline function has been removed +#endif + +#if _MSC_VER < 1300 +// #pragma warning(disable : 4702) // unreachable code +// Bra.c : -O1: +#pragma warning(disable : 4714) // function marked as __forceinline not inlined +#endif + +/* +#if _MSC_VER > 1400 && _MSC_VER <= 1900 +// strcat: This function or variable may be unsafe +// sysinfoapi.h: kit10: GetVersion was declared deprecated +#pragma warning(disable : 4996) +#endif +*/ + +#pragma warning(disable : 4255) + +#if _MSC_VER > 1200 +// -Wall warnings + +#pragma warning(disable : 4711) // function selected for automatic inline expansion +#pragma warning(disable : 4820) // '2' bytes padding added after data member + +#if _MSC_VER >= 1400 && _MSC_VER < 1920 +// 1400: string.h: _DBG_MEMCPY_INLINE_ +// 1600 - 191x : smmintrin.h __cplusplus' +// is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' +#pragma warning(disable : 4668) + +// 1400 - 1600 : WinDef.h : 'FARPROC' : +// 1900 - 191x : immintrin.h: _readfsbase_u32 +// no function prototype given : converting '()' to '(void)' +#pragma warning(disable : 4255) +#endif + +#if _MSC_VER >= 1914 +// Compiler will insert Spectre mitigation for memory load if /Qspectre switch specified +#pragma warning(disable : 5045) +#endif + +#endif // _MSC_VER > 1200 +#endif // _MSC_VER + + +#if defined(__clang__) && (__clang_major__ >= 4) + #define Z7_PRAGMA_OPT_DISABLE_LOOP_UNROLL_VECTORIZE \ + _Pragma("clang loop unroll(disable)") \ + _Pragma("clang loop vectorize(disable)") + #define Z7_ATTRIB_NO_VECTORIZE +#elif defined(__GNUC__) && (__GNUC__ >= 5) + #define Z7_ATTRIB_NO_VECTORIZE __attribute__((optimize("no-tree-vectorize"))) + // __attribute__((optimize("no-unroll-loops"))); + #define Z7_PRAGMA_OPT_DISABLE_LOOP_UNROLL_VECTORIZE +#elif defined(_MSC_VER) && (_MSC_VER >= 1920) + #define Z7_PRAGMA_OPT_DISABLE_LOOP_UNROLL_VECTORIZE \ + _Pragma("loop( no_vector )") + #define Z7_ATTRIB_NO_VECTORIZE +#else + #define Z7_PRAGMA_OPT_DISABLE_LOOP_UNROLL_VECTORIZE + #define Z7_ATTRIB_NO_VECTORIZE +#endif + +#if defined(MY_CPU_X86_OR_AMD64) && ( \ + defined(__clang__) && (__clang_major__ >= 4) \ + || defined(__GNUC__) && (__GNUC__ >= 5)) + #define Z7_ATTRIB_NO_SSE __attribute__((__target__("no-sse"))) +#else + #define Z7_ATTRIB_NO_SSE +#endif + +#define Z7_ATTRIB_NO_VECTOR \ + Z7_ATTRIB_NO_VECTORIZE \ + Z7_ATTRIB_NO_SSE + + +#if defined(__clang__) && (__clang_major__ >= 8) \ + || defined(__GNUC__) && (__GNUC__ >= 1000) \ + /* || defined(_MSC_VER) && (_MSC_VER >= 1920) */ + // GCC is not good for __builtin_expect() + #define Z7_LIKELY(x) (__builtin_expect((x), 1)) + #define Z7_UNLIKELY(x) (__builtin_expect((x), 0)) + // #define Z7_unlikely [[unlikely]] + // #define Z7_likely [[likely]] +#else + #define Z7_LIKELY(x) (x) + #define Z7_UNLIKELY(x) (x) + // #define Z7_likely +#endif + + +#if (defined(Z7_CLANG_VERSION) && (Z7_CLANG_VERSION >= 36000)) +#define Z7_DIAGNOSCTIC_IGNORE_BEGIN_RESERVED_MACRO_IDENTIFIER \ + _Pragma("GCC diagnostic push") \ + _Pragma("GCC diagnostic ignored \"-Wreserved-macro-identifier\"") +#define Z7_DIAGNOSCTIC_IGNORE_END_RESERVED_MACRO_IDENTIFIER \ + _Pragma("GCC diagnostic pop") +#else +#define Z7_DIAGNOSCTIC_IGNORE_BEGIN_RESERVED_MACRO_IDENTIFIER +#define Z7_DIAGNOSCTIC_IGNORE_END_RESERVED_MACRO_IDENTIFIER #endif #define UNUSED_VAR(x) (void)x; diff --git a/CPP/7zip/UI/FileManager/CopyDialog.cpp b/CPP/7zip/UI/FileManager/CopyDialog.cpp index 1abbc352..527a3511 100644 --- a/CPP/7zip/UI/FileManager/CopyDialog.cpp +++ b/CPP/7zip/UI/FileManager/CopyDialog.cpp @@ -12,7 +12,6 @@ #include #include "Panel.h" #include "ViewSettings.h" -#ifdef LANG #include "LangUtils.h" #endif @@ -372,7 +371,7 @@ void CCopyDialog::ShowPathFreeSpace(UString & strPath) _freeSpace.SetText(strText); } -bool CCopyDialog::OnCommand(int code, int itemID, LPARAM lParam) +bool CCopyDialog::OnCommand(unsigned code, unsigned itemID, LPARAM lParam) { if (itemID == IDC_COPY) { diff --git a/CPP/7zip/UI/FileManager/CopyDialog.h b/CPP/7zip/UI/FileManager/CopyDialog.h index ca9e330c..054f5bc0 100644 --- a/CPP/7zip/UI/FileManager/CopyDialog.h +++ b/CPP/7zip/UI/FileManager/CopyDialog.h @@ -21,7 +21,7 @@ class CCopyDialog: public NWindows::NControl::CModalDialog bool OnButtonClicked(int buttonID, HWND buttonHWND); void OnButtonOpenPath(); void OnButtonAddFileName(); - bool OnCommand(int code, int itemID, LPARAM lParam); + bool OnCommand(unsigned code, unsigned itemID, LPARAM lParam) Z7_override; bool OnGetMinMaxInfo(PMINMAXINFO pMMI); void ShowPathFreeSpace(UString & strPath); diff --git a/CPP/7zip/UI/GUI/ExtractDialog.cpp b/CPP/7zip/UI/GUI/ExtractDialog.cpp index d2ff7b86..f314220c 100644 --- a/CPP/7zip/UI/GUI/ExtractDialog.cpp +++ b/CPP/7zip/UI/GUI/ExtractDialog.cpp @@ -574,11 +574,11 @@ void CExtractDialog::ShowPathFreeSpace(UString & strPath) } -bool CExtractDialog::OnCommand(int code, int itemID, LPARAM lParam) +bool CExtractDialog::OnCommand(unsigned code, unsigned itemID, LPARAM lParam) { if (itemID == IDC_EXTRACT_PATH) { -#ifdef NO_REGISTRY +#ifdef Z7_NO_REGISTRY if (code == EN_CHANGE) #else if (code == CBN_EDITCHANGE) @@ -590,7 +590,7 @@ bool CExtractDialog::OnCommand(int code, int itemID, LPARAM lParam) ShowPathFreeSpace(strPath); return true; } -#ifndef NO_REGISTRY +#ifndef Z7_NO_REGISTRY else if (code == CBN_SELCHANGE) { int nSel = _path.GetCurSel(); diff --git a/CPP/7zip/UI/GUI/ExtractDialog.h b/CPP/7zip/UI/GUI/ExtractDialog.h index b8ad5506..3bb56e6a 100644 --- a/CPP/7zip/UI/GUI/ExtractDialog.h +++ b/CPP/7zip/UI/GUI/ExtractDialog.h @@ -61,7 +61,7 @@ class CExtractDialog: public NWindows::NControl::CModalDialog virtual bool OnButtonClicked(int buttonID, HWND buttonHWND); virtual void OnOK(); void OnButtonOpenPath(); - virtual bool OnCommand(int code, int itemID, LPARAM lParam); + virtual bool OnCommand(unsigned code, unsigned itemID, LPARAM lParam) Z7_override; #ifndef NO_REGISTRY diff --git a/build.cmd b/build.cmd index a0255dd4..ecee05dc 100644 --- a/build.cmd +++ b/build.cmd @@ -1,5 +1,5 @@ @echo off -set OPTS=_SFX=1 PLATFORM=x64 +set OPTS=Z7_SFX=1 PLATFORM=x64 set LFLAGS=/DEBUG /SUBSYSTEM:WINDOWS,"5.02" @echo ^_^_^_^_^_ ^_ ^_ ^_^_ ^_^_