feat: add Linux MinGW build path and Windows build-script fixes (v2.2.0)
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
LIBRARY nsis7z
|
||||
EXPORTS
|
||||
Extract
|
||||
ExtractWithDetails
|
||||
ExtractWithCallback
|
||||
ExtractWithFileCallback
|
||||
@@ -0,0 +1,97 @@
|
||||
PROG = nsis7z
|
||||
DEF_FILE = Nsis7z.def
|
||||
|
||||
include ../Format7zF/Arc_gcc.mak
|
||||
|
||||
ifdef IS_MINGW
|
||||
LOCAL_FLAGS_SYS = -DZ7_DEVICE_FILE
|
||||
SYS_OBJS = \
|
||||
$O/DLL.o \
|
||||
$O/DllSecur.o \
|
||||
$O/resource.o \
|
||||
|
||||
else
|
||||
SYS_OBJS = \
|
||||
$O/MyWindows.o \
|
||||
|
||||
endif
|
||||
|
||||
LOCAL_FLAGS += \
|
||||
$(LOCAL_FLAGS_SYS) \
|
||||
$(LOCAL_FLAGS_EXTRA) \
|
||||
|
||||
NSIS_UI_OBJS = \
|
||||
$O/NsisMain.o \
|
||||
$O/NsisMainAr.o \
|
||||
$O/NsisBreak.o \
|
||||
$O/NsisExtractCallbackConsole.o \
|
||||
$O/NsisUserInputUtils2.o \
|
||||
$O/ConsoleOpenCallbackConsole.o \
|
||||
$O/ConsolePercentPrinter.o \
|
||||
$O/ConsoleClose.o \
|
||||
$O/ConsoleUserInputUtils.o \
|
||||
$O/Extract.o \
|
||||
$O/HashCalc.o \
|
||||
$O/OpenArchive.o \
|
||||
$O/ArchiveExtractCallback.o \
|
||||
$O/ArchiveOpenCallback.o \
|
||||
$O/DefaultName.o \
|
||||
$O/EnumDirItems.o \
|
||||
$O/ExtractingFilePath.o \
|
||||
$O/LoadCodecs.o \
|
||||
$O/SetProperties.o \
|
||||
$O/FileStreams.o \
|
||||
$O/FileSystem.o \
|
||||
$O/ErrorMsg.o \
|
||||
$O/FileLink.o \
|
||||
$O/FilePathAutoRename.o \
|
||||
$O/SortUtils.o \
|
||||
$O/PropIDUtils.o \
|
||||
|
||||
CURRENT_OBJS = \
|
||||
$O/StdInStream.o \
|
||||
$O/StdOutStream.o \
|
||||
$O/StdAfx2.o \
|
||||
$O/pluginapi.o \
|
||||
$O/nsis7z.o \
|
||||
|
||||
OBJS = \
|
||||
$(ARC_OBJS) \
|
||||
$(SYS_OBJS) \
|
||||
$(NSIS_UI_OBJS) \
|
||||
$(CURRENT_OBJS) \
|
||||
|
||||
include ../../7zip_gcc.mak
|
||||
|
||||
$O/NsisMain.o: ../../UI/NSIS/Main.cpp
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
|
||||
$O/NsisMainAr.o: ../../UI/NSIS/MainAr.cpp
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
|
||||
$O/NsisBreak.o: ../../UI/NSIS/NSISBreak.cpp
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
|
||||
$O/NsisExtractCallbackConsole.o: ../../UI/NSIS/ExtractCallbackConsole.cpp
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
|
||||
$O/NsisUserInputUtils2.o: ../../UI/NSIS/UserInputUtils2.cpp
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
|
||||
$O/ConsoleOpenCallbackConsole.o: ../../UI/Console/OpenCallbackConsole.cpp
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
|
||||
$O/ConsolePercentPrinter.o: ../../UI/Console/PercentPrinter.cpp
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
|
||||
$O/ConsoleUserInputUtils.o: ../../UI/Console/UserInputUtils.cpp
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
|
||||
$O/StdAfx2.o: StdAfx2.cpp
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
|
||||
$O/pluginapi.o: pluginapi.cpp
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
|
||||
$O/nsis7z.o: nsis7z.cpp
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
@@ -181,6 +181,7 @@ EXTRACTFUNCEND
|
||||
|
||||
extern "C" BOOL WINAPI DllMain(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)
|
||||
{
|
||||
(void)lpReserved;
|
||||
g_hInstance2=(HINSTANCE)hInst;
|
||||
if (ul_reason_for_call == DLL_PROCESS_ATTACH)
|
||||
{
|
||||
|
||||
@@ -27,12 +27,14 @@ using namespace NDir;
|
||||
|
||||
extern HWND g_hwndProgress;
|
||||
|
||||
static const UInt64 k_SizeUnknown = (UInt64)(Int64)-1;
|
||||
|
||||
void CExtractCallbackConsole::UpdateProgress()
|
||||
{
|
||||
// Prima controlla se c'è il callback con filename (nuova funzione)
|
||||
if (ProgressWithFileHandler != NULL)
|
||||
{
|
||||
if (completedSize != -1 || totalSize > 0)
|
||||
if (completedSize != k_SizeUnknown || totalSize > 0)
|
||||
ProgressWithFileHandler(completedSize, totalSize, CurrentFileName.Ptr());
|
||||
else
|
||||
ProgressWithFileHandler(0, 0, CurrentFileName.Ptr());
|
||||
@@ -40,14 +42,14 @@ void CExtractCallbackConsole::UpdateProgress()
|
||||
// Altrimenti usa il callback originale (per compatibilità)
|
||||
else if (ProgressHandler != NULL)
|
||||
{
|
||||
if (completedSize != -1 || totalSize > 0)
|
||||
if (completedSize != k_SizeUnknown || totalSize > 0)
|
||||
ProgressHandler(completedSize, totalSize);
|
||||
else
|
||||
ProgressHandler(0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
STDMETHODIMP CExtractCallbackConsole::SetTotal(UInt64 val)
|
||||
Z7_COM7F_IMF(CExtractCallbackConsole::SetTotal(UInt64 val))
|
||||
{
|
||||
totalSize = val;
|
||||
UpdateProgress();
|
||||
@@ -56,7 +58,7 @@ STDMETHODIMP CExtractCallbackConsole::SetTotal(UInt64 val)
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
STDMETHODIMP CExtractCallbackConsole::SetCompleted(const UInt64 *val)
|
||||
Z7_COM7F_IMF(CExtractCallbackConsole::SetCompleted(const UInt64 *val))
|
||||
{
|
||||
completedSize = *val;
|
||||
UpdateProgress();
|
||||
@@ -65,31 +67,35 @@ STDMETHODIMP CExtractCallbackConsole::SetCompleted(const UInt64 *val)
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
STDMETHODIMP CExtractCallbackConsole::AskOverwrite(
|
||||
Z7_COM7F_IMF(CExtractCallbackConsole::AskOverwrite(
|
||||
const wchar_t *existName, const FILETIME *, const UInt64 *,
|
||||
const wchar_t *newName, const FILETIME *, const UInt64 *,
|
||||
Int32 *answer)
|
||||
Int32 *answer))
|
||||
{
|
||||
*answer = NOverwriteAnswer::kYesToAll;
|
||||
(void)existName; (void)newName;
|
||||
*answer = NOverwriteAnswer::kYesToAll;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
STDMETHODIMP CExtractCallbackConsole::PrepareOperation(const wchar_t *name, Int32 isFolder, Int32 askExtractMode, const UInt64 *position)
|
||||
Z7_COM7F_IMF(CExtractCallbackConsole::PrepareOperation(const wchar_t *name, Int32 isFolder, Int32 askExtractMode, const UInt64 *position))
|
||||
{
|
||||
(void)isFolder; (void)askExtractMode; (void)position;
|
||||
// Memorizza il nome del file corrente per passarlo al callback
|
||||
CurrentFileName = name;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
STDMETHODIMP CExtractCallbackConsole::MessageError(const wchar_t *message)
|
||||
Z7_COM7F_IMF(CExtractCallbackConsole::MessageError(const wchar_t *message))
|
||||
{
|
||||
(void)message;
|
||||
NumFileErrorsInCurrentArchive++;
|
||||
NumFileErrors++;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
STDMETHODIMP CExtractCallbackConsole::SetOperationResult(Int32 opRes, Int32 encrypted)
|
||||
Z7_COM7F_IMF(CExtractCallbackConsole::SetOperationResult(Int32 opRes, Int32 encrypted))
|
||||
{
|
||||
(void)encrypted;
|
||||
switch(opRes)
|
||||
{
|
||||
case NArchive::NExtract::NOperationResult::kOK:
|
||||
@@ -113,7 +119,7 @@ HRESULT CExtractCallbackConsole::SetPassword(const UString &password)
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
STDMETHODIMP CExtractCallbackConsole::CryptoGetTextPassword(BSTR *password)
|
||||
Z7_COM7F_IMF(CExtractCallbackConsole::CryptoGetTextPassword(BSTR *password))
|
||||
{
|
||||
if (!PasswordIsDefined)
|
||||
{
|
||||
@@ -127,6 +133,7 @@ STDMETHODIMP CExtractCallbackConsole::CryptoGetTextPassword(BSTR *password)
|
||||
|
||||
HRESULT CExtractCallbackConsole::BeforeOpen(const wchar_t *name, bool testMode)
|
||||
{
|
||||
(void)name; (void)testMode;
|
||||
NumArchives++;
|
||||
NumFileErrorsInCurrentArchive = 0;
|
||||
return S_OK;
|
||||
@@ -134,6 +141,7 @@ HRESULT CExtractCallbackConsole::BeforeOpen(const wchar_t *name, bool testMode)
|
||||
|
||||
HRESULT CExtractCallbackConsole::OpenResult(const CCodecs *codecs, const CArchiveLink &arcLink, const wchar_t *name, HRESULT result)
|
||||
{
|
||||
(void)codecs; (void)arcLink; (void)name;
|
||||
if (result != S_OK)
|
||||
{
|
||||
NumArchiveErrors++;
|
||||
|
||||
@@ -3,7 +3,13 @@
|
||||
#ifndef __STDAFX_H
|
||||
#define __STDAFX_H
|
||||
|
||||
#include <Windows.h>
|
||||
#include "7zip/Bundles/Nsis7z/pluginapi.h"
|
||||
#ifdef _WIN32
|
||||
#if defined(__MINGW32__) || defined(__MINGW64__)
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <Windows.h>
|
||||
#endif
|
||||
#endif
|
||||
#include "../../Bundles/Nsis7z/pluginapi.h"
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user