media-gfx/digikam: x86 stable (bug #654370)
[gentoo.git] / media-gfx / digikam / digikam-5.7.0-r3.ebuild
1 # Copyright 1999-2018 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=6
5
6 if [[ ${KDE_BUILD_TYPE} != live ]]; then
7         KDE_HANDBOOK="true"
8         KDE_TEST="true"
9 fi
10 CMAKE_MAKEFILE_GENERATOR="emake"
11 KDE_APPS_MINIMAL="17.12.0"
12 inherit kde5 toolchain-funcs
13
14 DESCRIPTION="Digital photo management application"
15 HOMEPAGE="https://www.digikam.org/"
16
17 LICENSE="GPL-2"
18 IUSE="addressbook calendar gphoto2 jpeg2k +kipi +lensfun marble mediaplayer semantic-desktop mysql opengl openmp +panorama scanner X"
19
20 if [[ ${KDE_BUILD_TYPE} != live ]]; then
21         KEYWORDS="amd64 x86"
22         MY_PV=${PV/_/-}
23         MY_P=${PN}-${MY_PV}
24         SRC_BRANCH=stable
25         [[ ${PV} =~ beta[0-9]$ ]] && SRC_BRANCH=unstable
26         SRC_URI="mirror://kde/${SRC_BRANCH}/digikam/${MY_P}.tar.xz"
27         S="${WORKDIR}/${MY_P}/core"
28 fi
29
30 COMMON_DEPEND="
31         $(add_frameworks_dep kconfig)
32         $(add_frameworks_dep kconfigwidgets)
33         $(add_frameworks_dep kcoreaddons)
34         $(add_frameworks_dep ki18n)
35         $(add_frameworks_dep kiconthemes)
36         $(add_frameworks_dep kio)
37         $(add_frameworks_dep knotifications)
38         $(add_frameworks_dep knotifyconfig)
39         $(add_frameworks_dep kservice)
40         $(add_frameworks_dep kwidgetsaddons)
41         $(add_frameworks_dep kwindowsystem)
42         $(add_frameworks_dep kxmlgui)
43         $(add_frameworks_dep solid)
44         $(add_qt_dep qtconcurrent)
45         $(add_qt_dep qtdbus)
46         $(add_qt_dep qtgui '-gles2')
47         $(add_qt_dep qtprintsupport)
48         $(add_qt_dep qtsql 'mysql?')
49         $(add_qt_dep qtwebkit)
50         $(add_qt_dep qtwidgets)
51         $(add_qt_dep qtxml)
52         dev-libs/expat
53         >=media-gfx/exiv2-0.26:=
54         media-libs/lcms:2
55         media-libs/liblqr
56         media-libs/libpng:0=
57         media-libs/opencv:=[-qt4(-)]
58         || ( <media-libs/opencv-3.0.0 >=media-libs/opencv-3.1.0 )
59         media-libs/tiff:0
60         virtual/jpeg:0
61         addressbook? (
62                 $(add_kdeapps_dep akonadi-contacts)
63                 $(add_kdeapps_dep kcontacts)
64         )
65         calendar? ( $(add_kdeapps_dep kcalcore) )
66         gphoto2? ( media-libs/libgphoto2:= )
67         jpeg2k? ( media-libs/jasper:= )
68         kipi? ( $(add_kdeapps_dep libkipi '' '16.03.80') )
69         lensfun? ( media-libs/lensfun )
70         marble? (
71                 $(add_frameworks_dep kbookmarks)
72                 $(add_kdeapps_dep marble)
73                 $(add_qt_dep qtconcurrent)
74                 $(add_qt_dep qtnetwork)
75         )
76         mediaplayer? ( media-libs/qtav[opengl] )
77         mysql? ( virtual/mysql[server] )
78         opengl? (
79                 $(add_qt_dep qtopengl)
80                 virtual/opengl
81         )
82         panorama? ( $(add_frameworks_dep threadweaver) )
83         scanner? ( $(add_kdeapps_dep libksane) )
84         semantic-desktop? ( $(add_frameworks_dep kfilemetadata) )
85         X? (
86                 $(add_qt_dep qtx11extras)
87                 x11-libs/libX11
88         )
89 "
90 DEPEND="${COMMON_DEPEND}
91         dev-cpp/eigen:3
92         dev-libs/boost[threads]
93         sys-devel/gettext
94         panorama? (
95                 sys-devel/bison
96                 sys-devel/flex
97         )
98 "
99 RDEPEND="${COMMON_DEPEND}
100         media-plugins/kipi-plugins:5
101         panorama? ( media-gfx/hugin )
102         !media-gfx/digikam:4
103 "
104
105 RESTRICT=test
106 # bug 366505
107
108 PATCHES=(
109         "${FILESDIR}"/${P}-qt-5.9.3.patch
110         "${FILESDIR}"/${P}-mariadb-10.2-{1,2}.patch
111         "${FILESDIR}"/${P}-kreadconfig5.patch
112         "${FILESDIR}"/${P}-kcalcore-{1,2}.patch
113 )
114
115 pkg_pretend() {
116         [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
117         kde5_pkg_pretend
118 }
119
120 pkg_setup() {
121         [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
122         kde5_pkg_setup
123 }
124
125 # FIXME: Unbundle libraw (libs/rawengine/libraw)
126 src_prepare() {
127         if [[ ${KDE_BUILD_TYPE} != live ]]; then
128                 # prepare the translations
129                 mv "${WORKDIR}/${MY_P}/po" po || die
130                 find po -name "*.po" -and -not -name "digikam.po" -delete || die
131                 echo "set_property(GLOBAL PROPERTY ALLOW_DUPLICATE_CUSTOM_TARGETS 1)" >> CMakeLists.txt || die
132                 echo "find_package(Gettext REQUIRED)" >> CMakeLists.txt || die
133                 echo "add_subdirectory( po )" >> CMakeLists.txt || die
134
135                 if use handbook; then
136                         # subdirs need to be preserved b/c relative paths...
137                         # doc-translated is, in fact, broken, and ignored
138                         mv "${WORKDIR}/${MY_P}/doc/${PN}" doc-default || die
139                         echo "find_package(KF5DocTools REQUIRED)" >> CMakeLists.txt || die
140                         echo "add_subdirectory( doc-default )" >> CMakeLists.txt || die
141                 fi
142         fi
143
144         if ! use marble; then
145                 punt_bogus_dep Qt5 Network
146         fi
147
148         kde5_src_prepare
149 }
150
151 src_configure() {
152         local mycmakeargs=(
153                 -DENABLE_APPSTYLES=ON
154                 -DENABLE_AKONADICONTACTSUPPORT=$(usex addressbook)
155                 -DENABLE_MEDIAPLAYER=$(usex mediaplayer)
156                 -DENABLE_MYSQLSUPPORT=$(usex mysql)
157                 -DENABLE_OPENCV3=$(has_version ">=media-libs/opencv-3" && echo yes || echo no)
158                 $(cmake-utils_use_find_package calendar KF5CalendarCore)
159                 $(cmake-utils_use_find_package gphoto2 Gphoto2)
160                 $(cmake-utils_use_find_package jpeg2k Jasper)
161                 $(cmake-utils_use_find_package kipi KF5Kipi)
162                 $(cmake-utils_use_find_package lensfun LensFun)
163                 $(cmake-utils_use_find_package marble Marble)
164                 $(cmake-utils_use_find_package mediaplayer QtAV)
165                 $(cmake-utils_use_find_package opengl OpenGL)
166                 $(cmake-utils_use_find_package openmp OpenMP)
167                 $(cmake-utils_use_find_package panorama KF5ThreadWeaver)
168                 $(cmake-utils_use_find_package scanner KF5Sane)
169                 $(cmake-utils_use_find_package semantic-desktop KF5FileMetaData)
170                 $(cmake-utils_use_find_package X X11)
171         )
172
173         kde5_src_configure
174 }