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>