summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2021-12-25 10:58:46 +0100
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2021-12-25 17:47:14 +0100
commite9ef7f0dd36f9ad3cbf9538e28c45fc6db9b91e2 (patch)
tree109d75f391055f43ba206ad8461e3ca6aa3fa7c9
parentc979717b806479e5c429c89dc2800367df28b372 (diff)
downloadrockbox-e9ef7f0dd36f9ad3cbf9538e28c45fc6db9b91e2.tar.gz
rockbox-e9ef7f0dd36f9ad3cbf9538e28c45fc6db9b91e2.zip
rbutil: Split out rbutilqt parts into separate cmake list.
Change-Id: I84ada20765b98620e1f06bc7116bbdaaae296fe9
-rw-r--r--utils/CMakeLists.txt393
-rw-r--r--utils/rbutilqt/CMakeLists.txt406
2 files changed, 408 insertions, 391 deletions
diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt
index 84d085d792..cb0e683d75 100644
--- a/utils/CMakeLists.txt
+++ b/utils/CMakeLists.txt
@@ -76,345 +76,6 @@ if(APPLE)
76 find_library(FRAMEWORK_CORESERVICES CoreServices) 76 find_library(FRAMEWORK_CORESERVICES CoreServices)
77endif() 77endif()
78 78
79set(RBUTIL_TS_FILES
80 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_cs.ts
81 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_de.ts
82 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_fi.ts
83 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_fr.ts
84 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_gr.ts
85 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_he.ts
86 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_it.ts
87 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_ja.ts
88 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_nl.ts
89 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_pl.ts
90 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_pt_BR.ts
91 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_pt.ts
92 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_ru.ts
93 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_tr.ts
94 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_zh_CN.ts
95 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_zh_TW.ts
96 )
97if(QT_VERSION_MAJOR EQUAL 5)
98 qt5_add_translation(RBUTIL_QM_FILES ${RBUTIL_TS_FILES})
99else()
100 qt6_add_translation(RBUTIL_QM_FILES ${RBUTIL_TS_FILES})
101endif()
102
103# The qrc file searches input files based on its location, and the qm files are
104# generated in the build dir. Copy the qrc file to the build dir, make it
105# depend on the qm files. cmake will then get deps right.
106add_custom_command(
107 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rbutilqt-lang.qrc
108 COMMAND ${CMAKE_COMMAND} -E copy_if_different
109 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutilqt-lang.qrc
110 ${CMAKE_CURRENT_BINARY_DIR}
111 DEPENDS ${RBUTIL_QM_FILES}
112 )
113
114add_executable(RockboxUtility WIN32 MACOSX_BUNDLE
115 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/main.cpp
116
117 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/aboutbox.ui
118 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/configure.cpp
119 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/configurefrm.ui
120 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/configure.h
121 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/createvoicefrm.ui
122 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/createvoicewindow.cpp
123 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/createvoicewindow.h
124 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/encttscfggui.cpp
125 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/encttscfggui.h
126 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/installtalkfrm.ui
127 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/installtalkwindow.cpp
128 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/installtalkwindow.h
129 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/preview.cpp
130 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/previewfrm.ui
131 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/preview.h
132 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/progressloggerfrm.ui
133 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/progressloggergui.cpp
134 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/progressloggergui.h
135 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqt.cpp
136 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqtfrm.ui
137 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqt.h
138 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/sysinfo.cpp
139 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/sysinfofrm.ui
140 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/sysinfo.h
141 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/systrace.cpp
142 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/systracefrm.ui
143 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/systrace.h
144 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/themesinstallfrm.ui
145 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/themesinstallwindow.cpp
146 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/themesinstallwindow.h
147 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/uninstallfrm.ui
148 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/uninstallwindow.cpp
149 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/uninstallwindow.h
150 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/version.h
151
152 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/backupdialog.cpp
153 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/backupdialogfrm.ui
154 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/backupdialog.h
155 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/changelog.cpp
156 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/changelogfrm.ui
157 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/changelog.h
158 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/comboboxviewdelegate.cpp
159 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/comboboxviewdelegate.h
160 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/infowidget.cpp
161 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/infowidgetfrm.ui
162 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/infowidget.h
163 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/selectiveinstallwidget.cpp
164 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/selectiveinstallwidgetfrm.ui
165 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/selectiveinstallwidget.h
166
167 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqt.qrc
168 ${CMAKE_CURRENT_BINARY_DIR}/rbutilqt-lang.qrc
169 )
170
171if(WIN32)
172 target_sources(RockboxUtility PRIVATE
173 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqt-win.qrc
174 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqt.rc)
175 # needed on Windows, otherwise svg icons won't show.
176 target_link_libraries(RockboxUtility Qt${QT_VERSION_MAJOR}::QSvgIconPlugin)
177endif()
178if(APPLE)
179 # MacOS Application Bundle specifics.
180 target_sources(RockboxUtility PRIVATE
181 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/icons/rbutilqt.icns)
182 set_target_properties(RockboxUtility
183 PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/Info.plist)
184 set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/rbutilqt/icons/rbutilqt.icns
185 PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
186endif()
187
188target_link_libraries(RockboxUtility rbbase cutelogger
189 Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Multimedia)
190
191target_include_directories(RockboxUtility PRIVATE
192 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui
193 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt)
194target_compile_definitions(RockboxUtility PRIVATE
195 QT_DEPRECATED_WARNINGS
196 RBUTIL _LARGEFILE64_SOURCE UNICODE)
197
198set_property(TARGET RockboxUtility PROPERTY AUTOMOC ON)
199set_property(TARGET RockboxUtility PROPERTY AUTORCC ON)
200set_property(TARGET RockboxUtility PROPERTY AUTOUIC ON)
201
202include(${CMAKE_CURRENT_LIST_DIR}/cmake/deploy.cmake)
203deploy_qt(RockboxUtility
204 ${QT_BINDIR}
205 ${CMAKE_CURRENT_LIST_DIR}/../docs/logo/rockbox-clef.svg
206 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/RockboxUtility.desktop
207 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/dmgbuild.cfg)
208
209add_library(rbbase
210 ${CMAKE_CURRENT_LIST_DIR}/../tools/iriver.c
211 ${CMAKE_CURRENT_LIST_DIR}/../tools/iriver.h
212 ${CMAKE_CURRENT_LIST_DIR}/../tools/mkboot.c
213 ${CMAKE_CURRENT_LIST_DIR}/../tools/mkboot.h
214 ${CMAKE_CURRENT_LIST_DIR}/../tools/wavtrim.c
215 ${CMAKE_CURRENT_LIST_DIR}/../tools/wavtrim.h
216 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/archiveutil.cpp
217 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/archiveutil.h
218 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/autodetection.cpp
219 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/autodetection.h
220 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallams.cpp
221 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallams.h
222 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallbase.cpp
223 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallbase.h
224 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallbspatch.cpp
225 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallbspatch.h
226 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallchinachip.cpp
227 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallchinachip.h
228 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallfile.cpp
229 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallfile.h
230 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallhelper.cpp
231 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallhelper.h
232 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallhex.cpp
233 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallhex.h
234 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallimx.cpp
235 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallimx.h
236 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallipod.cpp
237 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallipod.h
238 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallmi4.cpp
239 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallmi4.h
240 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallmpio.cpp
241 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallmpio.h
242 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstalls5l.cpp
243 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstalls5l.h
244 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallsansa.cpp
245 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallsansa.h
246 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstalltcc.cpp
247 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstalltcc.h
248 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderbase.cpp
249 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderbase.h
250 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderexe.cpp
251 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderexe.h
252 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderlame.cpp
253 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderlame.h
254 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderrbspeex.cpp
255 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderrbspeex.h
256 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encttssettings.cpp
257 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encttssettings.h
258 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/httpget.cpp
259 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/httpget.h
260 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/mspackutil.cpp
261 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/mspackutil.h
262 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/progressloggerinterface.h
263 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/playerbuildinfo.cpp
264 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/playerbuildinfo.h
265 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/rbsettings.cpp
266 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/rbsettings.h
267 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/rockboxinfo.cpp
268 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/rockboxinfo.h
269 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/system.cpp
270 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/system.h
271 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/talkfile.cpp
272 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/talkfile.h
273 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/talkgenerator.cpp
274 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/talkgenerator.h
275 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsbase.cpp
276 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsbase.h
277 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsespeak.h
278 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsespeakng.h
279 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsexes.cpp
280 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsexes.h
281 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsfestival.cpp
282 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsfestival.h
283 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsflite.h
284 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsmimic.h
285 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsmssp.h
286 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttssapi.cpp
287 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttssapi.h
288 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttssapi4.h
289 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsswift.h
290 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/uninstall.cpp
291 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/uninstall.h
292 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/utils.cpp
293 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/utils.h
294 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/voicefile.cpp
295 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/voicefile.h
296 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/zipinstaller.cpp
297 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/zipinstaller.h
298 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ziputil.cpp
299 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ziputil.h
300 )
301
302if(APPLE)
303 target_sources(rbbase PRIVATE
304 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttscarbon.cpp
305 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttscarbon.h)
306endif()
307
308target_link_libraries(rbbase
309 cutelogger quazip mspack bspatch rbspeex voicefont
310 sansapatcher ipodpatcher chinachippatcher
311 mkamsboot mkimxboot mkmpioboot mktccboot mks5lboot
312 Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network)
313target_include_directories(rbbase PUBLIC ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base)
314target_include_directories(rbbase PRIVATE ${CMAKE_CURRENT_LIST_DIR}/rbutilqt)
315target_include_directories(rbbase PUBLIC ${CMAKE_CURRENT_LIST_DIR}/../tools)
316target_compile_definitions(rbbase PUBLIC RBUTIL _LARGEFILE64_SOURCE UNICODE)
317target_compile_definitions(rbbase PRIVATE QT_DEPRECATED_WARNINGS)
318if(WIN32)
319 target_link_libraries(rbbase setupapi ws2_32 netapi32 crypt32 iphlpapi)
320elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
321 target_link_libraries(rbbase PkgConfig::libusb)
322elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
323 target_link_libraries(rbbase ${FRAMEWORK_IOKIT} ${FRAMEWORK_COREFOUNDATION}
324 ${FRAMEWORK_CARBON} ${FRAMEWORK_SYSTEMCONFIGURATION} ${FRAMEWORK_CORESERVICES})
325endif()
326set_property(TARGET rbbase PROPERTY AUTOMOC ON)
327
328# TODO: Upstream has cmake support, use that instead.
329add_library(cutelogger)
330# need to put those separate, otherwise cmake will not add them correctly -- seems to be related to moc'ing.
331target_sources(cutelogger PUBLIC
332 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/AbstractAppender.h
333 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/AbstractStringAppender.h
334 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/ConsoleAppender.h
335 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/CuteLogger_global.h
336 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/FileAppender.h
337 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/Logger.h
338 #${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/OutputDebugAppender.h
339 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/AbstractAppender.cpp
340 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/AbstractStringAppender.cpp
341 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/ConsoleAppender.cpp
342 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/FileAppender.cpp
343 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/Logger.cpp
344 #${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/OutputDebugAppender.cpp
345 )
346target_include_directories(cutelogger PUBLIC ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include)
347target_link_libraries(cutelogger PUBLIC Qt${QT_VERSION_MAJOR}::Core)
348target_compile_definitions(cutelogger PUBLIC CUTELOGGER_STATIC)
349set_property(TARGET cutelogger PROPERTY AUTOMOC ON)
350
351# TODO: Upstream has cmake support, use that instead.
352add_library(quazip
353 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/ioapi.h
354 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/minizip_crypt.h
355 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/qioapi.cpp
356 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazip.cpp
357 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipfile.cpp
358 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipfile.h
359 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipfileinfo.cpp
360 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipfileinfo.h
361 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazip_global.h
362 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazip.h
363 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipnewinfo.cpp
364 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipnewinfo.h
365 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/unzip.c
366 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/unzip.h
367 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/zip.c
368 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/zip.h
369 )
370target_include_directories(quazip PUBLIC ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip)
371target_link_libraries(quazip z Qt${QT_VERSION_MAJOR}::Core)
372if(QT_VERSION_MAJOR EQUAL 6)
373 target_link_libraries(quazip Qt${QT_VERSION_MAJOR}::Core5Compat)
374endif()
375target_compile_definitions(quazip PUBLIC QUAZIP_STATIC)
376set_property(TARGET quazip PROPERTY AUTOMOC ON)
377
378add_library(mspack
379 rbutilqt/mspack/cabc.c
380 rbutilqt/mspack/cabd.c
381 rbutilqt/mspack/cab.h
382 #rbutilqt/mspack/chmc.c
383 #rbutilqt/mspack/chmd.c
384 #rbutilqt/mspack/chm.h
385 rbutilqt/mspack/des.h
386 #rbutilqt/mspack/hlpc.c
387 #rbutilqt/mspack/hlpd.c
388 #rbutilqt/mspack/hlp.h
389 #rbutilqt/mspack/kwajc.c
390 #rbutilqt/mspack/kwajd.c
391 #rbutilqt/mspack/kwaj.h
392 #rbutilqt/mspack/litc.c
393 #rbutilqt/mspack/litd.c
394 #rbutilqt/mspack/lit.h
395 #rbutilqt/mspack/lzssd.c
396 #rbutilqt/mspack/lzss.h
397 rbutilqt/mspack/lzxc.c
398 rbutilqt/mspack/lzxd.c
399 rbutilqt/mspack/lzx.h
400 rbutilqt/mspack/mspack.h
401 rbutilqt/mspack/mszipc.c
402 rbutilqt/mspack/mszipd.c
403 rbutilqt/mspack/mszip.h
404 rbutilqt/mspack/qtmd.c
405 rbutilqt/mspack/qtm.h
406 rbutilqt/mspack/readbits.h
407 rbutilqt/mspack/readhuff.h
408 rbutilqt/mspack/sha.h
409 rbutilqt/mspack/system-mspack.c
410 rbutilqt/mspack/system-mspack.h
411 #rbutilqt/mspack/szddc.c
412 #rbutilqt/mspack/szddd.c
413 #rbutilqt/mspack/szdd.h
414 )
415
416target_include_directories(mspack PUBLIC ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/mspack)
417
418 79
419add_library(ipodpatcher 80add_library(ipodpatcher
420 ipodpatcher/arc4.h 81 ipodpatcher/arc4.h
@@ -672,55 +333,5 @@ add_library(rbtomcrypt
672 ) 333 )
673target_include_directories(rbtomcrypt PUBLIC ${CMAKE_CURRENT_LIST_DIR}/tomcrypt/src/headers) 334target_include_directories(rbtomcrypt PUBLIC ${CMAKE_CURRENT_LIST_DIR}/tomcrypt/src/headers)
674 335
675 336include(${CMAKE_CURRENT_LIST_DIR}/cmake/deploy.cmake)
676# Unit tests 337add_subdirectory(rbutilqt)
677add_executable(test_compareversion
678 rbutilqt/base/utils.cpp
679 rbutilqt/base/utils.h
680 rbutilqt/test/stubs/stubs-compareversion.cpp
681 rbutilqt/test/test-compareversion.cpp)
682
683target_link_libraries(test_compareversion Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test)
684target_compile_definitions(test_compareversion PRIVATE UNICODE)
685if(APPLE)
686 target_link_libraries(test_compareversion ${FRAMEWORK_IOKIT} ${FRAMEWORK_COREFOUNDATION}
687 ${FRAMEWORK_CARBON} ${FRAMEWORK_SYSTEMCONFIGURATION} ${FRAMEWORK_CORESERVICES})
688endif()
689target_include_directories(test_compareversion PRIVATE rbutilqt/base rbutilqt/test/stubs)
690add_test(test_compareversion test_compareversion)
691set_property(TARGET test_compareversion PROPERTY AUTOMOC ON)
692
693add_executable(test_httpget
694 rbutilqt/test/test-httpget.cpp
695 rbutilqt/base/httpget.cpp
696 rbutilqt/base/httpget.h)
697target_link_libraries(test_httpget Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test Qt${QT_VERSION_MAJOR}::Network)
698target_include_directories(test_httpget PRIVATE rbutilqt/base rbutilqt/test/stubs)
699add_test(test_httpget test_httpget)
700set_property(TARGET test_httpget PROPERTY AUTOMOC ON)
701
702add_executable(test_playerbuildinfo
703 rbutilqt/base/playerbuildinfo.cpp
704 rbutilqt/base/playerbuildinfo.h
705 rbutilqt/base/rbsettings.h
706 rbutilqt/base/rockboxinfo.h
707 rbutilqt/rbutilqt.qrc # needed for rbutil.ini resource.
708 rbutilqt/test/stubs/stubs-playerbuildinfo.cpp
709 rbutilqt/test/test-playerbuildinfo.cpp)
710target_link_libraries(test_playerbuildinfo Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test)
711target_include_directories(test_playerbuildinfo PRIVATE rbutilqt/base rbutilqt/test/stubs)
712add_test(test_playerbuildinfo test_playerbuildinfo)
713set_property(TARGET test_playerbuildinfo PROPERTY AUTOMOC ON)
714set_property(TARGET test_playerbuildinfo PROPERTY AUTORCC ON)
715
716add_executable(test_rockboxinfo
717 rbutilqt/base/rockboxinfo.cpp
718 rbutilqt/base/rockboxinfo.h
719 rbutilqt/test/test-rockboxinfo.cpp)
720
721target_link_libraries(test_rockboxinfo Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test)
722target_include_directories(test_rockboxinfo PRIVATE rbutilqt/base rbutilqt/test/stubs)
723target_compile_definitions(test_rockboxinfo PRIVATE UNICODE)
724add_test(test_rockboxinfo test_rockboxinfo)
725set_property(TARGET test_rockboxinfo PROPERTY AUTOMOC ON)
726
diff --git a/utils/rbutilqt/CMakeLists.txt b/utils/rbutilqt/CMakeLists.txt
new file mode 100644
index 0000000000..138d0903cf
--- /dev/null
+++ b/utils/rbutilqt/CMakeLists.txt
@@ -0,0 +1,406 @@
1#
2# __________ __ ___.
3# Open \______ \ ____ ____ | | _\_ |__ _______ ___
4# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7# \/ \/ \/ \/ \/
8#
9# All files in this archive are subject to the GNU General Public License.
10# See the file COPYING in the source tree root for full license agreement.
11#
12# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
13# KIND, either express or implied.
14#
15
16set(RBUTIL_TS_FILES
17 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_cs.ts
18 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_de.ts
19 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_fi.ts
20 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_fr.ts
21 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_gr.ts
22 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_he.ts
23 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_it.ts
24 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_ja.ts
25 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_nl.ts
26 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_pl.ts
27 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_pt_BR.ts
28 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_pt.ts
29 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_ru.ts
30 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_tr.ts
31 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_zh_CN.ts
32 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_zh_TW.ts
33 )
34if(QT_VERSION_MAJOR EQUAL 5)
35 qt5_add_translation(RBUTIL_QM_FILES ${RBUTIL_TS_FILES})
36else()
37 qt6_add_translation(RBUTIL_QM_FILES ${RBUTIL_TS_FILES})
38endif()
39
40# The qrc file searches input files based on its location, and the qm files are
41# generated in the build dir. Copy the qrc file to the build dir, make it
42# depend on the qm files. cmake will then get deps right.
43add_custom_command(
44 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rbutilqt-lang.qrc
45 COMMAND ${CMAKE_COMMAND} -E copy_if_different
46 ${CMAKE_CURRENT_LIST_DIR}/lang/rbutilqt-lang.qrc
47 ${CMAKE_CURRENT_BINARY_DIR}
48 DEPENDS ${RBUTIL_QM_FILES}
49 )
50
51add_executable(RockboxUtility WIN32 MACOSX_BUNDLE
52 ${CMAKE_CURRENT_LIST_DIR}/main.cpp
53
54 ${CMAKE_CURRENT_LIST_DIR}/aboutbox.ui
55 ${CMAKE_CURRENT_LIST_DIR}/configure.cpp
56 ${CMAKE_CURRENT_LIST_DIR}/configurefrm.ui
57 ${CMAKE_CURRENT_LIST_DIR}/configure.h
58 ${CMAKE_CURRENT_LIST_DIR}/createvoicefrm.ui
59 ${CMAKE_CURRENT_LIST_DIR}/createvoicewindow.cpp
60 ${CMAKE_CURRENT_LIST_DIR}/createvoicewindow.h
61 ${CMAKE_CURRENT_LIST_DIR}/encttscfggui.cpp
62 ${CMAKE_CURRENT_LIST_DIR}/encttscfggui.h
63 ${CMAKE_CURRENT_LIST_DIR}/installtalkfrm.ui
64 ${CMAKE_CURRENT_LIST_DIR}/installtalkwindow.cpp
65 ${CMAKE_CURRENT_LIST_DIR}/installtalkwindow.h
66 ${CMAKE_CURRENT_LIST_DIR}/preview.cpp
67 ${CMAKE_CURRENT_LIST_DIR}/previewfrm.ui
68 ${CMAKE_CURRENT_LIST_DIR}/preview.h
69 ${CMAKE_CURRENT_LIST_DIR}/progressloggerfrm.ui
70 ${CMAKE_CURRENT_LIST_DIR}/progressloggergui.cpp
71 ${CMAKE_CURRENT_LIST_DIR}/progressloggergui.h
72 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt.cpp
73 ${CMAKE_CURRENT_LIST_DIR}/rbutilqtfrm.ui
74 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt.h
75 ${CMAKE_CURRENT_LIST_DIR}/sysinfo.cpp
76 ${CMAKE_CURRENT_LIST_DIR}/sysinfofrm.ui
77 ${CMAKE_CURRENT_LIST_DIR}/sysinfo.h
78 ${CMAKE_CURRENT_LIST_DIR}/systrace.cpp
79 ${CMAKE_CURRENT_LIST_DIR}/systracefrm.ui
80 ${CMAKE_CURRENT_LIST_DIR}/systrace.h
81 ${CMAKE_CURRENT_LIST_DIR}/themesinstallfrm.ui
82 ${CMAKE_CURRENT_LIST_DIR}/themesinstallwindow.cpp
83 ${CMAKE_CURRENT_LIST_DIR}/themesinstallwindow.h
84 ${CMAKE_CURRENT_LIST_DIR}/uninstallfrm.ui
85 ${CMAKE_CURRENT_LIST_DIR}/uninstallwindow.cpp
86 ${CMAKE_CURRENT_LIST_DIR}/uninstallwindow.h
87 ${CMAKE_CURRENT_LIST_DIR}/version.h
88
89 ${CMAKE_CURRENT_LIST_DIR}/gui/backupdialog.cpp
90 ${CMAKE_CURRENT_LIST_DIR}/gui/backupdialogfrm.ui
91 ${CMAKE_CURRENT_LIST_DIR}/gui/backupdialog.h
92 ${CMAKE_CURRENT_LIST_DIR}/gui/changelog.cpp
93 ${CMAKE_CURRENT_LIST_DIR}/gui/changelogfrm.ui
94 ${CMAKE_CURRENT_LIST_DIR}/gui/changelog.h
95 ${CMAKE_CURRENT_LIST_DIR}/gui/comboboxviewdelegate.cpp
96 ${CMAKE_CURRENT_LIST_DIR}/gui/comboboxviewdelegate.h
97 ${CMAKE_CURRENT_LIST_DIR}/gui/infowidget.cpp
98 ${CMAKE_CURRENT_LIST_DIR}/gui/infowidgetfrm.ui
99 ${CMAKE_CURRENT_LIST_DIR}/gui/infowidget.h
100 ${CMAKE_CURRENT_LIST_DIR}/gui/selectiveinstallwidget.cpp
101 ${CMAKE_CURRENT_LIST_DIR}/gui/selectiveinstallwidgetfrm.ui
102 ${CMAKE_CURRENT_LIST_DIR}/gui/selectiveinstallwidget.h
103
104 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt.qrc
105 ${CMAKE_CURRENT_BINARY_DIR}/rbutilqt-lang.qrc
106 )
107
108if(WIN32)
109 target_sources(RockboxUtility PRIVATE
110 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt-win.qrc
111 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt.rc)
112 # needed on Windows, otherwise svg icons won't show.
113 target_link_libraries(RockboxUtility Qt${QT_VERSION_MAJOR}::QSvgIconPlugin)
114endif()
115if(APPLE)
116 # MacOS Application Bundle specifics.
117 target_sources(RockboxUtility PRIVATE
118 ${CMAKE_CURRENT_LIST_DIR}/icons/rbutilqt.icns)
119 set_target_properties(RockboxUtility
120 PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_LIST_DIR}/Info.plist)
121 set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/icons/rbutilqt.icns
122 PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
123endif()
124
125target_link_libraries(RockboxUtility rbbase cutelogger
126 Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Multimedia)
127
128target_include_directories(RockboxUtility PRIVATE
129 ${CMAKE_CURRENT_LIST_DIR}/gui
130 ${CMAKE_CURRENT_LIST_DIR})
131target_compile_definitions(RockboxUtility PRIVATE
132 QT_DEPRECATED_WARNINGS
133 RBUTIL _LARGEFILE64_SOURCE UNICODE)
134
135set_property(TARGET RockboxUtility PROPERTY AUTOMOC ON)
136set_property(TARGET RockboxUtility PROPERTY AUTORCC ON)
137set_property(TARGET RockboxUtility PROPERTY AUTOUIC ON)
138
139deploy_qt(RockboxUtility
140 ${QT_BINDIR}
141 ${CMAKE_CURRENT_LIST_DIR}/../../docs/logo/rockbox-clef.svg
142 ${CMAKE_CURRENT_LIST_DIR}/RockboxUtility.desktop
143 ${CMAKE_CURRENT_LIST_DIR}/dmgbuild.cfg)
144
145add_library(rbbase
146 ${CMAKE_CURRENT_LIST_DIR}/../../tools/iriver.c
147 ${CMAKE_CURRENT_LIST_DIR}/../../tools/iriver.h
148 ${CMAKE_CURRENT_LIST_DIR}/../../tools/mkboot.c
149 ${CMAKE_CURRENT_LIST_DIR}/../../tools/mkboot.h
150 ${CMAKE_CURRENT_LIST_DIR}/../../tools/wavtrim.c
151 ${CMAKE_CURRENT_LIST_DIR}/../../tools/wavtrim.h
152 ${CMAKE_CURRENT_LIST_DIR}/base/archiveutil.cpp
153 ${CMAKE_CURRENT_LIST_DIR}/base/archiveutil.h
154 ${CMAKE_CURRENT_LIST_DIR}/base/autodetection.cpp
155 ${CMAKE_CURRENT_LIST_DIR}/base/autodetection.h
156 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallams.cpp
157 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallams.h
158 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallbase.cpp
159 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallbase.h
160 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallbspatch.cpp
161 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallbspatch.h
162 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallchinachip.cpp
163 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallchinachip.h
164 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallfile.cpp
165 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallfile.h
166 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallhelper.cpp
167 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallhelper.h
168 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallhex.cpp
169 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallhex.h
170 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallimx.cpp
171 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallimx.h
172 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallipod.cpp
173 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallipod.h
174 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallmi4.cpp
175 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallmi4.h
176 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallmpio.cpp
177 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallmpio.h
178 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstalls5l.cpp
179 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstalls5l.h
180 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallsansa.cpp
181 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallsansa.h
182 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstalltcc.cpp
183 ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstalltcc.h
184 ${CMAKE_CURRENT_LIST_DIR}/base/encoderbase.cpp
185 ${CMAKE_CURRENT_LIST_DIR}/base/encoderbase.h
186 ${CMAKE_CURRENT_LIST_DIR}/base/encoderexe.cpp
187 ${CMAKE_CURRENT_LIST_DIR}/base/encoderexe.h
188 ${CMAKE_CURRENT_LIST_DIR}/base/encoderlame.cpp
189 ${CMAKE_CURRENT_LIST_DIR}/base/encoderlame.h
190 ${CMAKE_CURRENT_LIST_DIR}/base/encoderrbspeex.cpp
191 ${CMAKE_CURRENT_LIST_DIR}/base/encoderrbspeex.h
192 ${CMAKE_CURRENT_LIST_DIR}/base/encttssettings.cpp
193 ${CMAKE_CURRENT_LIST_DIR}/base/encttssettings.h
194 ${CMAKE_CURRENT_LIST_DIR}/base/httpget.cpp
195 ${CMAKE_CURRENT_LIST_DIR}/base/httpget.h
196 ${CMAKE_CURRENT_LIST_DIR}/base/mspackutil.cpp
197 ${CMAKE_CURRENT_LIST_DIR}/base/mspackutil.h
198 ${CMAKE_CURRENT_LIST_DIR}/base/progressloggerinterface.h
199 ${CMAKE_CURRENT_LIST_DIR}/base/playerbuildinfo.cpp
200 ${CMAKE_CURRENT_LIST_DIR}/base/playerbuildinfo.h
201 ${CMAKE_CURRENT_LIST_DIR}/base/rbsettings.cpp
202 ${CMAKE_CURRENT_LIST_DIR}/base/rbsettings.h
203 ${CMAKE_CURRENT_LIST_DIR}/base/rockboxinfo.cpp
204 ${CMAKE_CURRENT_LIST_DIR}/base/rockboxinfo.h
205 ${CMAKE_CURRENT_LIST_DIR}/base/system.cpp
206 ${CMAKE_CURRENT_LIST_DIR}/base/system.h
207 ${CMAKE_CURRENT_LIST_DIR}/base/talkfile.cpp
208 ${CMAKE_CURRENT_LIST_DIR}/base/talkfile.h
209 ${CMAKE_CURRENT_LIST_DIR}/base/talkgenerator.cpp
210 ${CMAKE_CURRENT_LIST_DIR}/base/talkgenerator.h
211 ${CMAKE_CURRENT_LIST_DIR}/base/ttsbase.cpp
212 ${CMAKE_CURRENT_LIST_DIR}/base/ttsbase.h
213 ${CMAKE_CURRENT_LIST_DIR}/base/ttsespeak.h
214 ${CMAKE_CURRENT_LIST_DIR}/base/ttsespeakng.h
215 ${CMAKE_CURRENT_LIST_DIR}/base/ttsexes.cpp
216 ${CMAKE_CURRENT_LIST_DIR}/base/ttsexes.h
217 ${CMAKE_CURRENT_LIST_DIR}/base/ttsfestival.cpp
218 ${CMAKE_CURRENT_LIST_DIR}/base/ttsfestival.h
219 ${CMAKE_CURRENT_LIST_DIR}/base/ttsflite.h
220 ${CMAKE_CURRENT_LIST_DIR}/base/ttsmimic.h
221 ${CMAKE_CURRENT_LIST_DIR}/base/ttsmssp.h
222 ${CMAKE_CURRENT_LIST_DIR}/base/ttssapi.cpp
223 ${CMAKE_CURRENT_LIST_DIR}/base/ttssapi.h
224 ${CMAKE_CURRENT_LIST_DIR}/base/ttssapi4.h
225 ${CMAKE_CURRENT_LIST_DIR}/base/ttsswift.h
226 ${CMAKE_CURRENT_LIST_DIR}/base/uninstall.cpp
227 ${CMAKE_CURRENT_LIST_DIR}/base/uninstall.h
228 ${CMAKE_CURRENT_LIST_DIR}/base/utils.cpp
229 ${CMAKE_CURRENT_LIST_DIR}/base/utils.h
230 ${CMAKE_CURRENT_LIST_DIR}/base/voicefile.cpp
231 ${CMAKE_CURRENT_LIST_DIR}/base/voicefile.h
232 ${CMAKE_CURRENT_LIST_DIR}/base/zipinstaller.cpp
233 ${CMAKE_CURRENT_LIST_DIR}/base/zipinstaller.h
234 ${CMAKE_CURRENT_LIST_DIR}/base/ziputil.cpp
235 ${CMAKE_CURRENT_LIST_DIR}/base/ziputil.h
236 )
237
238if(APPLE)
239 target_sources(rbbase PRIVATE
240 ${CMAKE_CURRENT_LIST_DIR}/base/ttscarbon.cpp
241 ${CMAKE_CURRENT_LIST_DIR}/base/ttscarbon.h)
242endif()
243
244target_link_libraries(rbbase
245 cutelogger quazip mspack bspatch rbspeex voicefont
246 sansapatcher ipodpatcher chinachippatcher
247 mkamsboot mkimxboot mkmpioboot mktccboot mks5lboot
248 Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network)
249target_include_directories(rbbase PUBLIC ${CMAKE_CURRENT_LIST_DIR}/base)
250target_include_directories(rbbase PRIVATE ${CMAKE_CURRENT_LIST_DIR})
251target_include_directories(rbbase PUBLIC ${CMAKE_CURRENT_LIST_DIR}/../../tools)
252target_compile_definitions(rbbase PUBLIC RBUTIL _LARGEFILE64_SOURCE UNICODE)
253target_compile_definitions(rbbase PRIVATE QT_DEPRECATED_WARNINGS)
254if(WIN32)
255 target_link_libraries(rbbase setupapi ws2_32 netapi32 crypt32 iphlpapi)
256elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
257 target_link_libraries(rbbase PkgConfig::libusb)
258elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
259 target_link_libraries(rbbase ${FRAMEWORK_IOKIT} ${FRAMEWORK_COREFOUNDATION}
260 ${FRAMEWORK_CARBON} ${FRAMEWORK_SYSTEMCONFIGURATION} ${FRAMEWORK_CORESERVICES})
261endif()
262set_property(TARGET rbbase PROPERTY AUTOMOC ON)
263
264# TODO: Upstream has cmake support, use that instead.
265add_library(cutelogger)
266# need to put those separate, otherwise cmake will not add them correctly -- seems to be related to moc'ing.
267target_sources(cutelogger PUBLIC
268 ${CMAKE_CURRENT_LIST_DIR}/logger/include/AbstractAppender.h
269 ${CMAKE_CURRENT_LIST_DIR}/logger/include/AbstractStringAppender.h
270 ${CMAKE_CURRENT_LIST_DIR}/logger/include/ConsoleAppender.h
271 ${CMAKE_CURRENT_LIST_DIR}/logger/include/CuteLogger_global.h
272 ${CMAKE_CURRENT_LIST_DIR}/logger/include/FileAppender.h
273 ${CMAKE_CURRENT_LIST_DIR}/logger/include/Logger.h
274 #${CMAKE_CURRENT_LIST_DIR}/logger/include/OutputDebugAppender.h
275 ${CMAKE_CURRENT_LIST_DIR}/logger/src/AbstractAppender.cpp
276 ${CMAKE_CURRENT_LIST_DIR}/logger/src/AbstractStringAppender.cpp
277 ${CMAKE_CURRENT_LIST_DIR}/logger/src/ConsoleAppender.cpp
278 ${CMAKE_CURRENT_LIST_DIR}/logger/src/FileAppender.cpp
279 ${CMAKE_CURRENT_LIST_DIR}/logger/src/Logger.cpp
280 #${CMAKE_CURRENT_LIST_DIR}/logger/src/OutputDebugAppender.cpp
281 )
282target_include_directories(cutelogger PUBLIC ${CMAKE_CURRENT_LIST_DIR}/logger/include)
283target_link_libraries(cutelogger PUBLIC Qt${QT_VERSION_MAJOR}::Core)
284target_compile_definitions(cutelogger PUBLIC CUTELOGGER_STATIC)
285set_property(TARGET cutelogger PROPERTY AUTOMOC ON)
286
287# TODO: Upstream has cmake support, use that instead.
288add_library(quazip
289 ${CMAKE_CURRENT_LIST_DIR}/quazip/ioapi.h
290 ${CMAKE_CURRENT_LIST_DIR}/quazip/minizip_crypt.h
291 ${CMAKE_CURRENT_LIST_DIR}/quazip/qioapi.cpp
292 ${CMAKE_CURRENT_LIST_DIR}/quazip/quazip.cpp
293 ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipfile.cpp
294 ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipfile.h
295 ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipfileinfo.cpp
296 ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipfileinfo.h
297 ${CMAKE_CURRENT_LIST_DIR}/quazip/quazip_global.h
298 ${CMAKE_CURRENT_LIST_DIR}/quazip/quazip.h
299 ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipnewinfo.cpp
300 ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipnewinfo.h
301 ${CMAKE_CURRENT_LIST_DIR}/quazip/unzip.c
302 ${CMAKE_CURRENT_LIST_DIR}/quazip/unzip.h
303 ${CMAKE_CURRENT_LIST_DIR}/quazip/zip.c
304 ${CMAKE_CURRENT_LIST_DIR}/quazip/zip.h
305 )
306target_include_directories(quazip PUBLIC ${CMAKE_CURRENT_LIST_DIR}/quazip)
307target_link_libraries(quazip z Qt${QT_VERSION_MAJOR}::Core)
308if(QT_VERSION_MAJOR EQUAL 6)
309 target_link_libraries(quazip Qt${QT_VERSION_MAJOR}::Core5Compat)
310endif()
311target_compile_definitions(quazip PUBLIC QUAZIP_STATIC)
312set_property(TARGET quazip PROPERTY AUTOMOC ON)
313
314add_library(mspack
315 mspack/cabc.c
316 mspack/cabd.c
317 mspack/cab.h
318 #mspack/chmc.c
319 #mspack/chmd.c
320 #mspack/chm.h
321 mspack/des.h
322 #mspack/hlpc.c
323 #mspack/hlpd.c
324 #mspack/hlp.h
325 #mspack/kwajc.c
326 #mspack/kwajd.c
327 #mspack/kwaj.h
328 #mspack/litc.c
329 #mspack/litd.c
330 #mspack/lit.h
331 #mspack/lzssd.c
332 #mspack/lzss.h
333 mspack/lzxc.c
334 mspack/lzxd.c
335 mspack/lzx.h
336 mspack/mspack.h
337 mspack/mszipc.c
338 mspack/mszipd.c
339 mspack/mszip.h
340 mspack/qtmd.c
341 mspack/qtm.h
342 mspack/readbits.h
343 mspack/readhuff.h
344 mspack/sha.h
345 mspack/system-mspack.c
346 mspack/system-mspack.h
347 #mspack/szddc.c
348 #mspack/szddd.c
349 #mspack/szdd.h
350 )
351
352target_include_directories(mspack PUBLIC ${CMAKE_CURRENT_LIST_DIR}/mspack)
353
354
355# Unit tests
356add_executable(test_compareversion
357 base/utils.cpp
358 base/utils.h
359 test/stubs/stubs-compareversion.cpp
360 test/test-compareversion.cpp)
361
362target_link_libraries(test_compareversion Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test)
363target_compile_definitions(test_compareversion PRIVATE UNICODE)
364if(APPLE)
365 target_link_libraries(test_compareversion ${FRAMEWORK_IOKIT} ${FRAMEWORK_COREFOUNDATION}
366 ${FRAMEWORK_CARBON} ${FRAMEWORK_SYSTEMCONFIGURATION} ${FRAMEWORK_CORESERVICES})
367endif()
368target_include_directories(test_compareversion PRIVATE base test/stubs)
369add_test(test_compareversion test_compareversion)
370set_property(TARGET test_compareversion PROPERTY AUTOMOC ON)
371
372add_executable(test_httpget
373 test/test-httpget.cpp
374 base/httpget.cpp
375 base/httpget.h)
376target_link_libraries(test_httpget Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test Qt${QT_VERSION_MAJOR}::Network)
377target_include_directories(test_httpget PRIVATE base test/stubs)
378add_test(test_httpget test_httpget)
379set_property(TARGET test_httpget PROPERTY AUTOMOC ON)
380
381add_executable(test_playerbuildinfo
382 base/playerbuildinfo.cpp
383 base/playerbuildinfo.h
384 base/rbsettings.h
385 base/rockboxinfo.h
386 rbutilqt.qrc # needed for rbutil.ini resource.
387 test/stubs/stubs-playerbuildinfo.cpp
388 test/test-playerbuildinfo.cpp)
389target_link_libraries(test_playerbuildinfo Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test)
390target_include_directories(test_playerbuildinfo PRIVATE base test/stubs)
391add_test(test_playerbuildinfo test_playerbuildinfo)
392set_property(TARGET test_playerbuildinfo PROPERTY AUTOMOC ON)
393set_property(TARGET test_playerbuildinfo PROPERTY AUTORCC ON)
394
395add_executable(test_rockboxinfo
396 base/rockboxinfo.cpp
397 base/rockboxinfo.h
398 test/test-rockboxinfo.cpp)
399
400target_link_libraries(test_rockboxinfo Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test)
401target_include_directories(test_rockboxinfo PRIVATE base test/stubs)
402target_compile_definitions(test_rockboxinfo PRIVATE UNICODE)
403add_test(test_rockboxinfo test_rockboxinfo)
404set_property(TARGET test_rockboxinfo PROPERTY AUTOMOC ON)
405
406