1SUMMARY="Professional Photo Management with the Power of Open Source"
2DESCRIPTION="digiKam is an advanced open-source digital photo management \
3application that runs on Linux, Windows, and MacOS. The application provides \
4a comprehensive set of tools for importing, managing, editing, and sharing \
5photos and RAW files."
6HOMEPAGE="https://digikam.org/"
7COPYRIGHT="2010-2024 KDE Organisation"
8LICENSE="GNU LGPL v2"
9REVISION="1"
10SOURCE_URI="https://download.kde.org/stable/digikam/$portVersion/digiKam-$portVersion.tar.xz"
11CHECKSUM_SHA256="2f7fcb559b123ed9ecae5a5aef6f4560eee5f49206d9d1746dec9ab6c8fb38bf"
12SOURCE_DIR="digikam-$portVersion"
13PATCHES="digikam-$portVersion.patchset"
14ADDITIONAL_FILES="
15	digikam.rdef.in
16	showfoto.rdef.in
17	"
18
19ARCHITECTURES="all !x86_gcc2"
20SECONDARY_ARCHITECTURES="x86"
21
22PROVIDES="
23	digikam$secondaryArchSuffix = $portVersion
24	app:digiKam$secondaryArchSuffix = $portVersion
25	app:showFoto$secondaryArchSuffix = $portVersion
26	lib:libdigikamcore$secondaryArchSuffix = $portVersion
27	lib:libdigikamdatabase$secondaryArchSuffix = $portVersion
28	lib:libdigikamgui$secondaryArchSuffix = $portVersion
29	"
30REQUIRES="
31	haiku$secondaryArchSuffix
32	lib:libexiv2$secondaryArchSuffix
33	lib:libexpat$secondaryArchSuffix
34	lib:libGL$secondaryArchSuffix
35	lib:libGLU$secondaryArchSuffix
36	lib:libglib_2.0${secondaryArchSuffix}
37	lib:libgomp$secondaryArchSuffix
38	lib:libgphoto2$secondaryArchSuffix
39	lib:libheif$secondaryArchSuffix
40	lib:libiconv$secondaryArchSuffix
41	lib:libintl$secondaryArchSuffix
42	lib:libjasper$secondaryArchSuffix
43	lib:libjpeg$secondaryArchSuffix
44	lib:libkdeinit5_kded5$secondaryArchSuffix
45	lib:libkdeinit5_klauncher$secondaryArchSuffix
46	lib:libKF5Archive$secondaryArchSuffix
47	lib:libKF5Auth$secondaryArchSuffix
48	lib:libKF5Bookmarks$secondaryArchSuffix
49	lib:libKF5CalendarCore$secondaryArchSuffix
50	lib:libKF5Codecs$secondaryArchSuffix
51	lib:libKF5Completion$secondaryArchSuffix
52	lib:libKF5ConfigCore$secondaryArchSuffix
53	lib:libKF5ConfigGui$secondaryArchSuffix
54	lib:libKF5ConfigWidgets$secondaryArchSuffix
55	lib:libKF5CoreAddons$secondaryArchSuffix
56	lib:libKF5Crash$secondaryArchSuffix
57	lib:libKF5DBusAddons$secondaryArchSuffix
58	lib:libKF5DocTools$secondaryArchSuffix
59	lib:libKF5Emoticons$secondaryArchSuffix
60	lib:libKF5GuiAddons$secondaryArchSuffix
61	lib:libKF5I18n$secondaryArchSuffix
62	lib:libKF5IconThemes$secondaryArchSuffix
63	lib:libKF5ItemModels$secondaryArchSuffix
64	lib:libKF5ItemViews$secondaryArchSuffix
65	lib:libKF5JobWidgets$secondaryArchSuffix
66	lib:libKF5KIOCore$secondaryArchSuffix
67	lib:libKF5KIOFileWidgets$secondaryArchSuffix
68	lib:libKF5KIOWidgets$secondaryArchSuffix
69	lib:libKF5Notifications$secondaryArchSuffix
70	lib:libKF5NotifyConfig$secondaryArchSuffix
71	lib:libKF5Parts$secondaryArchSuffix
72	lib:libKF5Sane$secondaryArchSuffix
73	lib:libKF5Service$secondaryArchSuffix
74	lib:libKF5Solid$secondaryArchSuffix
75	lib:libKF5SonnetUi$secondaryArchSuffix
76	lib:libKF5TextWidgets$secondaryArchSuffix
77	lib:libKF5ThreadWeaver$secondaryArchSuffix
78	lib:libKF5UnitConversion$secondaryArchSuffix
79	lib:libKF5WidgetsAddons$secondaryArchSuffix
80	lib:libKF5WindowSystem$secondaryArchSuffix
81	lib:libKF5XmlGui$secondaryArchSuffix
82	lib:liblcms2$secondaryArchSuffix
83	lib:liblensfun$secondaryArchSuffix
84	lib:liblqr_1$secondaryArchSuffix
85	lib:libMagick++_7.Q16HDRI$secondaryArchSuffix
86	lib:libopenal$secondaryArchSuffix
87	lib:libopencv_core$secondaryArchSuffix
88	lib:libopencv_imgcodecs$secondaryArchSuffix
89	lib:libopencv_imgproc$secondaryArchSuffix
90	lib:libopencv_objdetect$secondaryArchSuffix
91	lib:libpng16$secondaryArchSuffix
92	lib:libQt5Core$secondaryArchSuffix
93	lib:libQt5DBus$secondaryArchSuffix
94	lib:libQt5Gui$secondaryArchSuffix
95	lib:libQt5Network$secondaryArchSuffix
96	lib:libQt5PrintSupport$secondaryArchSuffix
97	lib:libQt5Widgets$secondaryArchSuffix
98	lib:libQt5WebEngine$secondaryArchSuffix
99	lib:libQt5WebEngineCore$secondaryArchSuffix
100	lib:libQt5WebEngineWidgets$secondaryArchSuffix
101	lib:libQt5Xml$secondaryArchSuffix
102	lib:libtiff$secondaryArchSuffix
103	lib:libx265$secondaryArchSuffix
104	lib:libxml2$secondaryArchSuffix
105	lib:libxslt$secondaryArchSuffix
106	lib:libz$secondaryArchSuffix
107	"
108
109BUILD_REQUIRES="
110	haiku${secondaryArchSuffix}_devel
111	extra_cmake_modules$secondaryArchSuffix
112	devel:eigen$secondaryArchSuffix
113	devel:libGL$secondaryArchSuffix
114	devel:libGLU$secondaryArchSuffix
115	devel:libavcodec$secondaryArchSuffix >= 59
116	devel:libavformat$secondaryArchSuffix >= 59
117	devel:libavutil$secondaryArchSuffix >= 57
118	devel:libboost_system$secondaryArchSuffix >= 1.83.0
119	devel:libexiv2$secondaryArchSuffix
120	devel:libexpat$secondaryArchSuffix
121	devel:libglib_2.0$secondaryArchSuffix
122	devel:libgomp$secondaryArchSuffix
123	devel:libgphoto2$secondaryArchSuffix
124	devel:libheif$secondaryArchSuffix
125	devel:libiconv$secondaryArchSuffix
126	devel:libintl$secondaryArchSuffix
127	devel:libjasper$secondaryArchSuffix
128	devel:libjpeg$secondaryArchSuffix
129	devel:libkdeinit5_kded5$secondaryArchSuffix
130	devel:libkdeinit5_klauncher$secondaryArchSuffix
131	devel:libKF5Archive$secondaryArchSuffix
132	devel:libKF5Auth$secondaryArchSuffix
133	devel:libKF5Bookmarks$secondaryArchSuffix
134	devel:libKF5CalendarCore$secondaryArchSuffix
135	devel:libKF5Codecs$secondaryArchSuffix
136	devel:libKF5Completion$secondaryArchSuffix
137	devel:libKF5ConfigCore$secondaryArchSuffix
138	devel:libKF5ConfigGui$secondaryArchSuffix
139	devel:libKF5ConfigWidgets$secondaryArchSuffix
140	devel:libKF5CoreAddons$secondaryArchSuffix
141	devel:libKF5Crash$secondaryArchSuffix
142	devel:libKF5DBusAddons$secondaryArchSuffix
143	devel:libKF5DesignerPlugin$secondaryArchSuffix
144	devel:libKF5DocTools$secondaryArchSuffix
145	devel:libKF5Emoticons$secondaryArchSuffix
146	devel:libKF5GuiAddons$secondaryArchSuffix
147	devel:libKF5I18n$secondaryArchSuffix
148	devel:libKF5IconThemes$secondaryArchSuffix
149	devel:libKF5ItemModels$secondaryArchSuffix
150	devel:libKF5ItemViews$secondaryArchSuffix
151	devel:libKF5JobWidgets$secondaryArchSuffix
152	devel:libKF5KIOCore$secondaryArchSuffix
153	devel:libKF5KIOFileWidgets$secondaryArchSuffix
154	devel:libKF5KIOWidgets$secondaryArchSuffix
155	devel:libKF5Notifications$secondaryArchSuffix
156	devel:libKF5NotifyConfig$secondaryArchSuffix
157	devel:libKF5Parts$secondaryArchSuffix
158	devel:libKF5Sane$secondaryArchSuffix
159	devel:libKF5Service$secondaryArchSuffix
160	devel:libKF5Solid$secondaryArchSuffix
161	devel:libKF5SonnetUi$secondaryArchSuffix
162	devel:libKF5TextWidgets$secondaryArchSuffix
163	devel:libKF5ThreadWeaver$secondaryArchSuffix
164	devel:libKF5UnitConversion$secondaryArchSuffix
165	devel:libKF5WidgetsAddons$secondaryArchSuffix
166	devel:libKF5WindowSystem$secondaryArchSuffix
167	devel:libKF5XmlGui$secondaryArchSuffix
168	devel:liblcms2$secondaryArchSuffix
169	devel:liblensfun$secondaryArchSuffix
170	devel:liblqr_1$secondaryArchSuffix
171	devel:libMagick++_7.Q16HDRI$secondaryArchSuffix
172	devel:libopenal$secondaryArchSuffix
173	devel:libopencv_core$secondaryArchSuffix
174	devel:libpng16$secondaryArchSuffix
175	devel:libQt5Core$secondaryArchSuffix
176	devel:libQt5WebEngine$secondaryArchSuffix
177	devel:libtiff$secondaryArchSuffix
178	devel:libx265$secondaryArchSuffix
179	devel:libxml2$secondaryArchSuffix
180	devel:libxslt$secondaryArchSuffix
181	devel:libz$secondaryArchSuffix
182	"
183
184PROVIDES_devel="
185	digikam${secondaryArchSuffix}_devel = $portVersion compat >= 8
186	devel:libdigikamcore$secondaryArchSuffix = $portVersion compat >= 8
187	devel:libdigikamdatabase$secondaryArchSuffix = $portVersion compat >= 8
188	devel:libdigikamgui$secondaryArchSuffix = $portVersion compat >= 8
189	"
190REQUIRES_devel="
191	haiku$secondaryArchSuffix
192	digikam$secondaryArchSuffix == $portVersion base
193	"
194
195BUILD_PREREQUIRES="
196	cmd:bison
197	cmd:cmake	
198	cmd:flex
199	cmd:g++$secondaryArchSuffix
200	cmd:git
201	cmd:lrelease$secondaryArchSuffix >= 5
202	cmd:make
203	cmd:pkg_config$secondaryArchSuffix
204	cmd:qdbuscpp2xml$secondaryArchSuffix >= 5
205	"
206
207BUILD()
208{
209	mkdir -p build
210	cd build
211
212	cmake .. \
213		-DCMAKE_BUILD_TYPE=Release \
214		-DCMAKE_INSTALL_PREFIX=$appsDir/digiKam \
215		-DCMAKE_INSTALL_DATAROOTDIR=$dataDir \
216		-DCMAKE_INSTALL_LIBDIR=$libDir \
217		-DCMAKE_INSTALL_INCLUDEDIR=$includeDir \
218		-DINCLUDE_INSTALL_DIR=$includeDir \
219		-DSHARE_INSTALL_PREFIX=$dataDir \
220		-DKDE_INSTALL_QTPLUGINDIR=$addOnsDir/Qt5 \
221		-DECM_MKSPECS_INSTALL_DIR=$dataDir/Qt5/mkspecs \
222		-DECM_DIR=/system/data/cmake/Modules/ECM/cmake \
223		-DCMAKE_CXX_FLAGS="-D_BSD_SOURCE" \
224		-DENABLE_DBUS=OFF \
225		-DENABLE_MEDIAPLAYER=ON \
226		-DENABLE_APPSTYLES=ON \
227		-DENABLE_QWEBENGINE=ON \
228		-Wno-dev
229
230	LIBRARY_PATH=$LIBRARY_PATH:$sourceDir/build/bin	\
231	make $jobArgs
232}
233
234INSTALL()
235{
236	cd build	
237	LIBRARY_PATH=$LIBRARY_PATH:$sourceDir/build/bin	\
238	make install
239
240	mv $appsDir/digiKam/bin/digikam $appsDir/digiKam/digiKam
241	mv $appsDir/digiKam/bin/showfoto $appsDir/digiKam/showFoto
242	rm -rf $appsDir/digiKam/bin
243
244	prepareInstalledDevelLibs libdigikamcore libdigikamdatabase libdigikamgui
245
246	packageEntries devel \
247		$developDir \
248		$libDir/cmake \
249
250	local APP_SIGNATURE="application/x-vnd.qt5-digikam"
251	local MAJOR="`echo "$portVersion" | cut -d. -f1`"
252	local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
253	local MINOR="`echo "$portVersion" | cut -d. -f3`"
254	local LONG_INFO="$SUMMARY"
255	sed \
256		-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
257		-e "s|@MAJOR@|$MAJOR|" \
258		-e "s|@MIDDLE@|$MIDDLE|" \
259		-e "s|@MINOR@|$MINOR|" \
260		-e "s|@LONG_INFO@|$LONG_INFO|" \
261		$portDir/additional-files/digikam.rdef.in > digikam.rdef
262	addResourcesToBinaries digikam.rdef $appsDir/digiKam/digiKam
263
264	local APP_SIGNATURE="application/x-vnd.qt5-showfoto"
265	sed \
266		-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
267		-e "s|@MAJOR@|$MAJOR|" \
268		-e "s|@MIDDLE@|$MIDDLE|" \
269		-e "s|@MINOR@|$MINOR|" \
270		-e "s|@LONG_INFO@|$LONG_INFO|" \
271		$portDir/additional-files/showfoto.rdef.in > showfoto.rdef
272	addResourcesToBinaries showfoto.rdef $appsDir/digiKam/showFoto
273
274	addAppDeskbarSymlink $appsDir/digiKam/showFoto
275	addAppDeskbarSymlink $appsDir/digiKam/digiKam
276}
277