From 8cc672e4b7b83404e80c379bb632c5fe655c22fa Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Sun, 19 Apr 2015 17:39:38 -0500 Subject: [PATCH] quazip qt5 support (#1197484) --- quazip-0.7.1-qt5.patch | 94 ++++++++++++++++++++++++++++++++++++++++++ quazip.spec | 78 +++++++++++++++++++++++++++++------ 2 files changed, 159 insertions(+), 13 deletions(-) create mode 100644 quazip-0.7.1-qt5.patch diff --git a/quazip-0.7.1-qt5.patch b/quazip-0.7.1-qt5.patch new file mode 100644 index 0000000..098f878 --- /dev/null +++ b/quazip-0.7.1-qt5.patch @@ -0,0 +1,94 @@ +diff -up quazip-0.7.1/CMakeLists.txt.qt5 quazip-0.7.1/CMakeLists.txt +--- quazip-0.7.1/CMakeLists.txt.qt5 2013-11-18 11:37:54.000000000 -0600 ++++ quazip-0.7.1/CMakeLists.txt 2015-04-19 17:25:59.638703934 -0500 +@@ -10,10 +10,11 @@ endif() + + if (Qt5Core_FOUND) + set(QTCORE_LIBRARIES ${Qt5Core_LIBRARIES}) ++ set(QUAZIP_LIB_VERSION_SUFFIX 5) + # if there is no QT_ROOT, try to deduce it from Qt QtCore include + if ("${QT_ROOT}" STREQUAL "") + set(QT_ROOT ${QT_QTCORE_INCLUDE_DIR}/../..) +- endif() ++ endif() + include_directories(${Qt5Core_INCLUDE_DIRS}) + + macro(qt_wrap_cpp) +@@ -33,7 +34,7 @@ else() + endif() + + # Use system zlib on unix and Qt ZLIB on Windows +-IF(UNIX) ++IF(UNIX OR MINGW) + find_package(ZLIB REQUIRED) + ELSE(UNIX) + SET(ZLIB_INCLUDE_DIRS "${QT_ROOT}/src/3rdparty/zlib" CACHE STRING "Path to ZLIB headers of Qt") +@@ -48,7 +49,9 @@ SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_D + + set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)") + set(LIB_DESTINATION "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE STRING "Library directory name" FORCE) ++set(QUAZIP_LIB_TARGET_NAME quazip${QUAZIP_LIB_VERSION_SUFFIX} CACHE ++ INTERNAL "Target name of libquazip" FORCE) + + add_subdirectory(quazip) + +-install(FILES FindQuaZip.cmake DESTINATION ${CMAKE_ROOT}/Modules) ++install(FILES FindQuaZip.cmake RENAME FindQuaZip${QUAZIP_LIB_VERSION_SUFFIX}.cmake DESTINATION ${CMAKE_ROOT}/Modules) +diff -up quazip-0.7.1/FindQuaZip.cmake.qt5 quazip-0.7.1/FindQuaZip.cmake +--- quazip-0.7.1/FindQuaZip.cmake.qt5 2012-02-26 00:46:10.000000000 -0600 ++++ quazip-0.7.1/FindQuaZip.cmake 2015-04-19 17:25:59.638703934 -0500 +@@ -9,14 +9,17 @@ IF (QUAZIP_INCLUDE_DIRS AND QUAZIP_LIBRA + # in cache already + SET(QUAZIP_FOUND TRUE) + ELSE (QUAZIP_INCLUDE_DIRS AND QUAZIP_LIBRARIES) ++ IF (Qt5Core_FOUND) ++ set(QUAZIP_LIB_VERSION_SUFFIX 5) ++ ENDIF() + IF (WIN32) + FIND_PATH(QUAZIP_LIBRARY_DIR + WIN32_DEBUG_POSTFIX d +- NAMES libquazip.dll ++ NAMES libquazip${QUAZIP_LIB_VERSION_SUFFIX}.dll + HINTS "C:/Programme/" "C:/Program Files" + PATH_SUFFIXES QuaZip/lib + ) +- FIND_LIBRARY(QUAZIP_LIBRARIES NAMES libquazip.dll HINTS ${QUAZIP_LIBRARY_DIR}) ++ FIND_LIBRARY(QUAZIP_LIBRARIES NAMES libquazip${QUAZIP_LIB_VERSION_SUFFIX}.dll HINTS ${QUAZIP_LIBRARY_DIR}) + FIND_PATH(QUAZIP_INCLUDE_DIR NAMES quazip.h HINTS ${QUAZIP_LIBRARY_DIR}/../ PATH_SUFFIXES include/quazip) + FIND_PATH(QUAZIP_ZLIB_INCLUDE_DIR NAMES zlib.h) + ELSE(WIN32) +@@ -25,12 +28,12 @@ ELSE (QUAZIP_INCLUDE_DIRS AND QUAZIP_LIB + pkg_check_modules(PC_QUAZIP quazip) + FIND_LIBRARY(QUAZIP_LIBRARIES + WIN32_DEBUG_POSTFIX d +- NAMES quazip ++ NAMES quazip${QUAZIP_LIB_VERSION_SUFFIX} + HINTS /usr/lib /usr/lib64 + ) + FIND_PATH(QUAZIP_INCLUDE_DIR quazip.h + HINTS /usr/include /usr/local/include +- PATH_SUFFIXES quazip ++ PATH_SUFFIXES quazip${QUAZIP_LIB_VERSION_SUFFIX} + ) + FIND_PATH(QUAZIP_ZLIB_INCLUDE_DIR zlib.h HINTS /usr/include /usr/local/include) + ENDIF (WIN32) +diff -up quazip-0.7.1/quazip/CMakeLists.txt.qt5 quazip-0.7.1/quazip/CMakeLists.txt +--- quazip-0.7.1/quazip/CMakeLists.txt.qt5 2013-08-10 11:00:00.000000000 -0500 ++++ quazip-0.7.1/quazip/CMakeLists.txt 2015-04-19 17:29:26.600686574 -0500 +@@ -14,10 +14,11 @@ ADD_DEFINITIONS(-DQUAZIP_BUILD) + qt_wrap_cpp(MOC_SRCS ${PUBLIC_HEADERS}) + set(SRCS ${SRCS} ${MOC_SRCS}) + +-add_library(quazip SHARED ${SRCS}) +-set_target_properties(quazip PROPERTIES VERSION 1.0.0 SOVERSION 1) ++add_library(${QUAZIP_LIB_TARGET_NAME} SHARED ${SRCS}) ++ ++set_target_properties(${QUAZIP_LIB_TARGET_NAME} PROPERTIES VERSION 1.0.0 SOVERSION 1 DEBUG_POSTFIX d) + # Link against ZLIB_LIBRARIES if needed (on Windows this variable is empty) +-target_link_libraries(quazip ${QT_QTMAIN_LIBRARY} ${QT_QTCORE_LIBRARY} ${ZLIB_LIBRARIES}) ++target_link_libraries(${QUAZIP_LIB_TARGET_NAME} ${QT_QTMAIN_LIBRARY} ${QTCORE_LIBRARIES} ${ZLIB_LIBRARIES}) + +-install(FILES ${PUBLIC_HEADERS} DESTINATION include/quazip) +-install(TARGETS quazip LIBRARY DESTINATION ${LIB_DESTINATION} ARCHIVE DESTINATION ${LIB_DESTINATION} RUNTIME DESTINATION ${LIB_DESTINATION}) ++install(FILES ${PUBLIC_HEADERS} DESTINATION include/quazip${QUAZIP_LIB_VERSION_SUFFIX}) ++install(TARGETS ${QUAZIP_LIB_TARGET_NAME} LIBRARY DESTINATION ${LIB_DESTINATION} ARCHIVE DESTINATION ${LIB_DESTINATION} RUNTIME DESTINATION ${LIB_DESTINATION}) diff --git a/quazip.spec b/quazip.spec index 43eb7b1..d034f69 100644 --- a/quazip.spec +++ b/quazip.spec @@ -1,13 +1,21 @@ Name: quazip Version: 0.7.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Qt/C++ wrapper for the minizip library License: GPLv2+ or LGPLv2+ URL: http://quazip.sourceforge.net/ Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz +BuildRequires: cmake BuildRequires: qt4-devel +BuildRequires: qt5-qtbase-devel BuildRequires: doxygen graphviz +# Combine upstream qt5 parallel-installable commits and some other fixes +# and omit support for quazip_static (it's broken) +#http://sourceforge.net/p/quazip/code/254/ +#http://sourceforge.net/p/quazip/code/257/ +Patch1: quazip-0.7.1-qt5.patch + %description QuaZIP is a simple C++ wrapper over Gilles Vollant's ZIP/UNZIP package that can be used to access ZIP archives. It uses Trolltech's Qt toolkit. @@ -29,19 +37,47 @@ Requires: qt4-devel%{?_isa} The %{name}-devel package contains libraries, header files and documentation for developing applications that use %{name}. +%package qt5 +Summary: Qt5 wrapper for the minizip library +%description qt5 +QuaZIP is a simple C++ wrapper over Gilles Vollant's ZIP/UNZIP package that +can be used to access ZIP archives. It uses Trolltech's Qt toolkit. + +QuaZIP allows you to access files inside ZIP archives using QIODevice API, +and - yes! - that means that you can also use QTextStream, QDataStream or +whatever you would like to use on your zipped files. + +QuaZIP provides complete abstraction of the ZIP/UNZIP API, for both reading +from and writing to ZIP archives. + +%package qt5-devel +Summary: Development files for %{name} +Requires: %{name}-qt5%{?_isa} = %{version}-%{release} +Requires: qt5-qtbase-devel%{?_isa} + +%description qt5-devel +The %{name}-devel package contains libraries, header files and documentation +for developing applications that use %{name}. + + %prep %setup -q +%patch1 -p1 -b .qt5 -# Fixes build and install -sed -i 's\PREFIX/lib\PREFIX/%{_lib}\' %{name}/%{name}.pro +%build +mkdir build-qt4 +pushd build-qt4 +%cmake .. -DBUILD_WITH_QT4:BOOL=ON +make %{?_smp_mflags} +popd -%build -export PATH=%{_qt4_bindir}:$PATH -%{_qt4_qmake} PREFIX=%{_prefix} -#do not build in parallel - there are race conditions in -#qmake-generated makefiles -make +mkdir build-qt5 +pushd build-qt5 +%cmake .. -DBUILD_WITH_QT4:BOOL=OFF + +make %{?_smp_mflags} +popd doxygen Doxyfile for file in doc/html/*; do @@ -49,7 +85,8 @@ for file in doc/html/*; do done %install -make INSTALL="install -p" INSTALL_ROOT=%{buildroot} install +make install/fast DESTDIR=%{buildroot} -C build-qt5 +make install/fast DESTDIR=%{buildroot} -C build-qt4 %post -p /sbin/ldconfig @@ -57,14 +94,29 @@ make INSTALL="install -p" INSTALL_ROOT=%{buildroot} install %files %doc COPYING NEWS.txt README.txt -%{_libdir}/*.so.* +%{_libdir}/libquazip.so.1* %files devel %doc doc/html -%{_includedir}/%{name} -%{_libdir}/*.so +%{_includedir}/quazip/ +%{_libdir}/libquazip.so +%{_datadir}/cmake/Modules/FindQuaZip.cmake + +%files qt5 +%doc COPYING NEWS.txt README.txt +%{_libdir}/libquazip5.so.1* + +%files qt5-devel +%doc doc/html +%{_includedir}/quazip5/ +%{_libdir}/libquazip5.so +%{_datadir}/cmake/Modules/FindQuaZip5.cmake + %changelog +* Sun Apr 19 2015 Rex Dieter 0.7.1-2 +- quazip qt5 support (#1197484) + * Thu Jan 08 2015 Nicolas Chauvet - 0.7.1-1 - Update to 0.7.1