summaryrefslogtreecommitdiff
path: root/utils/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'utils/CMakeLists.txt')
-rw-r--r--utils/CMakeLists.txt717
1 files changed, 717 insertions, 0 deletions
diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt
new file mode 100644
index 0000000000..1536465e3b
--- /dev/null
+++ b/utils/CMakeLists.txt
@@ -0,0 +1,717 @@
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#
15cmake_minimum_required(VERSION 3.12)
16project(RockboxUtils)
17
18set (CMAKE_EXPORT_COMPILE_COMMANDS ON)
19
20find_program(CCACHE_PROGRAM ccache)
21if(CCACHE_PROGRAM)
22 message("-- Found ccache, enabling")
23 set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_PROGRAM}")
24 set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PROGRAM}")
25endif()
26
27# Global compiler options
28if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
29 # Clang and AppleClang
30 if (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
31 # using clang with clang-cl front end
32 elseif (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "GNU")
33 # using clang with regular front end
34 add_compile_options(-Wall -Wextra)
35 endif()
36elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
37 add_compile_options(-Wall -Wextra)
38endif()
39
40
41enable_testing()
42
43# Qt
44find_package(QT NAMES Qt6 Qt5 REQUIRED)
45if(QT_VERSION_MAJOR EQUAL 5)
46 find_package(Qt5 COMPONENTS Core Widgets Svg Multimedia Network Test LinguistTools REQUIRED)
47else()
48 find_package(Qt6 REQUIRED COMPONENTS Core Core5Compat Widgets Svg Multimedia Network LinguistTools
49 OPTIONAL_COMPONENTS Test)
50endif()
51message("-- Found Qt${QT_VERSION_MAJOR}: ${Qt${QT_VERSION_MAJOR}_DIR}")
52
53# If we're on Linux, try to find the used libs in the system.
54if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
55 # required system libs
56 find_package(PkgConfig)
57 pkg_check_modules(libusb QUIET REQUIRED IMPORTED_TARGET libusb-1.0)
58 message("-- Found libusb: ${libusb_LINK_LIBRARIES}")
59
60 # optional system libs.
61 pkg_check_modules(speex QUIET IMPORTED_TARGET speex speexdsp)
62 if (${speex_FOUND})
63 message("-- Found speex: ${speex_LINK_LIBRARIES}")
64 else()
65 message("-- Could not find system speex, using our own copy.")
66 endif()
67endif()
68
69if(APPLE)
70 find_library(FRAMEWORK_IOKIT IOKit)
71 find_library(FRAMEWORK_COREFOUNDATION CoreFoundation)
72 find_library(FRAMEWORK_CARBON Carbon)
73 find_library(FRAMEWORK_SYSTEMCONFIGURATION SystemConfiguration)
74 find_library(FRAMEWORK_CORESERVICES CoreServices)
75endif()
76
77set(RBUTIL_TS_FILES
78 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_cs.ts
79 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_de.ts
80 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_fi.ts
81 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_fr.ts
82 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_gr.ts
83 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_he.ts
84 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_it.ts
85 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_ja.ts
86 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_nl.ts
87 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_pl.ts
88 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_pt_BR.ts
89 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_pt.ts
90 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_ru.ts
91 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_tr.ts
92 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_zh_CN.ts
93 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_zh_TW.ts
94 )
95if(QT_VERSION_MAJOR EQUAL 5)
96 qt5_add_translation(RBUTIL_QM_FILES ${RBUTIL_TS_FILES})
97else()
98 qt6_add_translation(RBUTIL_QM_FILES ${RBUTIL_TS_FILES})
99endif()
100
101# The qrc file searches input files based on its location, and the qm files are
102# generated in the build dir. Copy the qrc file to the build dir, make it
103# depend on the qm files. cmake will then get deps right.
104add_custom_command(
105 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rbutilqt-lang.qrc
106 COMMAND ${CMAKE_COMMAND} -E copy_if_different
107 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutilqt-lang.qrc
108 ${CMAKE_CURRENT_BINARY_DIR}
109 DEPENDS ${RBUTIL_QM_FILES}
110 )
111
112add_executable(RockboxUtility WIN32 MACOSX_BUNDLE
113 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/main.cpp
114
115 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/aboutbox.ui
116 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/configure.cpp
117 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/configurefrm.ui
118 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/configure.h
119 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/createvoicefrm.ui
120 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/createvoicewindow.cpp
121 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/createvoicewindow.h
122 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/encttscfggui.cpp
123 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/encttscfggui.h
124 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/installtalkfrm.ui
125 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/installtalkwindow.cpp
126 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/installtalkwindow.h
127 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/preview.cpp
128 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/previewfrm.ui
129 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/preview.h
130 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/progressloggerfrm.ui
131 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/progressloggergui.cpp
132 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/progressloggergui.h
133 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqt.cpp
134 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqtfrm.ui
135 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqt.h
136 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/sysinfo.cpp
137 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/sysinfofrm.ui
138 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/sysinfo.h
139 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/systrace.cpp
140 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/systracefrm.ui
141 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/systrace.h
142 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/themesinstallfrm.ui
143 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/themesinstallwindow.cpp
144 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/themesinstallwindow.h
145 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/uninstallfrm.ui
146 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/uninstallwindow.cpp
147 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/uninstallwindow.h
148 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/version.h
149
150 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/backupdialog.cpp
151 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/backupdialogfrm.ui
152 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/backupdialog.h
153 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/changelog.cpp
154 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/changelogfrm.ui
155 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/changelog.h
156 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/comboboxviewdelegate.cpp
157 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/comboboxviewdelegate.h
158 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/infowidget.cpp
159 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/infowidgetfrm.ui
160 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/infowidget.h
161 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/selectiveinstallwidget.cpp
162 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/selectiveinstallwidgetfrm.ui
163 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/selectiveinstallwidget.h
164
165 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqt.qrc
166 ${CMAKE_CURRENT_BINARY_DIR}/rbutilqt-lang.qrc
167 )
168
169if(WIN32)
170 target_sources(RockboxUtility PRIVATE
171 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqt-win.qrc
172 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqt.rc)
173 # needed on Windows, otherwise svg icons won't show.
174 target_link_libraries(RockboxUtility Qt${QT_VERSION_MAJOR}::QSvgIconPlugin)
175endif()
176if(APPLE)
177 # MacOS Application Bundle specifics.
178 target_sources(RockboxUtility PRIVATE
179 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/icons/rbutilqt.icns)
180 set_target_properties(RockboxUtility
181 PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/Info.plist)
182 set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/rbutilqt/icons/rbutilqt.icns
183 PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
184endif()
185
186target_link_libraries(RockboxUtility rbbase cutelogger
187 Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Multimedia)
188
189target_include_directories(RockboxUtility PRIVATE
190 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui
191 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt)
192target_compile_definitions(RockboxUtility PRIVATE
193 QT_DEPRECATED_WARNINGS
194 RBUTIL _LARGEFILE64_SOURCE UNICODE)
195
196set_property(TARGET RockboxUtility PROPERTY AUTOMOC ON)
197set_property(TARGET RockboxUtility PROPERTY AUTORCC ON)
198set_property(TARGET RockboxUtility PROPERTY AUTOUIC ON)
199
200add_library(rbbase
201 ${CMAKE_CURRENT_LIST_DIR}/../tools/iriver.c
202 ${CMAKE_CURRENT_LIST_DIR}/../tools/iriver.h
203 ${CMAKE_CURRENT_LIST_DIR}/../tools/mkboot.c
204 ${CMAKE_CURRENT_LIST_DIR}/../tools/mkboot.h
205 ${CMAKE_CURRENT_LIST_DIR}/../tools/wavtrim.c
206 ${CMAKE_CURRENT_LIST_DIR}/../tools/wavtrim.h
207 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/archiveutil.cpp
208 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/archiveutil.h
209 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/autodetection.cpp
210 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/autodetection.h
211 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallams.cpp
212 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallams.h
213 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallbase.cpp
214 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallbase.h
215 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallbspatch.cpp
216 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallbspatch.h
217 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallchinachip.cpp
218 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallchinachip.h
219 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallfile.cpp
220 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallfile.h
221 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallhelper.cpp
222 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallhelper.h
223 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallhex.cpp
224 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallhex.h
225 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallimx.cpp
226 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallimx.h
227 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallipod.cpp
228 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallipod.h
229 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallmi4.cpp
230 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallmi4.h
231 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallmpio.cpp
232 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallmpio.h
233 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstalls5l.cpp
234 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstalls5l.h
235 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallsansa.cpp
236 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallsansa.h
237 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstalltcc.cpp
238 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstalltcc.h
239 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderbase.cpp
240 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderbase.h
241 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderexe.cpp
242 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderexe.h
243 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderlame.cpp
244 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderlame.h
245 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderrbspeex.cpp
246 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderrbspeex.h
247 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encttssettings.cpp
248 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encttssettings.h
249 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/httpget.cpp
250 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/httpget.h
251 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/mspackutil.cpp
252 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/mspackutil.h
253 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/progressloggerinterface.h
254 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/playerbuildinfo.cpp
255 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/playerbuildinfo.h
256 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/rbsettings.cpp
257 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/rbsettings.h
258 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/rockboxinfo.cpp
259 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/rockboxinfo.h
260 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/system.cpp
261 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/system.h
262 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/talkfile.cpp
263 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/talkfile.h
264 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/talkgenerator.cpp
265 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/talkgenerator.h
266 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsbase.cpp
267 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsbase.h
268 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsespeak.h
269 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsespeakng.h
270 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsexes.cpp
271 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsexes.h
272 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsfestival.cpp
273 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsfestival.h
274 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsflite.h
275 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsmimic.h
276 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsmssp.h
277 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttssapi.cpp
278 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttssapi.h
279 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttssapi4.h
280 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsswift.h
281 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/uninstall.cpp
282 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/uninstall.h
283 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/utils.cpp
284 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/utils.h
285 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/voicefile.cpp
286 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/voicefile.h
287 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/zipinstaller.cpp
288 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/zipinstaller.h
289 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ziputil.cpp
290 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ziputil.h
291 )
292
293if(APPLE)
294 target_sources(rbbase PRIVATE
295 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttscarbon.cpp
296 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttscarbon.h)
297endif()
298
299target_link_libraries(rbbase
300 cutelogger quazip mspack bspatch rbspeex voicefont
301 sansapatcher ipodpatcher chinachippatcher
302 mkamsboot mkimxboot mkmpioboot mktccboot mks5lboot
303 Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network)
304target_include_directories(rbbase PUBLIC ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base)
305target_include_directories(rbbase PRIVATE ${CMAKE_CURRENT_LIST_DIR}/rbutilqt)
306target_include_directories(rbbase PUBLIC ${CMAKE_CURRENT_LIST_DIR}/../tools)
307target_compile_definitions(rbbase PUBLIC RBUTIL _LARGEFILE64_SOURCE UNICODE)
308target_compile_definitions(rbbase PRIVATE QT_DEPRECATED_WARNINGS)
309if(WIN32)
310 target_link_libraries(rbbase setupapi ws2_32 netapi32 crypt32 iphlpapi)
311elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
312 target_link_libraries(rbbase PkgConfig::libusb)
313elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
314 target_link_libraries(rbbase ${FRAMEWORK_IOKIT} ${FRAMEWORK_COREFOUNDATION}
315 ${FRAMEWORK_CARBON} ${FRAMEWORK_SYSTEMCONFIGURATION} ${FRAMEWORK_CORESERVICES})
316endif()
317set_property(TARGET rbbase PROPERTY AUTOMOC ON)
318
319# TODO: Upstream has cmake support, use that instead.
320add_library(cutelogger)
321# need to put those separate, otherwise cmake will not add them correctly -- seems to be related to moc'ing.
322target_sources(cutelogger PUBLIC
323 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/AbstractAppender.h
324 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/AbstractStringAppender.h
325 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/ConsoleAppender.h
326 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/CuteLogger_global.h
327 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/FileAppender.h
328 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/Logger.h
329 #${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/OutputDebugAppender.h
330 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/AbstractAppender.cpp
331 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/AbstractStringAppender.cpp
332 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/ConsoleAppender.cpp
333 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/FileAppender.cpp
334 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/Logger.cpp
335 #${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/OutputDebugAppender.cpp
336 )
337target_include_directories(cutelogger PUBLIC ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include)
338target_link_libraries(cutelogger PUBLIC Qt${QT_VERSION_MAJOR}::Core)
339target_compile_definitions(cutelogger PUBLIC CUTELOGGER_STATIC)
340set_property(TARGET cutelogger PROPERTY AUTOMOC ON)
341
342# TODO: Upstream has cmake support, use that instead.
343add_library(quazip
344 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/ioapi.h
345 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/minizip_crypt.h
346 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/qioapi.cpp
347 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazip.cpp
348 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipfile.cpp
349 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipfile.h
350 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipfileinfo.cpp
351 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipfileinfo.h
352 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazip_global.h
353 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazip.h
354 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipnewinfo.cpp
355 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipnewinfo.h
356 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/unzip.c
357 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/unzip.h
358 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/zip.c
359 ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/zip.h
360 )
361target_include_directories(quazip PUBLIC ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip)
362target_link_libraries(quazip z Qt${QT_VERSION_MAJOR}::Core)
363if(QT_VERSION_MAJOR EQUAL 6)
364 target_link_libraries(quazip Qt${QT_VERSION_MAJOR}::Core5Compat)
365endif()
366target_compile_definitions(quazip PUBLIC QUAZIP_STATIC)
367set_property(TARGET quazip PROPERTY AUTOMOC ON)
368
369add_library(mspack
370 rbutilqt/mspack/cabc.c
371 rbutilqt/mspack/cabd.c
372 rbutilqt/mspack/cab.h
373 #rbutilqt/mspack/chmc.c
374 #rbutilqt/mspack/chmd.c
375 #rbutilqt/mspack/chm.h
376 rbutilqt/mspack/des.h
377 #rbutilqt/mspack/hlpc.c
378 #rbutilqt/mspack/hlpd.c
379 #rbutilqt/mspack/hlp.h
380 #rbutilqt/mspack/kwajc.c
381 #rbutilqt/mspack/kwajd.c
382 #rbutilqt/mspack/kwaj.h
383 #rbutilqt/mspack/litc.c
384 #rbutilqt/mspack/litd.c
385 #rbutilqt/mspack/lit.h
386 #rbutilqt/mspack/lzssd.c
387 #rbutilqt/mspack/lzss.h
388 rbutilqt/mspack/lzxc.c
389 rbutilqt/mspack/lzxd.c
390 rbutilqt/mspack/lzx.h
391 rbutilqt/mspack/mspack.h
392 rbutilqt/mspack/mszipc.c
393 rbutilqt/mspack/mszipd.c
394 rbutilqt/mspack/mszip.h
395 rbutilqt/mspack/qtmd.c
396 rbutilqt/mspack/qtm.h
397 rbutilqt/mspack/readbits.h
398 rbutilqt/mspack/readhuff.h
399 rbutilqt/mspack/sha.h
400 rbutilqt/mspack/system-mspack.c
401 rbutilqt/mspack/system-mspack.h
402 #rbutilqt/mspack/szddc.c
403 #rbutilqt/mspack/szddd.c
404 #rbutilqt/mspack/szdd.h
405 )
406
407target_include_directories(mspack PUBLIC ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/mspack)
408
409
410add_library(ipodpatcher
411 ipodpatcher/arc4.h
412 ipodpatcher/arc4.c
413 ipodpatcher/fat32format.c
414 ipodpatcher/ipodpatcher.c
415 ipodpatcher/ipodio.h
416 ipodpatcher/ipodpatcher.h
417 ipodpatcher/parttypes.h
418 )
419if(WIN32)
420 target_sources(ipodpatcher PRIVATE
421 ipodpatcher/ipodio-win32.c
422 ipodpatcher/ipodio-win32-scsi.c
423 )
424else()
425 target_sources(ipodpatcher PRIVATE
426 ipodpatcher/ipodio-posix.c
427 )
428endif()
429target_compile_definitions(ipodpatcher PUBLIC RBUTIL _LARGEFILE64_SOURCE)
430target_include_directories(ipodpatcher PUBLIC ${CMAKE_CURRENT_LIST_DIR}/ipodpatcher)
431
432add_library(sansapatcher
433 sansapatcher/parttypes.h
434 sansapatcher/sansaio.h
435 sansapatcher/sansapatcher.c
436 sansapatcher/sansapatcher.h
437 )
438if(WIN32)
439 target_sources(sansapatcher PRIVATE
440 sansapatcher/sansaio-win32.c
441 )
442else()
443 target_sources(sansapatcher PRIVATE
444 sansapatcher/sansaio-posix.c
445 )
446endif()
447
448target_compile_definitions(sansapatcher PUBLIC RBUTIL _LARGEFILE64_SOURCE)
449target_include_directories(sansapatcher PUBLIC ${CMAKE_CURRENT_LIST_DIR}/sansapatcher)
450
451add_library(chinachippatcher
452 chinachippatcher/chinachip.c
453 chinachippatcher/chinachip.h
454 )
455target_compile_definitions(chinachippatcher PUBLIC RBUTIL _LARGEFILE64_SOURCE)
456
457add_library(mkamsboot
458 mkamsboot/dualboot.c
459 mkamsboot/dualboot.h
460 mkamsboot/md5.c
461 mkamsboot/md5.h
462 mkamsboot/mkamsboot.c
463 mkamsboot/mkamsboot.h
464 )
465
466target_compile_definitions(mkamsboot PUBLIC _LARGEFILE64_SOURCE)
467target_link_libraries(mkamsboot ucl)
468
469add_library(ucl
470 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/alloc.c
471 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/fake16.h
472 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/getbit.h
473 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/internal.h
474 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/io.c
475 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/Makefile
476 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/n2_99.ch
477 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/n2b_99.c
478 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/n2b_d.c
479 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/n2b_ds.c
480 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/n2b_to.c
481 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/n2d_99.c
482 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/n2d_d.c
483 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/n2d_ds.c
484 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/n2d_to.c
485 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/n2e_99.c
486 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/n2e_d.c
487 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/n2e_ds.c
488 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/n2e_to.c
489 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/ucl_conf.h
490 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/ucl_crc.c
491 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/ucl_dll.c
492 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/ucl_init.c
493 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/ucl_mchw.ch
494 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/ucl_ptr.c
495 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/ucl_ptr.h
496 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/ucl_str.c
497 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/ucl_swd.ch
498 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/ucl_util.c
499 ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/src/ucl_util.h
500 )
501
502target_include_directories(ucl PUBLIC ${CMAKE_CURRENT_LIST_DIR}/../tools/ucl/include)
503
504add_library(rbspeex
505 ${CMAKE_CURRENT_LIST_DIR}/../tools/rbspeex/rbspeex.c
506 ${CMAKE_CURRENT_LIST_DIR}/../tools/rbspeex/rbspeex.h
507 )
508target_compile_definitions(rbspeex PRIVATE HAVE_CONFIG_H ROCKBOX_VOICE_ENCODER STATIC)
509target_include_directories(rbspeex PUBLIC ${CMAKE_CURRENT_LIST_DIR}/../tools/rbspeex)
510
511
512if (${speex_FOUND})
513 target_link_libraries(rbspeex PUBLIC PkgConfig::speex)
514else()
515 target_sources(rbspeex PRIVATE
516 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/bits.c
517 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/cb_search.c
518 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/exc_10_16_table.c
519 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/exc_10_32_table.c
520 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/exc_20_32_table.c
521 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/exc_5_256_table.c
522 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/exc_5_64_table.c
523 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/exc_8_128_table.c
524 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/filters.c
525 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/gain_table.c
526 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/gain_table_lbr.c
527 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/hexc_10_32_table.c
528 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/hexc_table.c
529 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/high_lsp_tables.c
530 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/lsp.c
531 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/lsp_tables_nb.c
532 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/ltp.c
533 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/modes.c
534 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/modes_wb.c
535 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/nb_celp.c
536 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/quant_lsp.c
537 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/sb_celp.c
538 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/speex.c
539 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/speex_callbacks.c
540 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/lpc.c
541 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/vbr.c
542 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/vq.c
543 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/window.c
544 ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex/resample.c
545 )
546 target_include_directories(rbspeex PRIVATE ${CMAKE_CURRENT_LIST_DIR}/../lib/rbcodec/codecs/libspeex)
547endif()
548
549add_library(mkimxboot
550 mkimxboot/dualboot.c
551 mkimxboot/md5.c
552 mkimxboot/md5.h
553 mkimxboot/mkimxboot.c
554 mkimxboot/mkimxboot.h
555 )
556target_include_directories(mkimxboot PUBLIC ${CMAKE_CURRENT_LIST_DIR}/mkimxboot)
557target_link_libraries(mkimxboot sbtools)
558
559add_library(sbtools
560 imxtools/sbtools/crc.c
561 imxtools/sbtools/crypto.c
562 imxtools/sbtools/crypto.h
563 imxtools/sbtools/elf.c
564 imxtools/sbtools/elf.h
565 imxtools/sbtools/misc.c
566 imxtools/sbtools/misc.h
567 imxtools/sbtools/sb.c
568 imxtools/sbtools/sb.h
569 )
570
571target_include_directories(sbtools PUBLIC ${CMAKE_CURRENT_LIST_DIR}/imxtools/sbtools)
572target_link_libraries(sbtools PUBLIC rbtomcrypt)
573
574add_library(mkmpioboot
575 mkmpioboot/mkmpioboot.c
576 mkmpioboot/mkmpioboot.h
577 )
578target_include_directories(mkmpioboot PUBLIC ${CMAKE_CURRENT_LIST_DIR}/mkmpioboot)
579
580add_library(mktccboot
581 mktccboot/mktccboot.c
582 mktccboot/mktccboot.h
583 )
584target_include_directories(mktccboot PUBLIC ${CMAKE_CURRENT_LIST_DIR}/mktccboot)
585target_include_directories(mktccboot PRIVATE ${CMAKE_CURRENT_LIST_DIR}/../tools)
586target_link_libraries(mktccboot PUBLIC telechips)
587
588add_library(mks5lboot
589 mks5lboot/dualboot.c
590 mks5lboot/dualboot.h
591 mks5lboot/ipoddfu.c
592 mks5lboot/mkdfu.c
593 mks5lboot/mks5lboot.h
594 )
595target_include_directories(mks5lboot PUBLIC ${CMAKE_CURRENT_LIST_DIR}/mks5lboot)
596
597add_library(bspatch
598 bspatch/bspatch.c
599 bspatch/bspatch.h
600 )
601target_include_directories(bspatch PUBLIC ${CMAKE_CURRENT_LIST_DIR}/bspatch)
602target_link_libraries(bspatch bz2)
603
604add_library(voicefont
605 ${CMAKE_CURRENT_LIST_DIR}/../tools/voicefont.c
606 ${CMAKE_CURRENT_LIST_DIR}/../tools/voicefont.h
607 )
608target_include_directories(voicefont PUBLIC ${CMAKE_CURRENT_LIST_DIR}/../tools)
609target_compile_definitions(voicefont PUBLIC RBUTIL)
610
611add_library(telechips
612 ${CMAKE_CURRENT_LIST_DIR}/../tools/telechips.c
613 ${CMAKE_CURRENT_LIST_DIR}/../tools/telechips.h
614 )
615target_include_directories(telechips PUBLIC ${CMAKE_CURRENT_LIST_DIR}/../tools)
616
617find_library(LIBBZ2 bz2)
618if(${LIBBZ2} STREQUAL "LIBBZ2-NOTFOUND")
619 message("-- bz2 not found, building our own")
620 add_library(bz2
621 bzip2/blocksort.c
622 bzip2/bzlib.c
623 bzip2/bzlib.h
624 bzip2/bzlib_private.h
625 bzip2/compress.c
626 bzip2/crctable.c
627 bzip2/decompress.c
628 bzip2/huffman.c
629 bzip2/randtable.c
630 )
631 target_include_directories(bz2 PUBLIC ${CMAKE_CURRENT_LIST_DIR}/bzip2)
632else()
633 message("-- Found libbz2: ${LIBBZ2}")
634endif()
635
636add_library(rbtomcrypt
637 tomcrypt/src/ciphers/aes/aes.c
638 tomcrypt/src/ciphers/aes/aes_tab.c
639 tomcrypt/src/misc/crypt/crypt_argchk.c
640 tomcrypt/src/misc/crypt/crypt_register_cipher.c
641 tomcrypt/src/misc/crypt/crypt_cipher_is_valid.c
642 tomcrypt/src/misc/crypt/crypt_cipher_descriptor.c
643 tomcrypt/src/misc/zeromem.c
644 tomcrypt/src/misc/compare_testvector.c
645 tomcrypt/src/modes/cbc/cbc_start.c
646 tomcrypt/src/modes/cbc/cbc_decrypt.c
647 tomcrypt/src/modes/cbc/cbc_encrypt.c
648 tomcrypt/src/hashes/sha1.c
649 tomcrypt/src/headers/tomcrypt_argchk.h
650 tomcrypt/src/headers/tomcrypt_cfg.h
651 tomcrypt/src/headers/tomcrypt_cipher.h
652 tomcrypt/src/headers/tomcrypt_custom.h
653 tomcrypt/src/headers/tomcrypt.h
654 tomcrypt/src/headers/tomcrypt_hash.h
655 tomcrypt/src/headers/tomcrypt_mac.h
656 tomcrypt/src/headers/tomcrypt_macros.h
657 tomcrypt/src/headers/tomcrypt_math.h
658 tomcrypt/src/headers/tomcrypt_misc.h
659 tomcrypt/src/headers/tomcrypt_pkcs.h
660 tomcrypt/src/headers/tomcrypt_pk.h
661 tomcrypt/src/headers/tomcrypt_private.h
662 tomcrypt/src/headers/tomcrypt_prng.h
663 )
664target_include_directories(rbtomcrypt PUBLIC ${CMAKE_CURRENT_LIST_DIR}/tomcrypt/src/headers)
665
666
667# Unit tests
668add_executable(test_compareversion
669 rbutilqt/base/utils.cpp
670 rbutilqt/base/utils.h
671 rbutilqt/test/stubs/stubs-compareversion.cpp
672 rbutilqt/test/test-compareversion.cpp)
673
674target_link_libraries(test_compareversion Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test)
675target_compile_definitions(test_compareversion PRIVATE UNICODE)
676if(APPLE)
677 target_link_libraries(test_compareversion ${FRAMEWORK_IOKIT} ${FRAMEWORK_COREFOUNDATION}
678 ${FRAMEWORK_CARBON} ${FRAMEWORK_SYSTEMCONFIGURATION} ${FRAMEWORK_CORESERVICES})
679endif()
680target_include_directories(test_compareversion PRIVATE rbutilqt/base rbutilqt/test/stubs)
681add_test(test_compareversion test_compareversion)
682set_property(TARGET test_compareversion PROPERTY AUTOMOC ON)
683
684add_executable(test_httpget
685 rbutilqt/test/test-httpget.cpp
686 rbutilqt/base/httpget.cpp
687 rbutilqt/base/httpget.h)
688target_link_libraries(test_httpget Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test Qt${QT_VERSION_MAJOR}::Network)
689target_include_directories(test_httpget PRIVATE rbutilqt/base rbutilqt/test/stubs)
690add_test(test_httpget test_httpget)
691set_property(TARGET test_httpget PROPERTY AUTOMOC ON)
692
693add_executable(test_playerbuildinfo
694 rbutilqt/base/playerbuildinfo.cpp
695 rbutilqt/base/playerbuildinfo.h
696 rbutilqt/base/rbsettings.h
697 rbutilqt/base/rockboxinfo.h
698 rbutilqt/rbutilqt.qrc # needed for rbutil.ini resource.
699 rbutilqt/test/stubs/stubs-playerbuildinfo.cpp
700 rbutilqt/test/test-playerbuildinfo.cpp)
701target_link_libraries(test_playerbuildinfo Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test)
702target_include_directories(test_playerbuildinfo PRIVATE rbutilqt/base rbutilqt/test/stubs)
703add_test(test_playerbuildinfo test_playerbuildinfo)
704set_property(TARGET test_playerbuildinfo PROPERTY AUTOMOC ON)
705set_property(TARGET test_playerbuildinfo PROPERTY AUTORCC ON)
706
707add_executable(test_rockboxinfo
708 rbutilqt/base/rockboxinfo.cpp
709 rbutilqt/base/rockboxinfo.h
710 rbutilqt/test/test-rockboxinfo.cpp)
711
712target_link_libraries(test_rockboxinfo Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test)
713target_include_directories(test_rockboxinfo PRIVATE rbutilqt/base rbutilqt/test/stubs)
714target_compile_definitions(test_rockboxinfo PRIVATE UNICODE)
715add_test(test_rockboxinfo test_rockboxinfo)
716set_property(TARGET test_rockboxinfo PROPERTY AUTOMOC ON)
717