dev-qt/qtopengl: stable 5.14.2 for ppc, bug #719732
[gentoo.git] / media-gfx / gmic / gmic-2.8.3.ebuild
1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=7
5
6 CMAKE_BUILD_TYPE=Release
7 inherit cmake bash-completion-r1 toolchain-funcs
8
9 if [[ ${PV} == "9999" ]]; then
10         EGIT_REPO_URI="https://github.com/dtschump/gmic.git"
11         inherit git-r3
12 else
13         SRC_URI="https://gmic.eu/files/source/${PN}_${PV}.tar.gz"
14         KEYWORDS="~amd64 ~x86"
15 fi
16
17 DESCRIPTION="GREYC's Magic Image Converter"
18 HOMEPAGE="https://gmic.eu/ https://github.com/dtschump/gmic"
19
20 LICENSE="CeCILL-2 GPL-3"
21 SLOT="0"
22 IUSE="+cli curl ffmpeg fftw gimp graphicsmagick jpeg krita opencv openexr openmp png qt5 static-libs tiff X zlib"
23 REQUIRED_USE="
24         || ( cli gimp krita qt5 )
25         gimp? ( png zlib fftw X )
26         krita? ( png zlib fftw X )
27         qt5? ( png zlib fftw X )
28 "
29
30 MIN_QT_VER="5.2.0"
31 QT_DEPEND="
32         >=dev-qt/qtcore-${MIN_QT_VER}:5=
33         >=dev-qt/qtgui-${MIN_QT_VER}:5=
34         >=dev-qt/qtnetwork-${MIN_QT_VER}:5=
35         >=dev-qt/qtwidgets-${MIN_QT_VER}:5=
36 "
37 COMMON_DEPEND="
38         curl? ( net-misc/curl )
39         fftw? ( sci-libs/fftw:3.0=[threads] )
40         gimp? (
41                 >=media-gfx/gimp-2.8.0
42                 ${QT_DEPEND}
43         )
44         graphicsmagick? ( media-gfx/graphicsmagick:0= )
45         jpeg? ( virtual/jpeg:0 )
46         krita? ( ${QT_DEPEND} )
47         opencv? ( >=media-libs/opencv-2.3.1a-r1:0= )
48         openexr? (
49                 media-libs/ilmbase:0=
50                 media-libs/openexr:0=
51         )
52         png? ( media-libs/libpng:0= )
53         qt5? ( ${QT_DEPEND} )
54         tiff? ( media-libs/tiff:0 )
55         X? (
56                 x11-libs/libX11
57                 x11-libs/libXext
58         )
59         zlib? ( sys-libs/zlib:0= )"
60 RDEPEND="${COMMON_DEPEND}
61         ffmpeg? ( media-video/ffmpeg:0= )
62 "
63 DEPEND="${COMMON_DEPEND}
64         gimp? ( dev-qt/linguist-tools )
65         krita? ( dev-qt/linguist-tools )
66         qt5? ( dev-qt/linguist-tools )
67 "
68 BDEPEND="virtual/pkgconfig"
69
70 pkg_pretend() {
71         if use openmp ; then
72                 tc-has-openmp || die "Please switch to an openmp compatible compiler"
73         fi
74
75         if ! test-flag-CXX -std=c++11 ; then
76                 die "You need at least GCC 4.7.x or Clang >= 3.3 for C++11-specific compiler flags"
77         fi
78 }
79
80 src_prepare() {
81         cmake_src_prepare
82         sed -i '/CMAKE_CXX_FLAGS/s/-g //' CMakeLists.txt || die
83
84         if use gimp || use krita || use qt5; then
85                 # respect user flags
86                 sed -e '/CMAKE_CXX_FLAGS_RELEASE/d' \
87                         -e '/${CMAKE_EXE_LINKER_FLAGS} -s/d' \
88                         -i gmic-qt/CMakeLists.txt || die
89                 local S="${S}/gmic-qt"
90                 cmake_src_prepare
91         fi
92 }
93
94 src_configure() {
95         local mycmakeargs=(
96                 -DBUILD_LIB=ON
97                 -DBUILD_LIB_STATIC=$(usex static-libs)
98                 -DBUILD_CLI=$(usex cli)
99                 -DBUILD_MAN=$(usex cli)
100                 -DBUILD_BASH_COMPLETION=$(usex cli)
101                 -DCUSTOM_CFLAGS=ON
102                 -DENABLE_CURL=$(usex curl)
103                 -DENABLE_X=$(usex X)
104                 -DENABLE_FFMPEG=$(usex ffmpeg)
105                 -DENABLE_FFTW=$(usex fftw)
106                 -DENABLE_GRAPHICSMAGICK=$(usex graphicsmagick)
107                 -DENABLE_JPEG=$(usex jpeg)
108                 -DENABLE_OPENCV=$(usex opencv)
109                 -DENABLE_OPENEXR=$(usex openexr)
110                 -DENABLE_OPENMP=$(usex openmp)
111                 -DENABLE_PNG=$(usex png)
112                 -DENABLE_TIFF=$(usex tiff)
113                 -DENABLE_ZLIB=$(usex zlib)
114                 -DENABLE_DYNAMIC_LINKING=ON
115         )
116
117         cmake_src_configure
118
119         # configure gmic-qt frontends
120         local CMAKE_USE_DIR="${S}/gmic-qt"
121         mycmakeargs=(
122                 -DENABLE_DYNAMIC_LINKING=ON
123                 -DENABLE_CURL=$(usex curl)
124                 -DGMIC_LIB_PATH="${BUILD_DIR}"
125                 -DGMIC_PATH="${S}/src"
126         )
127
128         if use gimp; then
129                 mycmakeargs+=( -DGMIC_QT_HOST=gimp )
130                 BUILD_DIR="${BUILD_DIR}"/gimp cmake_src_configure
131         fi
132
133         if use krita; then
134                 mycmakeargs+=( -DGMIC_QT_HOST=krita )
135                 BUILD_DIR="${BUILD_DIR}"/krita cmake_src_configure
136         fi
137
138         if use qt5; then
139                 mycmakeargs+=( -DGMIC_QT_HOST=none )
140                 BUILD_DIR="${BUILD_DIR}"/qt5 cmake_src_configure
141         fi
142 }
143
144 src_compile() {
145         cmake_src_compile
146
147         # build gmic-qt frontends
148         local S="${S}/gmic-qt"
149         use gimp && { BUILD_DIR="${BUILD_DIR}"/gimp cmake_src_compile || die "failed building gimp plugin" ; }
150         use krita && { BUILD_DIR="${BUILD_DIR}"/krita cmake_src_compile || die "failed building krita plugin" ; }
151         use qt5 && { BUILD_DIR="${BUILD_DIR}"/qt5 cmake_src_compile || die "failed building qt5 GUI" ; }
152 }
153
154 src_install() {
155         cmake_src_install
156         dodoc README
157         use cli && newbashcomp "${BUILD_DIR}"/resources/gmic_bashcompletion.sh ${PN}
158
159         local PLUGINDIR="/usr/$(get_libdir)/gimp/2.0/plug-ins"
160         insinto "${PLUGINDIR}"
161         doins resources/gmic_cluts.gmz
162
163         # install gmic-qt frontends
164         if use gimp; then
165                 exeinto "${PLUGINDIR}"
166                 doexe "${BUILD_DIR}"/gimp/gmic_gimp_qt
167         fi
168         use krita && dobin "${BUILD_DIR}"/krita/gmic_krita_qt
169         use qt5 && dobin "${BUILD_DIR}"/qt5/gmic_qt
170 }