media-gfx/gmic: version bump to 2.6.7
authorTim Harder <radhermit@gentoo.org>
Tue, 2 Jul 2019 21:03:44 +0000 (15:03 -0600)
committerTim Harder <radhermit@gentoo.org>
Tue, 2 Jul 2019 21:05:06 +0000 (15:05 -0600)
Closes: https://bugs.gentoo.org/687662

Signed-off-by: Tim Harder <radhermit@gentoo.org>
media-gfx/gmic/Manifest
media-gfx/gmic/files/gmic-2.6.7-qt-cmake.patch [new file with mode: 0644]
media-gfx/gmic/gmic-2.6.7.ebuild [new file with mode: 0644]

index 7504d64e6e412de83db49aabe2cbe3782825f23b..fc20d5e7d3c05b2e5917c067aca8a97799d7189a 100644 (file)
@@ -1,3 +1,4 @@
 DIST gmic_2.4.3.tar.gz 3816129 BLAKE2B 1c9dd6c7e45809d0cf8b8a45476a4b20ad321b5f34fbc5214cb149777c6e9a6aba845cd816cc1503010e281bda0b32e1059dd34d052afe2ebc086469163967be SHA512 482e70b0c82992799c5769ded1547904d16dbc9206d67279b6f524c1214258b97fa539678844a450d6f64144dc7a2715c754d6a1d85398e648bc34086fc3218f
 DIST gmic_2.4.5.tar.gz 3819428 BLAKE2B 71d19bf6d79ca00bf95006bd96595b83ee28caadf46a9c899176dcd96c5da1b3b9fa7b2150ea2383262c1db2357838c4c716c8ab09060c6c06faa5f7c52975c8 SHA512 39f7c35303704c579d62377f491830f6d310be672f3015aafbd6715c5fa1185d64671f841fd5e0cb818dfc96851afc6dbdbbb99f9b5156ccaeab91e7e1b08033
 DIST gmic_2.5.3.tar.gz 5278154 BLAKE2B 9549798eac0cf0cd869dcaeb14fca184bee3587ec8ac03f80e7f48002dfcd0afe4ad61f2c6a6f1929fb91c010aee3960d6301a0c6c6b6a2f32a7b62db9ddecb0 SHA512 fede101892d6867b83a8995dbc2b7f9e502401bf1ea952fbf95c459c932bb447693d6434e9562b00c9d96f109cbbb35d9ee876fa1f6ec9dfc52186276033e5a5
