commit:     ae4172895d1de98be7727abff3171cd7d226498f
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 22 13:58:41 2017 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Oct 22 13:58:41 2017 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=ae417289

kde-apps/gwenview: Add USE=fits, bug #632200

Package-Manager: Portage-2.3.12, Repoman-2.3.3

 .../gwenview/files/gwenview-17.11.80-cfitsio.patch | 172 +++++++++++++++++++++
 kde-apps/gwenview/gwenview-9999.ebuild             |   6 +-
 kde-apps/gwenview/metadata.xml                     |   1 +
 3 files changed, 178 insertions(+), 1 deletion(-)

diff --git a/kde-apps/gwenview/files/gwenview-17.11.80-cfitsio.patch 
b/kde-apps/gwenview/files/gwenview-17.11.80-cfitsio.patch
new file mode 100644
index 0000000000..aa56d94755
--- /dev/null
+++ b/kde-apps/gwenview/files/gwenview-17.11.80-cfitsio.patch
@@ -0,0 +1,172 @@
+From 48f0fa32a451bd25378a63d7caa39b7a13a78f49 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <andreas.sturmlech...@gmail.com>
+Date: Sun, 22 Oct 2017 14:23:41 +0200
+Subject: [PATCH] Make CFitsio optional
+
+---
+ CMakeLists.txt             |  5 ++++-
+ app/main.cpp               |  6 +++++-
+ config-gwenview.h.cmake    |  1 +
+ lib/CMakeLists.txt         | 29 ++++++++++++++++++++++-------
+ lib/imagemetainfomodel.cpp |  7 +++++--
+ 5 files changed, 37 insertions(+), 11 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8dd8d5e1..2ddb8c10 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -99,7 +99,10 @@ find_package(Exiv2)
+ set_package_properties(Exiv2 PROPERTIES URL "http://www.exiv2.org"; 
DESCRIPTION "image metadata support" TYPE REQUIRED)
+ 
+ find_package(CFitsio)
+-set_package_properties(CFitsio PROPERTIES URL 
"http://heasarc.gsfc.nasa.gov/fitsio/fitsio.html"; DESCRIPTION "FITS format 
support" TYPE REQUIRED)
++set_package_properties(CFitsio PROPERTIES URL 
"http://heasarc.gsfc.nasa.gov/fitsio/fitsio.html"; DESCRIPTION "FITS format 
support" TYPE OPTIONAL)
++if(CFITSIO_FOUND)
++    set(HAVE_FITS true)
++endif()
+ 
+ find_package(KF5Kipi)
+ if (KF5Kipi_FOUND)
+diff --git a/app/main.cpp b/app/main.cpp
+index 662dcd7b..e844668c 100644
+--- a/app/main.cpp
++++ b/app/main.cpp
+@@ -40,12 +40,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
MA  02110-1301, USA.
+ #include <lib/imageformats/imageformats.h>
+ #include "mainwindow.h"
+ 
++#ifdef HAVE_FITS
+ // This hack is needed to include the fitsplugin moc file in main.cpp
+ // Otherwise the linker complains about: undefined reference to 
`qt_static_plugin_FitsPlugin()'
+ // This symbol is defined in the moc file, but it is not a visible symbol 
after libgwenview is linked.
+ // If Q_IMPORT_PLUGIN(FitsPlugin) is moved to the library, gwenview crashes 
on the first call to FitsPlugin()
+ // when the vtable is looked up in the plugin registration.
+ #include <../lib/imageformats/moc_fitsplugin.cpp>
++#endif
+ 
+ class StartHelper
+ {
+@@ -165,4 +167,6 @@ int main(int argc, char *argv[])
+     return app.exec();
+ }
+ 
+-Q_IMPORT_PLUGIN(FitsPlugin)
++#ifdef HAVE_FITS
++    Q_IMPORT_PLUGIN(FitsPlugin)
++#endif
+diff --git a/config-gwenview.h.cmake b/config-gwenview.h.cmake
+index 21e7ca98..80dc9cac 100644
+--- a/config-gwenview.h.cmake
++++ b/config-gwenview.h.cmake
+@@ -4,3 +4,4 @@
+ #cmakedefine KIPI_FOUND 1
+ #define GV_TEST_DATA_DIR "@CMAKE_CURRENT_SOURCE_DIR@/tests/data"
+ #cmakedefine HAVE_X11 ${HAVE_X11}
++#cmakedefine HAVE_FITS ${HAVE_FITS}
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
+index e1893d71..2f5ce417 100644
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -56,9 +56,14 @@ include_directories(
+     ${EXIV2_INCLUDE_DIR}
+     ${JPEG_INCLUDE_DIR}
+     ${PNG_INCLUDE_DIRS}
+-    ${CFITSIO_INCLUDE_DIR}
+     )
+ 
++if(HAVE_FITS)
++    include_directories(
++        ${CFITSIO_INCLUDE_DIR}
++        )
++endif()
++
+ # For config-gwenview.h
+ include_directories(
+     ${CMAKE_CURRENT_BINARY_DIR}/..
+@@ -124,11 +129,6 @@ set(gwenviewlib_SRCS
+     imageformats/imageformats.cpp
+ #     imageformats/jpegplugin.cpp
+ #     imageformats/jpeghandler.cpp
+-    imageformats/fitsplugin.cpp
+-    imageformats/fitsplugin.h
+-    imageformats/fitshandler.cpp
+-    imageformats/fitsformat/bayer.c
+-    imageformats/fitsformat/fitsdata.cpp
+     imagemetainfomodel.cpp
+     imagescaler.cpp
+     imageutils.cpp
+@@ -175,6 +175,17 @@ set(gwenviewlib_SRCS
+     ${GV_JPEG_DIR}/transupp.c
+     )
+ 
++if(HAVE_FITS)
++    set(gwenviewlib_SRCS
++        ${gwenviewlib_SRCS}
++        imageformats/fitsplugin.cpp
++        imageformats/fitsplugin.h
++        imageformats/fitshandler.cpp
++        imageformats/fitsformat/bayer.c
++        imageformats/fitsformat/fitsdata.cpp
++        )
++endif()
++
+ if (NOT GWENVIEW_SEMANTICINFO_BACKEND_NONE)
+     set(gwenviewlib_SRCS
+         ${gwenviewlib_SRCS}
+@@ -241,8 +252,12 @@ target_link_libraries(gwenviewlib
+     ${PNG_LIBRARIES}
+     ${LCMS2_LIBRARIES}
+     ${PHONON_LIBRARY}
+-    ${CFITSIO_LIBRARIES}
+     )
++
++if(HAVE_FITS)
++    target_link_libraries(gwenviewlib ${CFITSIO_LIBRARIES})
++endif()
++
+ if (WIN32)
+     target_link_libraries(gwenviewlib ${EXPAT_LIBRARIES})
+ endif()
+diff --git a/lib/imagemetainfomodel.cpp b/lib/imagemetainfomodel.cpp
+index e92e584c..c8e36ced 100644
+--- a/lib/imagemetainfomodel.cpp
++++ b/lib/imagemetainfomodel.cpp
+@@ -21,8 +21,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
MA 02110-1301, USA.
+ // Self
+ #include "imagemetainfomodel.h"
+ 
+-#include "imageformats/fitsformat/fitsdata.h"
+-
+ // Qt
+ #include <QSize>
+ #include <QDebug>
+@@ -39,7 +37,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
MA 02110-1301, USA.
+ #include <exiv2/iptc.hpp>
+ 
+ // Local
++#ifdef HAVE_FITS
++#include "imageformats/fitsformat/fitsdata.h"
+ #include "urlutils.h"
++#endif
+ 
+ namespace Gwenview
+ {
+@@ -331,6 +332,7 @@ void ImageMetaInfoModel::setUrl(const QUrl &url)
+     d->setGroupEntryValue(GeneralGroup, "General.Size", sizeString);
+     d->setGroupEntryValue(GeneralGroup, "General.Time", timeString);
+ 
++#ifdef HAVE_FITS
+     if (UrlUtils::urlIsFastLocalFile(url) && (url.fileName().endsWith(".fit", 
Qt::CaseInsensitive) ||
+         url.fileName().endsWith(".fits", Qt::CaseInsensitive))) {
+         FITSData fitsLoader;
+@@ -385,6 +387,7 @@ void ImageMetaInfoModel::setUrl(const QUrl &url)
+             }
+         }
+     }
++#endif
+ }
+ 
+ void ImageMetaInfoModel::setImageSize(const QSize& size)
+-- 
+2.14.2
+

diff --git a/kde-apps/gwenview/gwenview-9999.ebuild 
b/kde-apps/gwenview/gwenview-9999.ebuild
index ee69757158..50ae7beaa9 100644
--- a/kde-apps/gwenview/gwenview-9999.ebuild
+++ b/kde-apps/gwenview/gwenview-9999.ebuild
@@ -15,7 +15,7 @@ HOMEPAGE="
 
 LICENSE="GPL-2+ handbook? ( FDL-1.2 )"
 KEYWORDS=""
-IUSE="kipi raw semantic-desktop X"
+IUSE="fits kipi raw semantic-desktop X"
 
 # requires running environment
 RESTRICT+=" test"
@@ -48,6 +48,7 @@ COMMON_DEPEND="
        media-libs/libpng:0=
        media-libs/phonon[qt5(+)]
        virtual/jpeg:0
+       fits? ( sci-libs/cfitsio )
        kipi? ( $(add_kdeapps_dep libkipi '' '' '5=') )
        raw? ( $(add_kdeapps_dep libkdcraw) )
        semantic-desktop? (
@@ -68,8 +69,11 @@ RDEPEND="${COMMON_DEPEND}
        $(add_qt_dep qtimageformats)
 "
 
+PATCHES=( "${FILESDIR}/${PN}-17.11.80-cfitsio.patch" )
+
 src_configure() {
        local mycmakeargs=(
+               $(cmake-utils_use_find_package fits CFitsio)
                $(cmake-utils_use_find_package kipi KF5Kipi)
                $(cmake-utils_use_find_package raw KF5KDcraw)
                $(cmake-utils_use_find_package X X11)

diff --git a/kde-apps/gwenview/metadata.xml b/kde-apps/gwenview/metadata.xml
index 69546da44c..5ac564950d 100644
--- a/kde-apps/gwenview/metadata.xml
+++ b/kde-apps/gwenview/metadata.xml
@@ -6,6 +6,7 @@
                <name>Gentoo KDE Project</name>
        </maintainer>
        <use>
+               <flag name="fits">Enable support for NASA's 
<pkg>sci-libs/cfitsio</pkg> library</flag>
                <flag name="kipi">Support for the KDE Image Plugin 
Interface</flag>
        </use>
 </pkgmetadata>

Reply via email to