Merge pull request #738 from ctrlaltca/zip_win32

Fix zip support in oracle under win32; fix #736
This commit is contained in:
ctrlaltca 2015-02-13 19:05:57 +01:00
commit e4147e6476
3 changed files with 17 additions and 6 deletions

View file

@ -11,8 +11,6 @@ SET(oracle_SOURCES
src/main.cpp
src/oraclewizard.cpp
src/oracleimporter.cpp
src/zip/unzip.cpp
src/zip/zipglobal.cpp
../cockatrice/src/carddatabase.cpp
../cockatrice/src/settingscache.cpp
../cockatrice/src/qt-json/json.cpp
@ -123,6 +121,12 @@ FIND_PACKAGE(ZLIB)
IF(ZLIB_FOUND)
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIRS})
ADD_DEFINITIONS("-DHAS_ZLIB")
set(oracle_SOURCES ${oracle_SOURCES}
src/zip/unzip.cpp
src/zip/zipglobal.cpp
)
ELSE()
MESSAGE(STATUS "Oracle: zlib not found; ZIP support disabled")
ENDIF()
@ -205,6 +209,12 @@ IF(WIN32)
# these needs to be relative to CMAKE_INSTALL_PREFIX
set(plugin_dest_dir Plugins)
set(qtconf_dest_dir .)
list(APPEND libSearchDirs ${QT_LIBRARY_DIR})
IF(ZLIB_FOUND)
get_filename_component(ZLIB_DLL_DIR "${ZLIB_INCLUDE_DIRS}/../bin/" REALPATH)
list(APPEND libSearchDirs ${ZLIB_DLL_DIR})
ENDIF()
MESSAGE(STATUS "Oracle: ZLIB dll found at ${ZLIB_DLL_DIR}")
# qt4: codecs, iconengines, imageformats
# qt5: iconengines, imageformats, platforms
@ -223,6 +233,6 @@ Translations = Resources/translations\")
\"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/*.dll\")
set(BU_CHMOD_BUNDLE_ITEMS ON)
include(BundleUtilities)
fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/oracle.exe\" \"\${QTPLUGINS}\" \"${QT_LIBRARY_DIR}\")
fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/oracle.exe\" \"\${QTPLUGINS}\" \"${libSearchDirs}\")
" COMPONENT Runtime)
endif()

View file

@ -29,11 +29,12 @@
#include "main.h"
#include "settingscache.h"
#define ZIP_SIGNATURE "PK"
#define ALLSETS_URL_FALLBACK "http://mtgjson.com/json/AllSets.json"
#ifdef HAS_ZLIB
#include "zip/unzip.h"
#define ZIP_SIGNATURE "PK"
#define ALLSETS_URL "http://mtgjson.com/json/AllSets.json.zip"
#define ALLSETS_URL_FALLBACK "http://mtgjson.com/json/AllSets.json"
#else
#define ALLSETS_URL "http://mtgjson.com/json/AllSets.json"
#endif

View file

@ -115,7 +115,7 @@ bool OSDAB_ZIP_MANGLE(setFileTimestamp)(const QString& fileName, const QDateTime
return true;
#ifdef Q_OS_WIN
HANDLE hFile = CreateFile(fileName.toStdWString().c_str(),
HANDLE hFile = CreateFileW(fileName.toStdWString().c_str(),
GENERIC_WRITE, FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0);
if (hFile == INVALID_HANDLE_VALUE) {
return false;