summaryrefslogtreecommitdiff
blob: 2c4b842ada70e7a7567c45d3a7ab40f1b1eb7e4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit bash-completion-r1 toolchain-funcs

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 ~arm64 ~ppc64 ~riscv ~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 opencv openexr openmp png qt5 tiff X"
REQUIRED_USE="
	gimp? ( png fftw X )
	qt5? ( png fftw X )
"

# No test suite, hand-crafted Makefiles barf out on 'emake check'
RESTRICT="test"

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="
	sys-libs/zlib:0=
	curl? ( net-misc/curl )
	fftw? ( sci-libs/fftw:3.0=[threads] )
	gimp? (
		media-gfx/gimp:0/2
		${QT_DEPEND}
	)
	graphicsmagick? ( media-gfx/graphicsmagick:0= )
	jpeg? ( media-libs/libjpeg-turbo:= )
	opencv? ( >=media-libs/opencv-2.3.1a-r1:0= )
	openexr? (
		dev-libs/imath:=
		media-libs/openexr:=
	)
	png? ( media-libs/libpng:0= )
	qt5? ( ${QT_DEPEND} )
	tiff? ( media-libs/tiff:0 )
	X? (
		x11-libs/libX11
		x11-libs/libXext
	)"
RDEPEND="${COMMON_DEPEND}
	ffmpeg? ( media-video/ffmpeg:0= )
"
DEPEND="${COMMON_DEPEND}
	gimp? ( dev-qt/linguist-tools )
	qt5? ( dev-qt/linguist-tools )
"
BDEPEND="virtual/pkgconfig"

PATCHES=(
	"${FILESDIR}"/${PN}-3.1.5-makefile_automagic.patch
)

pkg_pretend() {
	[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}

pkg_setup() {
	[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}

gmic_emake() {
	emake -j1 -C src \
		GMIC_USE_CURL=$(usex curl) \
		GMIC_USE_EXR=$(usex openexr) \
		GMIC_USE_FFTW=$(usex fftw) \
		GMIC_USE_GRAPHICSMAGICK=$(usex graphicsmagick) \
		GMIC_USE_JPEG=$(usex jpeg) \
		GMIC_USE_OPENCV=$(usex opencv) \
		GMIC_USE_OPENMP=$(usex openmp) \
		GMIC_USE_PNG=$(usex png) \
		GMIC_USE_TIFF=$(usex tiff) \
		GMIC_USE_X11=$(usex X) \
		QMAKE="qmake5" \
		$@
}

# FIXME:
#  - do not pre-strip binaries
#  - honour user LDFLAGS on lib{,c}gmic.so
#  - fix multilib-strict violation on same
#  - nuke relative DT_RUNPATH on same
#  - GIMP plug-in dir should only be created if USE=gimp, otherwise it ends up being just /plug-ins
src_compile() {
	gmic_emake lib libc
	use cli && gmic_emake cli_shared
	use gimp && gmic_emake gimp_shared
	use qt5 && gmic_emake gmic_qt_shared
}