+DIST gmic_2.6.7.tar.gz 5810623 BLAKE2B 407349683a7871937a37735aef81665ef5b06e5a88d5135e0d4264ce231ddba7ab088645049b1378dd73a7e6b45ada58958986b3282916aba19f7d7735c8bdaa SHA512 18088e33c133ddfa9642295af331d1808e0a618df8a7d3bb7f93d9933d4b6ec2f53a96e5a0f2bca5f1a53b4c7c0628ac7906503be007860fc37907db47029567
diff --git a/media-gfx/gmic/files/gmic-2.6.7-qt-cmake.patch b/media-gfx/gmic/files/gmic-2.6.7-qt-cmake.patch
new file mode 100644 (file)
index 0000000..e268558
--- /dev/null
@@ -0,0 +1,54 @@
+Fix linking with fftw when thread support is enabled and fix source code file
+name typo.
+
+--- gmic-qt/CMakeLists.txt
++++ gmic-qt/CMakeLists.txt
+@@ -13,6 +13,7 @@
+ set(CMAKE_AUTOUIC OFF)
+ set(CMAKE_AUTORCC ON)
+ set(CMAKE_INCLUDE_CURRENT_DIR ON)
++set(EXTRA_LIBRARIES)
+ set (GMIC_QT_HOST "gimp" CACHE STRING "Define for which host qmic-qt will be built: gimp, krita or none.")
+ if (${GMIC_QT_HOST} STREQUAL "none")
+@@ -143,8 +144,13 @@
+ #
+ find_package(FFTW3 REQUIRED)
+ add_definitions(-Dcimg_use_fftw3 )
+-add_definitions(-Dcimg_use_fftw3_singlethread )
+ include_directories(${FFTW3_INCLUDE_DIR})
++find_library(FFTW3_THREADS_LIB fftw3_threads PATHS ${FFTW3_LIBRARY_DIRS})
++if(FFTW3_THREADS_LIB STREQUAL "FFTW3_THREADS_LIB-NOTFOUND")
++    add_definitions(-Dcimg_use_fftw3_singlethread)
++else()
++    list(APPEND EXTRA_LIBRARIES "-lfftw3_threads")
++endif()
+ #
+ # CURL
+@@ -185,6 +191,7 @@
+         ${PNG_LIBRARIES}
+         ${FFTW3_LIBRARIES}
+         ${ZLIB_LIBRARIES}
++        ${EXTRA_LIBRARIES}
+ )
+ if (CURL_FOUND)
+@@ -278,7 +285,7 @@
+   src/FilterParameters/ChoiceParameter.h
+   src/FilterParameters/ColorParameter.h
+   src/FilterParameters/ConstParameter.h
+-  src/FilterParameters/CustomDoubleSpinbox.h
++  src/FilterParameters/CustomDoubleSpinBox.h
+   src/FilterParameters/FileParameter.h
+   src/FilterParameters/FilterParametersWidget.h
+   src/FilterParameters/FloatParameter.h
+@@ -350,7 +357,7 @@
+   src/FilterParameters/ChoiceParameter.cpp
+   src/FilterParameters/ColorParameter.cpp
+   src/FilterParameters/ConstParameter.cpp
+-  src/FilterParameters/CustomDoubleSpinbox.cpp
++  src/FilterParameters/CustomDoubleSpinBox.cpp
+   src/FilterParameters/FileParameter.cpp
+   src/FilterParameters/FilterParametersWidget.cpp
+   src/FilterParameters/FloatParameter.cpp
diff --git a/media-gfx/gmic/gmic-2.6.7.ebuild b/media-gfx/gmic/gmic-2.6.7.ebuild
new file mode 100644 (file)
index 0000000..2a1fe82
--- /dev/null
@@ -0,0 +1,171 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_BUILD_TYPE=Release
+CMAKE_MIN_VERSION=3.9
+
+inherit cmake-utils bash-completion-r1
+
+if [[ ${PV} == "9999" ]]; then
+       EGIT_REPO_URI="https://github.com/dtschump/gmic.git"
+       inherit git-r3
+else
+       SRC_URI="https://gmic.eu/files/source/${PN}_${PV}.tar.gz"
+       KEYWORDS="~amd64 ~x86"
+fi
+
+DESCRIPTION="GREYC's Magic Image Converter"
+HOMEPAGE="https://gmic.eu/ https://github.com/dtschump/gmic"
+
+LICENSE="CeCILL-2 GPL-3"
+SLOT="0"
+IUSE="+cli curl ffmpeg fftw gimp graphicsmagick jpeg krita opencv openexr openmp png qt5 static-libs tiff X zlib"
+REQUIRED_USE="
+       || ( cli gimp krita qt5 )
+       gimp? ( png zlib fftw X )
+       krita? ( png zlib fftw X )
+       qt5? ( png zlib fftw X )
+"
+
+MIN_QT_VER="5.2.0"
+QT_DEPEND="
+       >=dev-qt/qtcore-${MIN_QT_VER}:5=
+       >=dev-qt/qtgui-${MIN_QT_VER}:5=
+       >=dev-qt/qtnetwork-${MIN_QT_VER}:5=
+       >=dev-qt/qtwidgets-${MIN_QT_VER}:5=
+"
+COMMON_DEPEND="
+       curl? ( net-misc/curl )
+       fftw? ( sci-libs/fftw:3.0=[threads] )
+       gimp? (
+               >=media-gfx/gimp-2.8.0
+               ${QT_DEPEND}
+       )
+       graphicsmagick? ( media-gfx/graphicsmagick:0= )
+       jpeg? ( virtual/jpeg:0 )
+       krita? ( ${QT_DEPEND} )
+       opencv? ( >=media-libs/opencv-2.3.1a-r1:0= )
+       openexr? (
+               media-libs/ilmbase:0=
+               media-libs/openexr:0=
+       )
+       png? ( media-libs/libpng:0= )
+       qt5? ( ${QT_DEPEND} )
+       tiff? ( media-libs/tiff:0 )
+       X? (
+               x11-libs/libX11
+               x11-libs/libXext
+       )
+       zlib? ( sys-libs/zlib:0= )"
+RDEPEND="${COMMON_DEPEND}
+       ffmpeg? ( media-video/ffmpeg:0= )
+"
+DEPEND="${COMMON_DEPEND}
+       virtual/pkgconfig
+       gimp? ( dev-qt/linguist-tools )
+       krita? ( dev-qt/linguist-tools )
+       qt5? ( dev-qt/linguist-tools )
+"
+
+pkg_pretend() {
+       if use openmp ; then
+               tc-has-openmp || die "Please switch to an openmp compatible compiler"
+       fi
+
+       if ! test-flag-CXX -std=c++11 ; then
+               die "You need at least GCC 4.7.x or Clang >= 3.3 for C++11-specific compiler flags"
+       fi
+}
+
+src_prepare() {
+       local PATCHES=( "${FILESDIR}"/${PN}-2.4.3-curl.patch )
+       cmake-utils_src_prepare
+       sed -i '/CMAKE_CXX_FLAGS/s/-g //' CMakeLists.txt || die
+
+       if use gimp || use krita || use qt5; then
+               sed -i '/CMAKE_CXX_FLAGS_RELEASE/d' gmic-qt/CMakeLists.txt || die
+               local S="${S}/gmic-qt"
+               PATCHES=( "${FILESDIR}"/${P}-qt-cmake.patch )
+               cmake-utils_src_prepare
+       fi
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DBUILD_LIB=ON
+               -DBUILD_LIB_STATIC=$(usex static-libs)
+               -DBUILD_CLI=$(usex cli)
+               -DBUILD_MAN=$(usex cli)
+               -DBUILD_BASH_COMPLETION=$(usex cli)
+               -DCUSTOM_CFLAGS=ON
+               -DENABLE_CURL=$(usex curl)
+               -DENABLE_X=$(usex X)
+               -DENABLE_FFMPEG=$(usex ffmpeg)
+               -DENABLE_FFTW=$(usex fftw)
+               -DENABLE_GRAPHICSMAGICK=$(usex graphicsmagick)
+               -DENABLE_JPEG=$(usex jpeg)
+               -DENABLE_OPENCV=$(usex opencv)
+               -DENABLE_OPENEXR=$(usex openexr)
+               -DENABLE_OPENMP=$(usex openmp)
+               -DENABLE_PNG=$(usex png)
+               -DENABLE_TIFF=$(usex tiff)
+               -DENABLE_ZLIB=$(usex zlib)
+               -DENABLE_DYNAMIC_LINKING=ON
+       )
+
+       cmake-utils_src_configure
+
+       # configure gmic-qt frontends
+       local CMAKE_USE_DIR="${S}/gmic-qt"
+       mycmakeargs=(
+               -DENABLE_DYNAMIC_LINKING=ON
+               -DENABLE_CURL=$(usex curl)
+               -DGMIC_LIB_PATH="${BUILD_DIR}"
+               -DGMIC_PATH="${S}/src"
+       )
+
+       if use gimp; then
+               mycmakeargs+=( -DGMIC_QT_HOST=gimp )
+               BUILD_DIR="${BUILD_DIR}"/gimp cmake-utils_src_configure
+       fi
+
+       if use krita; then
+               mycmakeargs+=( -DGMIC_QT_HOST=krita )
+               BUILD_DIR="${BUILD_DIR}"/krita cmake-utils_src_configure
+       fi
+
+       if use qt5; then
+               mycmakeargs+=( -DGMIC_QT_HOST=none )
+               BUILD_DIR="${BUILD_DIR}"/qt5 cmake-utils_src_configure
+       fi
+}
+
+src_compile() {
+       cmake-utils_src_compile
+
+       # build gmic-qt frontends
+       local S="${S}/gmic-qt"
+       use gimp && { BUILD_DIR="${BUILD_DIR}"/gimp cmake-utils_src_compile || die "failed building gimp plugin" ; }
+       use krita && { BUILD_DIR="${BUILD_DIR}"/krita cmake-utils_src_compile || die "failed building krita plugin" ; }
+       use qt5 && { BUILD_DIR="${BUILD_DIR}"/qt5 cmake-utils_src_compile || die "failed building qt5 GUI" ; }
+}
+
+src_install() {
+       cmake-utils_src_install
+       dodoc README
+       use cli && newbashcomp "${BUILD_DIR}"/resources/gmic_bashcompletion.sh ${PN}
+
+       local PLUGINDIR="/usr/$(get_libdir)/gimp/2.0/plug-ins"
+       insinto "${PLUGINDIR}"
+       doins resources/gmic_cluts.gmz
+
+       # install gmic-qt frontends
+       if use gimp; then
+               exeinto "${PLUGINDIR}"
+               doexe "${BUILD_DIR}"/gimp/gmic_gimp_qt
+       fi
+       use krita && dobin "${BUILD_DIR}"/krita/gmic_krita_qt
+       use qt5 && dobin "${BUILD_DIR}"/qt5/gmic_qt
+}