summaryrefslogtreecommitdiffstats
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)
find_library(FRAMEWORK_CORESERVICES CoreServices)
endif()
-set(RBUTIL_TS_FILES
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_cs.ts
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_de.ts
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_fi.ts
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_fr.ts
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_gr.ts
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_he.ts
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_it.ts
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_ja.ts
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_nl.ts
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_pl.ts
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_pt_BR.ts
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_pt.ts
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_ru.ts
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_tr.ts
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_zh_CN.ts
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutil_zh_TW.ts
- )
-if(QT_VERSION_MAJOR EQUAL 5)
- qt5_add_translation(RBUTIL_QM_FILES ${RBUTIL_TS_FILES})
-else()
- qt6_add_translation(RBUTIL_QM_FILES ${RBUTIL_TS_FILES})
-endif()
-
-# The qrc file searches input files based on its location, and the qm files are
-# generated in the build dir. Copy the qrc file to the build dir, make it
-# depend on the qm files. cmake will then get deps right.
-add_custom_command(
- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rbutilqt-lang.qrc
- COMMAND ${CMAKE_COMMAND} -E copy_if_different
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/lang/rbutilqt-lang.qrc
- ${CMAKE_CURRENT_BINARY_DIR}
- DEPENDS ${RBUTIL_QM_FILES}
- )
-
-add_executable(RockboxUtility WIN32 MACOSX_BUNDLE
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/main.cpp
-
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/aboutbox.ui
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/configure.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/configurefrm.ui
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/configure.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/createvoicefrm.ui
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/createvoicewindow.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/createvoicewindow.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/encttscfggui.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/encttscfggui.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/installtalkfrm.ui
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/installtalkwindow.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/installtalkwindow.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/preview.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/previewfrm.ui
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/preview.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/progressloggerfrm.ui
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/progressloggergui.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/progressloggergui.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqt.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqtfrm.ui
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqt.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/sysinfo.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/sysinfofrm.ui
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/sysinfo.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/systrace.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/systracefrm.ui
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/systrace.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/themesinstallfrm.ui
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/themesinstallwindow.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/themesinstallwindow.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/uninstallfrm.ui
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/uninstallwindow.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/uninstallwindow.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/version.h
-
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/backupdialog.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/backupdialogfrm.ui
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/backupdialog.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/changelog.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/changelogfrm.ui
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/changelog.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/comboboxviewdelegate.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/comboboxviewdelegate.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/infowidget.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/infowidgetfrm.ui
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/infowidget.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/selectiveinstallwidget.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/selectiveinstallwidgetfrm.ui
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui/selectiveinstallwidget.h
-
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqt.qrc
- ${CMAKE_CURRENT_BINARY_DIR}/rbutilqt-lang.qrc
- )
-
-if(WIN32)
- target_sources(RockboxUtility PRIVATE
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqt-win.qrc
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/rbutilqt.rc)
- # needed on Windows, otherwise svg icons won't show.
- target_link_libraries(RockboxUtility Qt${QT_VERSION_MAJOR}::QSvgIconPlugin)
-endif()
-if(APPLE)
- # MacOS Application Bundle specifics.
- target_sources(RockboxUtility PRIVATE
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/icons/rbutilqt.icns)
- set_target_properties(RockboxUtility
- PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/Info.plist)
- set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/rbutilqt/icons/rbutilqt.icns
- PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
-endif()
-
-target_link_libraries(RockboxUtility rbbase cutelogger
- Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Multimedia)
-
-target_include_directories(RockboxUtility PRIVATE
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/gui
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt)
-target_compile_definitions(RockboxUtility PRIVATE
- QT_DEPRECATED_WARNINGS
- RBUTIL _LARGEFILE64_SOURCE UNICODE)
-
-set_property(TARGET RockboxUtility PROPERTY AUTOMOC ON)
-set_property(TARGET RockboxUtility PROPERTY AUTORCC ON)
-set_property(TARGET RockboxUtility PROPERTY AUTOUIC ON)
-
-include(${CMAKE_CURRENT_LIST_DIR}/cmake/deploy.cmake)
-deploy_qt(RockboxUtility
- ${QT_BINDIR}
- ${CMAKE_CURRENT_LIST_DIR}/../docs/logo/rockbox-clef.svg
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/RockboxUtility.desktop
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/dmgbuild.cfg)
-
-add_library(rbbase
- ${CMAKE_CURRENT_LIST_DIR}/../tools/iriver.c
- ${CMAKE_CURRENT_LIST_DIR}/../tools/iriver.h
- ${CMAKE_CURRENT_LIST_DIR}/../tools/mkboot.c
- ${CMAKE_CURRENT_LIST_DIR}/../tools/mkboot.h
- ${CMAKE_CURRENT_LIST_DIR}/../tools/wavtrim.c
- ${CMAKE_CURRENT_LIST_DIR}/../tools/wavtrim.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/archiveutil.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/archiveutil.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/autodetection.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/autodetection.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallams.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallams.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallbase.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallbase.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallbspatch.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallbspatch.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallchinachip.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallchinachip.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallfile.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallfile.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallhelper.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallhelper.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallhex.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallhex.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallimx.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallimx.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallipod.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallipod.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallmi4.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallmi4.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallmpio.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallmpio.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstalls5l.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstalls5l.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallsansa.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstallsansa.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstalltcc.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/bootloaderinstalltcc.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderbase.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderbase.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderexe.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderexe.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderlame.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderlame.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderrbspeex.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encoderrbspeex.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encttssettings.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/encttssettings.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/httpget.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/httpget.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/mspackutil.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/mspackutil.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/progressloggerinterface.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/playerbuildinfo.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/playerbuildinfo.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/rbsettings.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/rbsettings.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/rockboxinfo.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/rockboxinfo.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/system.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/system.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/talkfile.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/talkfile.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/talkgenerator.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/talkgenerator.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsbase.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsbase.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsespeak.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsespeakng.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsexes.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsexes.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsfestival.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsfestival.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsflite.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsmimic.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsmssp.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttssapi.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttssapi.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttssapi4.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttsswift.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/uninstall.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/uninstall.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/utils.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/utils.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/voicefile.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/voicefile.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/zipinstaller.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/zipinstaller.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ziputil.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ziputil.h
- )
-
-if(APPLE)
- target_sources(rbbase PRIVATE
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttscarbon.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base/ttscarbon.h)
-endif()
-
-target_link_libraries(rbbase
- cutelogger quazip mspack bspatch rbspeex voicefont
- sansapatcher ipodpatcher chinachippatcher
- mkamsboot mkimxboot mkmpioboot mktccboot mks5lboot
- Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network)
-target_include_directories(rbbase PUBLIC ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/base)
-target_include_directories(rbbase PRIVATE ${CMAKE_CURRENT_LIST_DIR}/rbutilqt)
-target_include_directories(rbbase PUBLIC ${CMAKE_CURRENT_LIST_DIR}/../tools)
-target_compile_definitions(rbbase PUBLIC RBUTIL _LARGEFILE64_SOURCE UNICODE)
-target_compile_definitions(rbbase PRIVATE QT_DEPRECATED_WARNINGS)
-if(WIN32)
- target_link_libraries(rbbase setupapi ws2_32 netapi32 crypt32 iphlpapi)
-elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
- target_link_libraries(rbbase PkgConfig::libusb)
-elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
- target_link_libraries(rbbase ${FRAMEWORK_IOKIT} ${FRAMEWORK_COREFOUNDATION}
- ${FRAMEWORK_CARBON} ${FRAMEWORK_SYSTEMCONFIGURATION} ${FRAMEWORK_CORESERVICES})
-endif()
-set_property(TARGET rbbase PROPERTY AUTOMOC ON)
-
-# TODO: Upstream has cmake support, use that instead.
-add_library(cutelogger)
-# need to put those separate, otherwise cmake will not add them correctly -- seems to be related to moc'ing.
-target_sources(cutelogger PUBLIC
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/AbstractAppender.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/AbstractStringAppender.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/ConsoleAppender.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/CuteLogger_global.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/FileAppender.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/Logger.h
- #${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include/OutputDebugAppender.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/AbstractAppender.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/AbstractStringAppender.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/ConsoleAppender.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/FileAppender.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/Logger.cpp
- #${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/src/OutputDebugAppender.cpp
- )
-target_include_directories(cutelogger PUBLIC ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/logger/include)
-target_link_libraries(cutelogger PUBLIC Qt${QT_VERSION_MAJOR}::Core)
-target_compile_definitions(cutelogger PUBLIC CUTELOGGER_STATIC)
-set_property(TARGET cutelogger PROPERTY AUTOMOC ON)
-
-# TODO: Upstream has cmake support, use that instead.
-add_library(quazip
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/ioapi.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/minizip_crypt.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/qioapi.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazip.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipfile.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipfile.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipfileinfo.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipfileinfo.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazip_global.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazip.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipnewinfo.cpp
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/quazipnewinfo.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/unzip.c
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/unzip.h
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/zip.c
- ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip/zip.h
- )
-target_include_directories(quazip PUBLIC ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/quazip)
-target_link_libraries(quazip z Qt${QT_VERSION_MAJOR}::Core)
-if(QT_VERSION_MAJOR EQUAL 6)
- target_link_libraries(quazip Qt${QT_VERSION_MAJOR}::Core5Compat)
-endif()
-target_compile_definitions(quazip PUBLIC QUAZIP_STATIC)
-set_property(TARGET quazip PROPERTY AUTOMOC ON)
-
-add_library(mspack
- rbutilqt/mspack/cabc.c
- rbutilqt/mspack/cabd.c
- rbutilqt/mspack/cab.h
- #rbutilqt/mspack/chmc.c
- #rbutilqt/mspack/chmd.c
- #rbutilqt/mspack/chm.h
- rbutilqt/mspack/des.h
- #rbutilqt/mspack/hlpc.c
- #rbutilqt/mspack/hlpd.c
- #rbutilqt/mspack/hlp.h
- #rbutilqt/mspack/kwajc.c
- #rbutilqt/mspack/kwajd.c
- #rbutilqt/mspack/kwaj.h
- #rbutilqt/mspack/litc.c
- #rbutilqt/mspack/litd.c
- #rbutilqt/mspack/lit.h
- #rbutilqt/mspack/lzssd.c
- #rbutilqt/mspack/lzss.h
- rbutilqt/mspack/lzxc.c
- rbutilqt/mspack/lzxd.c
- rbutilqt/mspack/lzx.h
- rbutilqt/mspack/mspack.h
- rbutilqt/mspack/mszipc.c
- rbutilqt/mspack/mszipd.c
- rbutilqt/mspack/mszip.h
- rbutilqt/mspack/qtmd.c
- rbutilqt/mspack/qtm.h
- rbutilqt/mspack/readbits.h
- rbutilqt/mspack/readhuff.h
- rbutilqt/mspack/sha.h
- rbutilqt/mspack/system-mspack.c
- rbutilqt/mspack/system-mspack.h
- #rbutilqt/mspack/szddc.c
- #rbutilqt/mspack/szddd.c
- #rbutilqt/mspack/szdd.h
- )
-
-target_include_directories(mspack PUBLIC ${CMAKE_CURRENT_LIST_DIR}/rbutilqt/mspack)
-
add_library(ipodpatcher
ipodpatcher/arc4.h
@@ -672,55 +333,5 @@ add_library(rbtomcrypt
)
target_include_directories(rbtomcrypt PUBLIC ${CMAKE_CURRENT_LIST_DIR}/tomcrypt/src/headers)
-
-# Unit tests
-add_executable(test_compareversion
- rbutilqt/base/utils.cpp
- rbutilqt/base/utils.h
- rbutilqt/test/stubs/stubs-compareversion.cpp
- rbutilqt/test/test-compareversion.cpp)
-
-target_link_libraries(test_compareversion Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test)
-target_compile_definitions(test_compareversion PRIVATE UNICODE)
-if(APPLE)
- target_link_libraries(test_compareversion ${FRAMEWORK_IOKIT} ${FRAMEWORK_COREFOUNDATION}
- ${FRAMEWORK_CARBON} ${FRAMEWORK_SYSTEMCONFIGURATION} ${FRAMEWORK_CORESERVICES})
-endif()
-target_include_directories(test_compareversion PRIVATE rbutilqt/base rbutilqt/test/stubs)
-add_test(test_compareversion test_compareversion)
-set_property(TARGET test_compareversion PROPERTY AUTOMOC ON)
-
-add_executable(test_httpget
- rbutilqt/test/test-httpget.cpp
- rbutilqt/base/httpget.cpp
- rbutilqt/base/httpget.h)
-target_link_libraries(test_httpget Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test Qt${QT_VERSION_MAJOR}::Network)
-target_include_directories(test_httpget PRIVATE rbutilqt/base rbutilqt/test/stubs)
-add_test(test_httpget test_httpget)
-set_property(TARGET test_httpget PROPERTY AUTOMOC ON)
-
-add_executable(test_playerbuildinfo
- rbutilqt/base/playerbuildinfo.cpp
- rbutilqt/base/playerbuildinfo.h
- rbutilqt/base/rbsettings.h
- rbutilqt/base/rockboxinfo.h
- rbutilqt/rbutilqt.qrc # needed for rbutil.ini resource.
- rbutilqt/test/stubs/stubs-playerbuildinfo.cpp
- rbutilqt/test/test-playerbuildinfo.cpp)
-target_link_libraries(test_playerbuildinfo Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test)
-target_include_directories(test_playerbuildinfo PRIVATE rbutilqt/base rbutilqt/test/stubs)
-add_test(test_playerbuildinfo test_playerbuildinfo)
-set_property(TARGET test_playerbuildinfo PROPERTY AUTOMOC ON)
-set_property(TARGET test_playerbuildinfo PROPERTY AUTORCC ON)
-
-add_executable(test_rockboxinfo
- rbutilqt/base/rockboxinfo.cpp
- rbutilqt/base/rockboxinfo.h
- rbutilqt/test/test-rockboxinfo.cpp)
-
-target_link_libraries(test_rockboxinfo Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test)
-target_include_directories(test_rockboxinfo PRIVATE rbutilqt/base rbutilqt/test/stubs)
-target_compile_definitions(test_rockboxinfo PRIVATE UNICODE)
-add_test(test_rockboxinfo test_rockboxinfo)
-set_property(TARGET test_rockboxinfo PROPERTY AUTOMOC ON)
-
+include(${CMAKE_CURRENT_LIST_DIR}/cmake/deploy.cmake)
+add_subdirectory(rbutilqt)
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 @@
+#
+# __________ __ ___.
+# Open \______ \ ____ ____ | | _\_ |__ _______ ___
+# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+# \/ \/ \/ \/ \/
+#
+# All files in this archive are subject to the GNU General Public License.
+# See the file COPYING in the source tree root for full license agreement.
+#
+# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+# KIND, either express or implied.
+#
+
+set(RBUTIL_TS_FILES
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_cs.ts
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_de.ts
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_fi.ts
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_fr.ts
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_gr.ts
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_he.ts
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_it.ts
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_ja.ts
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_nl.ts
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_pl.ts
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_pt_BR.ts
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_pt.ts
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_ru.ts
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_tr.ts
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_zh_CN.ts
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutil_zh_TW.ts
+ )
+if(QT_VERSION_MAJOR EQUAL 5)
+ qt5_add_translation(RBUTIL_QM_FILES ${RBUTIL_TS_FILES})
+else()
+ qt6_add_translation(RBUTIL_QM_FILES ${RBUTIL_TS_FILES})
+endif()
+
+# The qrc file searches input files based on its location, and the qm files are
+# generated in the build dir. Copy the qrc file to the build dir, make it
+# depend on the qm files. cmake will then get deps right.
+add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rbutilqt-lang.qrc
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${CMAKE_CURRENT_LIST_DIR}/lang/rbutilqt-lang.qrc
+ ${CMAKE_CURRENT_BINARY_DIR}
+ DEPENDS ${RBUTIL_QM_FILES}
+ )
+
+add_executable(RockboxUtility WIN32 MACOSX_BUNDLE
+ ${CMAKE_CURRENT_LIST_DIR}/main.cpp
+
+ ${CMAKE_CURRENT_LIST_DIR}/aboutbox.ui
+ ${CMAKE_CURRENT_LIST_DIR}/configure.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/configurefrm.ui
+ ${CMAKE_CURRENT_LIST_DIR}/configure.h
+ ${CMAKE_CURRENT_LIST_DIR}/createvoicefrm.ui
+ ${CMAKE_CURRENT_LIST_DIR}/createvoicewindow.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/createvoicewindow.h
+ ${CMAKE_CURRENT_LIST_DIR}/encttscfggui.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/encttscfggui.h
+ ${CMAKE_CURRENT_LIST_DIR}/installtalkfrm.ui
+ ${CMAKE_CURRENT_LIST_DIR}/installtalkwindow.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/installtalkwindow.h
+ ${CMAKE_CURRENT_LIST_DIR}/preview.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/previewfrm.ui
+ ${CMAKE_CURRENT_LIST_DIR}/preview.h
+ ${CMAKE_CURRENT_LIST_DIR}/progressloggerfrm.ui
+ ${CMAKE_CURRENT_LIST_DIR}/progressloggergui.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/progressloggergui.h
+ ${CMAKE_CURRENT_LIST_DIR}/rbutilqt.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/rbutilqtfrm.ui
+ ${CMAKE_CURRENT_LIST_DIR}/rbutilqt.h
+ ${CMAKE_CURRENT_LIST_DIR}/sysinfo.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/sysinfofrm.ui
+ ${CMAKE_CURRENT_LIST_DIR}/sysinfo.h
+ ${CMAKE_CURRENT_LIST_DIR}/systrace.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/systracefrm.ui
+ ${CMAKE_CURRENT_LIST_DIR}/systrace.h
+ ${CMAKE_CURRENT_LIST_DIR}/themesinstallfrm.ui
+ ${CMAKE_CURRENT_LIST_DIR}/themesinstallwindow.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/themesinstallwindow.h
+ ${CMAKE_CURRENT_LIST_DIR}/uninstallfrm.ui
+ ${CMAKE_CURRENT_LIST_DIR}/uninstallwindow.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/uninstallwindow.h
+ ${CMAKE_CURRENT_LIST_DIR}/version.h
+
+ ${CMAKE_CURRENT_LIST_DIR}/gui/backupdialog.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/gui/backupdialogfrm.ui
+ ${CMAKE_CURRENT_LIST_DIR}/gui/backupdialog.h
+ ${CMAKE_CURRENT_LIST_DIR}/gui/changelog.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/gui/changelogfrm.ui
+ ${CMAKE_CURRENT_LIST_DIR}/gui/changelog.h
+ ${CMAKE_CURRENT_LIST_DIR}/gui/comboboxviewdelegate.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/gui/comboboxviewdelegate.h
+ ${CMAKE_CURRENT_LIST_DIR}/gui/infowidget.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/gui/infowidgetfrm.ui
+ ${CMAKE_CURRENT_LIST_DIR}/gui/infowidget.h
+ ${CMAKE_CURRENT_LIST_DIR}/gui/selectiveinstallwidget.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/gui/selectiveinstallwidgetfrm.ui
+ ${CMAKE_CURRENT_LIST_DIR}/gui/selectiveinstallwidget.h
+
+ ${CMAKE_CURRENT_LIST_DIR}/rbutilqt.qrc
+ ${CMAKE_CURRENT_BINARY_DIR}/rbutilqt-lang.qrc
+ )
+
+if(WIN32)
+ target_sources(RockboxUtility PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/rbutilqt-win.qrc
+ ${CMAKE_CURRENT_LIST_DIR}/rbutilqt.rc)
+ # needed on Windows, otherwise svg icons won't show.
+ target_link_libraries(RockboxUtility Qt${QT_VERSION_MAJOR}::QSvgIconPlugin)
+endif()
+if(APPLE)
+ # MacOS Application Bundle specifics.
+ target_sources(RockboxUtility PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/icons/rbutilqt.icns)
+ set_target_properties(RockboxUtility
+ PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_LIST_DIR}/Info.plist)
+ set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/icons/rbutilqt.icns
+ PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
+endif()
+
+target_link_libraries(RockboxUtility rbbase cutelogger
+ Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Multimedia)
+
+target_include_directories(RockboxUtility PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/gui
+ ${CMAKE_CURRENT_LIST_DIR})
+target_compile_definitions(RockboxUtility PRIVATE
+ QT_DEPRECATED_WARNINGS
+ RBUTIL _LARGEFILE64_SOURCE UNICODE)
+
+set_property(TARGET RockboxUtility PROPERTY AUTOMOC ON)
+set_property(TARGET RockboxUtility PROPERTY AUTORCC ON)
+set_property(TARGET RockboxUtility PROPERTY AUTOUIC ON)
+
+deploy_qt(RockboxUtility
+ ${QT_BINDIR}
+ ${CMAKE_CURRENT_LIST_DIR}/../../docs/logo/rockbox-clef.svg
+ ${CMAKE_CURRENT_LIST_DIR}/RockboxUtility.desktop
+ ${CMAKE_CURRENT_LIST_DIR}/dmgbuild.cfg)
+
+add_library(rbbase
+ ${CMAKE_CURRENT_LIST_DIR}/../../tools/iriver.c
+ ${CMAKE_CURRENT_LIST_DIR}/../../tools/iriver.h
+ ${CMAKE_CURRENT_LIST_DIR}/../../tools/mkboot.c
+ ${CMAKE_CURRENT_LIST_DIR}/../../tools/mkboot.h
+ ${CMAKE_CURRENT_LIST_DIR}/../../tools/wavtrim.c
+ ${CMAKE_CURRENT_LIST_DIR}/../../tools/wavtrim.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/archiveutil.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/archiveutil.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/autodetection.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/autodetection.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallams.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallams.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallbase.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallbase.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallbspatch.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallbspatch.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallchinachip.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallchinachip.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallfile.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallfile.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallhelper.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallhelper.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallhex.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallhex.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallimx.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallimx.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallipod.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallipod.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallmi4.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallmi4.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallmpio.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallmpio.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstalls5l.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstalls5l.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallsansa.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstallsansa.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstalltcc.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/bootloaderinstalltcc.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/encoderbase.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/encoderbase.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/encoderexe.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/encoderexe.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/encoderlame.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/encoderlame.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/encoderrbspeex.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/encoderrbspeex.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/encttssettings.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/encttssettings.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/httpget.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/httpget.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/mspackutil.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/mspackutil.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/progressloggerinterface.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/playerbuildinfo.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/playerbuildinfo.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/rbsettings.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/rbsettings.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/rockboxinfo.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/rockboxinfo.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/system.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/system.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/talkfile.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/talkfile.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/talkgenerator.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/talkgenerator.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttsbase.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttsbase.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttsespeak.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttsespeakng.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttsexes.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttsexes.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttsfestival.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttsfestival.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttsflite.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttsmimic.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttsmssp.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttssapi.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttssapi.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttssapi4.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttsswift.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/uninstall.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/uninstall.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/utils.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/utils.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/voicefile.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/voicefile.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/zipinstaller.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/zipinstaller.h
+ ${CMAKE_CURRENT_LIST_DIR}/base/ziputil.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/ziputil.h
+ )
+
+if(APPLE)
+ target_sources(rbbase PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttscarbon.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/base/ttscarbon.h)
+endif()
+
+target_link_libraries(rbbase
+ cutelogger quazip mspack bspatch rbspeex voicefont
+ sansapatcher ipodpatcher chinachippatcher
+ mkamsboot mkimxboot mkmpioboot mktccboot mks5lboot
+ Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network)
+target_include_directories(rbbase PUBLIC ${CMAKE_CURRENT_LIST_DIR}/base)
+target_include_directories(rbbase PRIVATE ${CMAKE_CURRENT_LIST_DIR})
+target_include_directories(rbbase PUBLIC ${CMAKE_CURRENT_LIST_DIR}/../../tools)
+target_compile_definitions(rbbase PUBLIC RBUTIL _LARGEFILE64_SOURCE UNICODE)
+target_compile_definitions(rbbase PRIVATE QT_DEPRECATED_WARNINGS)
+if(WIN32)
+ target_link_libraries(rbbase setupapi ws2_32 netapi32 crypt32 iphlpapi)
+elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
+ target_link_libraries(rbbase PkgConfig::libusb)
+elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
+ target_link_libraries(rbbase ${FRAMEWORK_IOKIT} ${FRAMEWORK_COREFOUNDATION}
+ ${FRAMEWORK_CARBON} ${FRAMEWORK_SYSTEMCONFIGURATION} ${FRAMEWORK_CORESERVICES})
+endif()
+set_property(TARGET rbbase PROPERTY AUTOMOC ON)
+
+# TODO: Upstream has cmake support, use that instead.
+add_library(cutelogger)
+# need to put those separate, otherwise cmake will not add them correctly -- seems to be related to moc'ing.
+target_sources(cutelogger PUBLIC
+ ${CMAKE_CURRENT_LIST_DIR}/logger/include/AbstractAppender.h
+ ${CMAKE_CURRENT_LIST_DIR}/logger/include/AbstractStringAppender.h
+ ${CMAKE_CURRENT_LIST_DIR}/logger/include/ConsoleAppender.h
+ ${CMAKE_CURRENT_LIST_DIR}/logger/include/CuteLogger_global.h
+ ${CMAKE_CURRENT_LIST_DIR}/logger/include/FileAppender.h
+ ${CMAKE_CURRENT_LIST_DIR}/logger/include/Logger.h
+ #${CMAKE_CURRENT_LIST_DIR}/logger/include/OutputDebugAppender.h
+ ${CMAKE_CURRENT_LIST_DIR}/logger/src/AbstractAppender.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/logger/src/AbstractStringAppender.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/logger/src/ConsoleAppender.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/logger/src/FileAppender.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/logger/src/Logger.cpp
+ #${CMAKE_CURRENT_LIST_DIR}/logger/src/OutputDebugAppender.cpp
+ )
+target_include_directories(cutelogger PUBLIC ${CMAKE_CURRENT_LIST_DIR}/logger/include)
+target_link_libraries(cutelogger PUBLIC Qt${QT_VERSION_MAJOR}::Core)
+target_compile_definitions(cutelogger PUBLIC CUTELOGGER_STATIC)
+set_property(TARGET cutelogger PROPERTY AUTOMOC ON)
+
+# TODO: Upstream has cmake support, use that instead.
+add_library(quazip
+ ${CMAKE_CURRENT_LIST_DIR}/quazip/ioapi.h
+ ${CMAKE_CURRENT_LIST_DIR}/quazip/minizip_crypt.h
+ ${CMAKE_CURRENT_LIST_DIR}/quazip/qioapi.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/quazip/quazip.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipfile.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipfile.h
+ ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipfileinfo.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipfileinfo.h
+ ${CMAKE_CURRENT_LIST_DIR}/quazip/quazip_global.h
+ ${CMAKE_CURRENT_LIST_DIR}/quazip/quazip.h
+ ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipnewinfo.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipnewinfo.h
+ ${CMAKE_CURRENT_LIST_DIR}/quazip/unzip.c
+ ${CMAKE_CURRENT_LIST_DIR}/quazip/unzip.h
+ ${CMAKE_CURRENT_LIST_DIR}/quazip/zip.c
+ ${CMAKE_CURRENT_LIST_DIR}/quazip/zip.h
+ )
+target_include_directories(quazip PUBLIC ${CMAKE_CURRENT_LIST_DIR}/quazip)
+target_link_libraries(quazip z Qt${QT_VERSION_MAJOR}::Core)
+if(QT_VERSION_MAJOR EQUAL 6)
+ target_link_libraries(quazip Qt${QT_VERSION_MAJOR}::Core5Compat)
+endif()
+target_compile_definitions(quazip PUBLIC QUAZIP_STATIC)
+set_property(TARGET quazip PROPERTY AUTOMOC ON)
+
+add_library(mspack
+ mspack/cabc.c
+ mspack/cabd.c
+ mspack/cab.h
+ #mspack/chmc.c
+ #mspack/chmd.c
+ #mspack/chm.h
+ mspack/des.h
+ #mspack/hlpc.c
+ #mspack/hlpd.c
+ #mspack/hlp.h
+ #mspack/kwajc.c
+ #mspack/kwajd.c
+ #mspack/kwaj.h
+ #mspack/litc.c
+ #mspack/litd.c
+ #mspack/lit.h
+ #mspack/lzssd.c
+ #mspack/lzss.h
+ mspack/lzxc.c
+ mspack/lzxd.c
+ mspack/lzx.h
+ mspack/mspack.h
+ mspack/mszipc.c
+ mspack/mszipd.c
+ mspack/mszip.h
+ mspack/qtmd.c
+ mspack/qtm.h
+ mspack/readbits.h
+ mspack/readhuff.h
+ mspack/sha.h
+ mspack/system-mspack.c
+ mspack/system-mspack.h
+ #mspack/szddc.c
+ #mspack/szddd.c
+ #mspack/szdd.h
+ )
+
+target_include_directories(mspack PUBLIC ${CMAKE_CURRENT_LIST_DIR}/mspack)
+
+
+# Unit tests
+add_executable(test_compareversion
+ base/utils.cpp
+ base/utils.h
+ test/stubs/stubs-compareversion.cpp
+ test/test-compareversion.cpp)
+
+target_link_libraries(test_compareversion Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test)
+target_compile_definitions(test_compareversion PRIVATE UNICODE)
+if(APPLE)
+ target_link_libraries(test_compareversion ${FRAMEWORK_IOKIT} ${FRAMEWORK_COREFOUNDATION}
+ ${FRAMEWORK_CARBON} ${FRAMEWORK_SYSTEMCONFIGURATION} ${FRAMEWORK_CORESERVICES})
+endif()
+target_include_directories(test_compareversion PRIVATE base test/stubs)
+add_test(test_compareversion test_compareversion)
+set_property(TARGET test_compareversion PROPERTY AUTOMOC ON)
+
+add_executable(test_httpget
+ test/test-httpget.cpp
+ base/httpget.cpp
+ base/httpget.h)
+target_link_libraries(test_httpget Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test Qt${QT_VERSION_MAJOR}::Network)
+target_include_directories(test_httpget PRIVATE base test/stubs)
+add_test(test_httpget test_httpget)
+set_property(TARGET test_httpget PROPERTY AUTOMOC ON)
+
+add_executable(test_playerbuildinfo
+ base/playerbuildinfo.cpp
+ base/playerbuildinfo.h
+ base/rbsettings.h
+ base/rockboxinfo.h
+ rbutilqt.qrc # needed for rbutil.ini resource.
+ test/stubs/stubs-playerbuildinfo.cpp
+ test/test-playerbuildinfo.cpp)
+target_link_libraries(test_playerbuildinfo Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test)
+target_include_directories(test_playerbuildinfo PRIVATE base test/stubs)
+add_test(test_playerbuildinfo test_playerbuildinfo)
+set_property(TARGET test_playerbuildinfo PROPERTY AUTOMOC ON)
+set_property(TARGET test_playerbuildinfo PROPERTY AUTORCC ON)
+
+add_executable(test_rockboxinfo
+ base/rockboxinfo.cpp
+ base/rockboxinfo.h
+ test/test-rockboxinfo.cpp)
+
+target_link_libraries(test_rockboxinfo Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Test)
+target_include_directories(test_rockboxinfo PRIVATE base test/stubs)
+target_compile_definitions(test_rockboxinfo PRIVATE UNICODE)
+add_test(test_rockboxinfo test_rockboxinfo)
+set_property(TARGET test_rockboxinfo PROPERTY AUTOMOC ON)
+
+