From 0e51d4fa337fd6cac9f1c5d195a099b8160cd96f Mon Sep 17 00:00:00 2001 From: dawkagaming <147207983+dawkagaming@users.noreply.github.com> Date: Mon, 6 Jul 2026 18:37:26 +0200 Subject: [PATCH 01/14] Add cmake building --- CMakeLists.txt | 658 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 658 insertions(+) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..251970e1 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,658 @@ +cmake_minimum_required(VERSION 3.31) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +project(qlog + VERSION 0.51.0 + LANGUAGES CXX +) + +add_compile_definitions(VERSION="${PROJECT_VERSION}") + +find_package(Qt6 REQUIRED + COMPONENTS + Core + Network + Gui + Widgets + LinguistTools + Sql + Xml + Charts + WebEngineWidgets + SerialPort + QuickWidgets + WebChannel + WebSockets + PrintSupport +) + +qt_standard_project_setup() + +set(SOURCES + awards/AwardDefinition.cpp + awards/AwardDXCC.cpp + awards/AwardGridsquare.cpp + awards/AwardIOTA.cpp + awards/AwardITU.cpp + awards/AwardJapan.cpp + awards/AwardNZ.cpp + awards/AwardRDA.cpp + awards/AwardSpanishDME.cpp + awards/AwardUKD.cpp + awards/AwardUSCounty.cpp + awards/AwardPOTAActivator.cpp + awards/AwardPOTAHunter.cpp + awards/AwardSOTA.cpp + awards/AwardWAAC.cpp + awards/AwardWAIP.cpp + awards/SecondarySubdivisionAward.cpp + awards/AwardWAC.cpp + awards/AwardWAS.cpp + awards/AwardWAZ.cpp + awards/AwardWPX.cpp + awards/AwardWWFF.cpp + awards/BandTableAward.cpp + core/AlertEvaluator.cpp + core/AdifRecovery.cpp + core/AppGuard.cpp + core/CallbookManager.cpp + core/CredentialStore.cpp + core/FileCompressor.cpp + core/FldigiTCPServer.cpp + core/LOVDownloader.cpp + core/LogDatabase.cpp + core/LogLocale.cpp + core/LogParam.cpp + core/MembershipQE.cpp + core/Migration.cpp + core/NetworkNotification.cpp + core/PasswordCipher.cpp + core/PlatformParameterManager.cpp + core/PotaQE.cpp + core/PropConditions.cpp + core/QSLPrintLabelRenderer.cpp + core/QSLStorage.cpp + core/QSOFilterManager.cpp + core/WsjtxUDPReceiver.cpp + core/debug.cpp + core/EmergencyFrequency.cpp + core/IBPBeacon.cpp + core/main.cpp + core/zonedetect.c + cwkey/CWKeyer.cpp + cwkey/drivers/CWCatKey.cpp + cwkey/drivers/CWDaemonKey.cpp + cwkey/drivers/CWDummyKey.cpp + cwkey/drivers/CWFldigiKey.cpp + cwkey/drivers/CWKey.cpp + cwkey/drivers/CWWinKey.cpp + data/ActivityProfile.cpp + data/AntProfile.cpp + data/BandmapGuide.cpp + data/BandPlan.cpp + data/Accents.cpp + data/CWKeyProfile.cpp + data/CWShortcutProfile.cpp + data/Callsign.cpp + data/Data.cpp + data/DxServerString.cpp + data/Gridsquare.cpp + data/HostsPortString.cpp + data/MainLayoutProfile.cpp + data/RigProfile.cpp + data/RotProfile.cpp + data/RotUsrButtonsProfile.cpp + data/SerialPort.cpp + data/StationProfile.cpp + data/UpdatableSQLRecord.cpp + logformat/AdiFormat.cpp + logformat/AdxFormat.cpp + logformat/CabrilloFormat.cpp + logformat/CSVFormat.cpp + logformat/JsonFormat.cpp + logformat/LogFormat.cpp + logformat/PotaAdiFormat.cpp + models/AlertTableModel.cpp + models/AwardsTableModel.cpp + models/DxccTableModel.cpp + models/LogbookModel.cpp + models/RigTypeModel.cpp + models/RotTypeModel.cpp + models/SearchFilterProxyModel.cpp + models/ShortcutEditorModel.cpp + models/SqlListModel.cpp + models/WsjtxTableModel.cpp + rig/Rig.cpp + rig/RigCaps.cpp + rig/RigctldManager.cpp + rig/drivers/FlrigRigDrv.cpp + rig/drivers/GenericRigDrv.cpp + rig/drivers/HamlibRigDrv.cpp + rig/drivers/TCIRigDrv.cpp + rotator/RotCaps.cpp + rotator/Rotator.cpp + rotator/drivers/GenericRotDrv.cpp + rotator/drivers/HamlibRotDrv.cpp + rotator/drivers/PSTRotDrv.cpp + service/GenericCallbook.cpp + service/GenericQSLDownloader.cpp + service/GenericQSOUploader.cpp + service/cloudlog/Cloudlog.cpp + service/clublog/ClubLog.cpp + service/eqsl/Eqsl.cpp + service/hamqth/HamQTH.cpp + service/hrdlog/HRDLog.cpp + service/kstchat/KSTChat.cpp + service/lotw/Lotw.cpp + service/potaapp/PotaApp.cpp + service/qrzcom/QRZ.cpp + ui/ActivityEditor.cpp + ui/AdifRecoveryManager.cpp + ui/AlertRuleDetail.cpp + ui/AlertSettingDialog.cpp + ui/AlertWidget.cpp + ui/AwardsDialog.cpp + ui/DXCCSubmissionDialog.cpp + ui/BandmapWidget.cpp + ui/BandmapGuideDialog.cpp + ui/CWConsoleWidget.cpp + ui/ChatWidget.cpp + ui/ClockWidget.cpp + ui/ColumnSettingDialog.cpp + ui/DevToolsDialog.cpp + ui/DownloadQSLDialog.cpp + ui/DxFilterDialog.cpp + ui/DxWidget.cpp + ui/DxccTableWidget.cpp + ui/EditActivitiesDialog.cpp + ui/CabrilloExportDialog.cpp + ui/CabrilloTemplateDialog.cpp + ui/ExportDialog.cpp + ui/ExportPasswordDialog.cpp + ui/LoadDatabaseDialog.cpp + ui/PlatformSettingsDialog.cpp + ui/QSLGalleryDialog.cpp + ui/QSLPrintLabelDialog.cpp + ui/RigctldAdvancedDialog.cpp + ui/ImportDialog.cpp + ui/InputPasswordDialog.cpp + ui/KSTChatWidget.cpp + ui/KSTHighlightRuleDetail.cpp + ui/KSTHighlighterSettingDialog.cpp + ui/LogbookWidget.cpp + ui/MainWindow.cpp + ui/MapPageController.cpp + ui/MapWidget.cpp + ui/ModeSelectionController.cpp + ui/NewContactWidget.cpp + ui/OnlineMapWidget.cpp + ui/PaperQSLDialog.cpp + ui/ProfileImageWidget.cpp + ui/QSLImportStatDialog.cpp + ui/QSODetailDialog.cpp + ui/QSOFilterDetail.cpp + ui/QSOFilterDialog.cpp + ui/QTableQSOView.cpp + ui/RigWidget.cpp + ui/RotatorWidget.cpp + ui/SettingsDialog.cpp + ui/ShowUploadDialog.cpp + ui/StatisticsWidget.cpp + ui/UploadQSODialog.cpp + ui/WebEnginePage.cpp + ui/WsjtxFilterDialog.cpp + ui/WsjtxWidget.cpp + ui/component/BaseDoubleSpinBox.cpp + ui/component/EditLine.cpp + ui/component/FreqQSpinBox.cpp + ui/component/ModeSubmodeDelegate.cpp + ui/component/LogbookFieldComboBox.cpp + ui/component/MultiselectCompleter.cpp + ui/component/RepeatButton.cpp + ui/component/SmartSearchBox.cpp + ui/component/SqlHighlighter.cpp + ui/component/SwitchButton.cpp +) + +set(HEADERS + awards/AwardDefinition.h + awards/AwardDXCC.h + awards/AwardGridsquare.h + awards/AwardIOTA.h + awards/AwardITU.h + awards/AwardJapan.h + awards/AwardNZ.h + awards/AwardRDA.h + awards/AwardSpanishDME.h + awards/AwardUKD.h + awards/AwardUSCounty.h + awards/AwardPOTAActivator.h + awards/AwardPOTAHunter.h + awards/AwardSOTA.h + awards/AwardWAAC.h + awards/AwardWAIP.h + awards/SecondarySubdivisionAward.h + awards/AwardWAC.h + awards/AwardWAS.h + awards/AwardWAZ.h + awards/AwardWPX.h + awards/AwardWWFF.h + awards/BandTableAward.h + core/AlertEvaluator.h + core/AdifRecovery.h + core/AppGuard.h + core/CallbookManager.h + core/CredentialStore.h + core/FileCompressor.h + core/FldigiTCPServer.h + core/LOVDownloader.h + core/LogDatabase.h + core/LogLocale.h + core/LogParam.h + core/MembershipQE.h + core/Migration.h + core/NetworkNotification.h + core/PasswordCipher.h + core/PlatformParameterManager.h + core/PotaQE.h + core/PropConditions.h + core/QSLPrintLabelRenderer.h + core/QSLStorage.h + core/QSOFilterManager.h + core/QuadKeyCache.h + core/WsjtxUDPReceiver.h + core/csv.hpp + core/debug.h + core/EmergencyFrequency.h + core/IBPBeacon.h + core/zonedetect.h + cwkey/CWKeyer.h + cwkey/drivers/CWCatKey.h + cwkey/drivers/CWDaemonKey.h + cwkey/drivers/CWDummyKey.h + cwkey/drivers/CWFldigiKey.h + cwkey/drivers/CWKey.h + cwkey/drivers/CWWinKey.h + data/ActivityProfile.h + data/AntProfile.h + data/Band.h + data/BandmapGuide.h + data/BandPlan.h + data/CWKeyProfile.h + data/CWShortcutProfile.h + data/Callsign.h + data/Data.h + data/DxServerString.h + data/DxSpot.h + data/Dxcc.h + data/Gridsquare.h + data/HostsPortString.h + data/MainLayoutProfile.h + data/POTAEntity.h + data/POTASpot.h + data/ProfileManager.h + data/RigProfile.h + data/RotProfile.h + data/RotUsrButtonsProfile.h + data/SOTAEntity.h + data/SerialPort.h + data/SpotAlert.h + data/StationProfile.h + data/ToAllSpot.h + data/UpdatableSQLRecord.h + data/WCYSpot.h + data/WWFFEntity.h + data/WWVSpot.h + data/WsjtxDecode.h + data/WsjtxEntry.h + data/WsjtxLog.h + data/WsjtxLogADIF.h + data/WsjtxStatus.h + logformat/AdiFormat.h + logformat/AdxFormat.h + logformat/CabrilloFormat.h + logformat/CSVFormat.h + logformat/JsonFormat.h + logformat/LogFormat.h + logformat/PotaAdiFormat.h + models/AlertTableModel.h + models/AwardsTableModel.h + models/DxccTableModel.h + models/LogbookModel.h + models/RigTypeModel.h + models/RotTypeModel.h + models/SearchFilterProxyModel.h + models/ShortcutEditorModel.h + models/SqlListModel.h + models/WsjtxTableModel.h + rig/Rig.h + rig/RigCaps.h + rig/RigctldManager.h + rig/drivers/FlrigRigDrv.h + rig/drivers/GenericRigDrv.h + rig/drivers/HamlibRigDrv.h + rig/drivers/TCIRigDrv.h + rig/macros.h + rotator/RotCaps.h + rotator/Rotator.h + rotator/drivers/GenericRotDrv.h + rotator/drivers/HamlibRotDrv.h + rotator/drivers/PSTRotDrv.h + service/GenericCallbook.h + service/GenericQSLDownloader.h + service/GenericQSOUploader.h + service/cloudlog/Cloudlog.h + service/clublog/ClubLog.h + service/eqsl/Eqsl.h + service/hamqth/HamQTH.h + service/hrdlog/HRDLog.h + service/kstchat/KSTChat.h + service/lotw/Lotw.h + service/potaapp/PotaApp.h + service/qrzcom/QRZ.h + ui/ActivityEditor.h + ui/AdifRecoveryManager.h + ui/AlertRuleDetail.h + ui/AlertSettingDialog.h + ui/AlertWidget.h + ui/AwardsDialog.h + ui/DXCCSubmissionDialog.h + ui/BandmapWidget.h + ui/BandmapGuideDialog.h + ui/CWConsoleWidget.h + ui/ChatWidget.h + ui/ClockWidget.h + ui/ColumnSettingDialog.h + ui/DevToolsDialog.h + ui/DownloadQSLDialog.h + ui/DxFilterDialog.h + ui/DxWidget.h + ui/DxccTableWidget.h + ui/EditActivitiesDialog.h + ui/CabrilloExportDialog.h + ui/CabrilloTemplateDialog.h + ui/ExportDialog.h + ui/ExportPasswordDialog.h + ui/LoadDatabaseDialog.h + ui/PlatformSettingsDialog.h + ui/QSLGalleryDialog.h + ui/QSLPrintLabelDialog.h + ui/RigctldAdvancedDialog.h + ui/ImportDialog.h + ui/InputPasswordDialog.h + ui/KSTChatWidget.h + ui/KSTHighlightRuleDetail.h + ui/KSTHighlighterSettingDialog.h + ui/LogbookWidget.h + ui/MainWindow.h + ui/MapLayer.h + ui/MapPageController.h + ui/MapWidget.h + ui/ModeSelectionController.h + ui/NewContactWidget.h + ui/OnlineMapWidget.h + ui/PaperQSLDialog.h + ui/ProfileImageWidget.h + ui/QSLImportStatDialog.h + ui/QSODetailDialog.h + ui/QSOFilterDetail.h + ui/QSOFilterDialog.h + ui/QTableQSOView.h + ui/ShowUploadDialog.h + ui/SplashScreen.h + ui/RigWidget.h + ui/RotatorWidget.h + ui/SettingsDialog.h + ui/StatisticsWidget.h + ui/UploadQSODialog.h + ui/WebEnginePage.h + ui/WsjtxFilterDialog.h + ui/WsjtxWidget.h + i18n/dbstrings.tri + i18n/datastrings.tri + ui/component/BaseDoubleSpinBox.h + ui/component/ButtonStyle.h + ui/component/EditLine.h + ui/component/FreqQSpinBox.h + ui/component/ModeSubmodeDelegate.h + ui/component/LogbookFieldComboBox.h + ui/component/MultiselectCompleter.h + ui/component/RepeatButton.h + ui/component/ShutdownAwareWidget.h + ui/component/SmartSearchBox.h + ui/component/SqlHighlighter.h + ui/component/StyleItemDelegate.h + ui/component/SwitchButton.h +) + +set(FORMS + ui/ActivityEditor.ui + ui/AlertRuleDetail.ui + ui/AlertSettingDialog.ui + ui/AlertWidget.ui + ui/AwardsDialog.ui + ui/DXCCSubmissionDialog.ui + ui/BandmapWidget.ui + ui/BandmapGuideDialog.ui + ui/CWConsoleWidget.ui + ui/ChatWidget.ui + ui/ClockWidget.ui + ui/ColumnSettingDialog.ui + ui/ColumnSettingSimpleDialog.ui + ui/DevToolsDialog.ui + ui/DownloadQSLDialog.ui + ui/DxFilterDialog.ui + ui/DxWidget.ui + ui/EditActivitiesDialog.ui + ui/CabrilloExportDialog.ui + ui/CabrilloTemplateDialog.ui + ui/ExportDialog.ui + ui/ExportPasswordDialog.ui + ui/LoadDatabaseDialog.ui + ui/PlatformSettingsDialog.ui + ui/QSLGalleryDialog.ui + ui/QSLPrintLabelDialog.ui + ui/RigctldAdvancedDialog.ui + ui/ImportDialog.ui + ui/InputPasswordDialog.ui + ui/KSTChatWidget.ui + ui/KSTHighlightRuleDetail.ui + ui/KSTHighlighterSettingDialog.ui + ui/LogbookWidget.ui + ui/MainWindow.ui + ui/NewContactWidget.ui + ui/PaperQSLDialog.ui + ui/ProfileImageWidget.ui + ui/QSLImportStatDialog.ui + ui/QSODetailDialog.ui + ui/QSOFilterDetail.ui + ui/QSOFilterDialog.ui + ui/RigWidget.ui + ui/RotatorWidget.ui + ui/SettingsDialog.ui + ui/ShowUploadDialog.ui + ui/StatisticsWidget.ui + ui/UploadQSODialog.ui + ui/WsjtxFilterDialog.ui + ui/WsjtxWidget.ui +) + +set(RESOURCES + res/flags/flags.qrc + res/icons/icons.qrc + res/res.qrc +) + +set(OTHER_FILES + res/stylesheet.css + res/qlog.rc + res/qlog.desktop + res/qlog.1 + res/io.github.foldynl.QLog.metainfo.xml +) + +set(TRANSLATIONS + i18n/qlog_cs.ts + i18n/qlog_de.ts + i18n/qlog_es.ts + i18n/qlog_fr.ts + i18n/qlog_it.ts + i18n/qlog_zh_CN.ts +) + +qt_add_executable(${PROJECT_NAME} + ${SOURCES} + ${HEADERS} + ${FORMS} + ${RESOURCES} +) + +qt_add_translations(${PROJECT_NAME} TS_FILES ${TRANSLATIONS}) + +find_package(Threads REQUIRED) + +if(LINUX) + find_package(Qt6 REQUIRED COMPONENTS DBus) + find_package(Qt6Keychain REQUIRED) + find_package(OpenSSL REQUIRED) + + find_package(PkgConfig REQUIRED) + + pkg_check_modules(HAMLIB REQUIRED IMPORTED_TARGET hamlib) + pkg_check_modules(SQLITE3 REQUIRED IMPORTED_TARGET sqlite3) + pkg_check_modules(ZLIB REQUIRED IMPORTED_TARGET zlib) +elseif(WIN32) + target_sources(${PROJECT_NAME} SOURCES + rig/drivers/OmnirigRigDrv.cpp + rig/drivers/Omnirigv2RigDrv.cpp + ) + + target_sources(${PROJECT_NAME} HEADERS + rig/drivers/OmnirigRigDrv.h + rig/drivers/Omnirigv2RigDrv.h + rig/drivers/OmniRigEventSink.h + ) + + target_compile_definitions(${PROJECT_NAME} PRIVATE + WIN32_LEAN_AND_MEAN + ZD_EXPORT= + ) + + target_include_directories(${PROJECT_NAME} PRIVATE + /usr/local/include + ) + + # Add sqlite3 + + find_library(WS2_32 ws2_32 REQUIRED) + find_library(HAMLIB libhamlib-4 REQUIRED) + find_library(ZLIB zlib REQUIRED) + find_library(CRYPTO libcrypto REQUIRED) + find_library(SSL ssl REQUIRED) + find_library(QT6KEYCHAIN qt6keychain REQUIRED) +elseif(APPLE) + target_include_directories(${PROJECT_NAME} PRIVATE + /usr/local/include + /opt/homebrew/include + /opt/local/include + ) + + set(LIB_SEARCH_PATHS + /usr/local/lib + /opt/homebrew/lib + /opt/local/lib + ) + + target_link_directories(${PROJECT_NAME} PRIVATE ${LIB_SEARCH_PATHS}) + + find_library(SQLITE3 sqlite3 REQUIRED PATHS ${LIB_SEARCH_PATHS}) + find_library(HAMLIB hamlib REQUIRED PATHS ${LIB_SEARCH_PATHS}) + find_library(ZLIB z REQUIRED PATHS ${LIB_SEARCH_PATHS}) + find_library(CRYPTO crypto REQUIRED PATHS ${LIB_SEARCH_PATHS}) + find_library(SSL ssl REQUIRED PATHS ${LIB_SEARCH_PATHS}) + find_library(QT6KEYCHAIN qt6keychain REQUIRED PATHS ${LIB_SEARCH_PATHS}) +endif() + +if(LINUX) + string(REPLACE "." ";" HAMLIB_VERSION_LIST ${HAMLIB_VERSION}) + + list(GET ${HAMLIB_VERSION_LIST} 0 HAMLIBVERSION_MAJOR) + list(GET ${HAMLIB_VERSION_LIST} 1 HAMLIBVERSION_MINOR) + list(GET ${HAMLIB_VERSION_LIST} 2 HAMLIBVERSION_PATCH) + + add_compile_definitions( + HAMLIBVERSION_MAJOR=${HAMLIBVERSION_MAJOR} + HAMLIBVERSION_MINOR=${HAMLIBVERSION_MINOR} + HAMLIBVERSION_PATCH=${HAMLIBVERSION_PATCH} + ) +elseif(APPLE OR WIN32) + add_compile_definitions() +endif() + +target_include_directories(${PROJECT_NAME} PRIVATE + ${CMAKE_SOURCE_DIR} +) + +# Linking + +target_link_libraries(${PROJECT_NAME} PRIVATE + Qt6::Core + Qt6::Network + Qt6::Gui + Qt6::Widgets + Qt6::Sql + Qt6::Xml + Qt6::Charts + Qt6::WebEngineWidgets + Qt6::SerialPort + Qt6::QuickWidgets + Qt6::WebChannel + Qt6::WebSockets + Qt6::PrintSupport +) + +target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads) + +if(LINUX) + target_link_libraries(${PROJECT_NAME} PRIVATE + Qt6::DBus + Qt6Keychain::Qt6Keychain + OpenSSL + PkgConfig::HAMLIB + PkgConfig::SQLITE3 + PkgConfig::ZLIB + ) +elseif(WIN32 OR APPLE) + target_link_libraries(${PROJECT_NAME} PRIVATE + HAMLIB + ZLIB + SSL + CRYPTO + QT6KEYCHAIN + ) + + if(WIN32) + target_link_libraries(${PROJECT_NAME} PRIVATE WS2_32) + elseif(APPLE) + target_link_libraries(${PROJECT_NAME} PRIVATE SQLITE3) + endif() +endif() + +# Installation rules + +set_target_properties(${PROJECT_NAME} PROPERTIES + WIN32_EXECUTABLE ON + MACOSX_BUNDLE OFF +) + + # include(GNUInstallDirs) + + # install(TARGETS ${PROJECT_NAME}) + + # install(FILES) + + # install(FILES) + + # install(FILES) \ No newline at end of file From 30dc208482094cec5101218b061d4c9177b3bbaa Mon Sep 17 00:00:00 2001 From: dawkagaming <147207983+dawkagaming@users.noreply.github.com> Date: Tue, 7 Jul 2026 13:25:56 +0200 Subject: [PATCH 02/14] Add linux install rules --- CMakeLists.txt | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 251970e1..d927a03f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -588,6 +588,7 @@ if(LINUX) HAMLIBVERSION_PATCH=${HAMLIBVERSION_PATCH} ) elseif(APPLE OR WIN32) + string(REPLACE "." ";" HAMLIB_VERSION_LIST ${HAMLIB}) add_compile_definitions() endif() @@ -647,12 +648,26 @@ set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE OFF ) - # include(GNUInstallDirs) +if(LINUX) + include(GNUInstallDirs) - # install(TARGETS ${PROJECT_NAME}) + install(TARGETS ${PROJECT_NAME} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ) - # install(FILES) + install(FILES ${CMAKE_SOURCE_DIR}/res/${PROJECT_NAME}.desktop + DESTINATION ${CMAKE_INSTALL_DATADIR}/applications + ) - # install(FILES) + install(FILES ${CMAKE_SOURCE_DIR}/res/${PROJECT_NAME}.1 + DESTINATION ${CMAKE_INSTALL_DATADIR}/man/man1 + ) - # install(FILES) \ No newline at end of file + install(FILES ${CMAKE_SOURCE_DIR}/res/${PROJECT_NAME}.png + DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/256x256/apps + ) + + install(FILES ${CMAKE_SOURCE_DIR}/res/io.github.foldynl.QLog.metainfo.xml + DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo + ) +endif() \ No newline at end of file From 28d5893b79114d7ad2034ea8641d763af55d5e33 Mon Sep 17 00:00:00 2001 From: dawkagaming <147207983+dawkagaming@users.noreply.github.com> Date: Tue, 7 Jul 2026 17:24:43 +0200 Subject: [PATCH 03/14] Fix openssl target linking --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d927a03f..a43b5351 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -620,7 +620,7 @@ if(LINUX) target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::DBus Qt6Keychain::Qt6Keychain - OpenSSL + OpenSSL::SSL PkgConfig::HAMLIB PkgConfig::SQLITE3 PkgConfig::ZLIB From cd8948a3a630c177230cd224954d9ff7f6d002aa Mon Sep 17 00:00:00 2001 From: dawkagaming <147207983+dawkagaming@users.noreply.github.com> Date: Tue, 7 Jul 2026 21:53:22 +0200 Subject: [PATCH 04/14] Add Qt deprecation warnings, MacOS and Windows deployment scripts, --- CMakeLists.txt | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a43b5351..9ce4162e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,9 +3,14 @@ cmake_minimum_required(VERSION 3.31) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) +add_compile_definitions( + QT_DEPRECATED_WARNINGS + QT_MESSAGELOGCONTEXT +) + project(qlog VERSION 0.51.0 - LANGUAGES CXX + LANGUAGES C CXX ) add_compile_definitions(VERSION="${PROJECT_VERSION}") @@ -645,12 +650,10 @@ endif() set_target_properties(${PROJECT_NAME} PROPERTIES WIN32_EXECUTABLE ON - MACOSX_BUNDLE OFF + MACOSX_BUNDLE ON ) if(LINUX) - include(GNUInstallDirs) - install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) @@ -670,4 +673,25 @@ if(LINUX) install(FILES ${CMAKE_SOURCE_DIR}/res/io.github.foldynl.QLog.metainfo.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo ) +elseif(WIN32) + qt_generate_deploy_app_script( + TARGET ${PROJECT_NAME} + OUTPUT_SCRIPT windows_deploy_script + NO_UNSUPPORTED_PLATFORM_ERROR + ) + + install(SCRIPT ${windows_deploy_script}) +elseif(APPLE) + install(TARGETS ${PROJECT_NAME} + BUNDLE DESTINATION . + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ) + + qt_generate_deploy_app_script( + TARGET ${PROJECT_NAME} + OUTPUT_SCRIPT macos_deploy_script + NO_UNSUPPORTED_PLATFORM_ERROR + ) + + install(SCRIPT ${macos_deploy_script}) endif() \ No newline at end of file From cff7373afd13ec13d63cb9efaecbbd702a9e2cc2 Mon Sep 17 00:00:00 2001 From: dawkagaming <147207983+dawkagaming@users.noreply.github.com> Date: Tue, 7 Jul 2026 23:37:45 +0200 Subject: [PATCH 05/14] Added CPack configuration --- CMakeLists.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9ce4162e..23de15c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -681,6 +681,10 @@ elseif(WIN32) ) install(SCRIPT ${windows_deploy_script}) + + set(CPACK_NSIS ON) + + include(CPack) elseif(APPLE) install(TARGETS ${PROJECT_NAME} BUNDLE DESTINATION . @@ -694,4 +698,8 @@ elseif(APPLE) ) install(SCRIPT ${macos_deploy_script}) + + set(CPACK_DRAGNDROP ON) + + include(CPack) endif() \ No newline at end of file From a5339898b924f6a2a6bfb6ac858005c09f308c95 Mon Sep 17 00:00:00 2001 From: dawkagaming <147207983+dawkagaming@users.noreply.github.com> Date: Wed, 8 Jul 2026 14:39:27 +0200 Subject: [PATCH 06/14] Add CPack configuration for Windows and bundle configuration for MacOS --- CMakeLists.txt | 47 +++++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 23de15c4..a68e9469 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,9 @@ add_compile_definitions( project(qlog VERSION 0.51.0 + SPDX_LICENSE GPL-3.0+ + DESCRIPTION "Amateur radio logbook software" + HOMEPAGE_URL "https://github.com/foldynl/QLog" LANGUAGES C CXX ) @@ -648,11 +651,6 @@ endif() # Installation rules -set_target_properties(${PROJECT_NAME} PROPERTIES - WIN32_EXECUTABLE ON - MACOSX_BUNDLE ON -) - if(LINUX) install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} @@ -673,33 +671,34 @@ if(LINUX) install(FILES ${CMAKE_SOURCE_DIR}/res/io.github.foldynl.QLog.metainfo.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo ) -elseif(WIN32) +elseif(WIN32 OR APPLE) qt_generate_deploy_app_script( TARGET ${PROJECT_NAME} - OUTPUT_SCRIPT windows_deploy_script + OUTPUT_SCRIPT deploy_script NO_UNSUPPORTED_PLATFORM_ERROR ) - install(SCRIPT ${windows_deploy_script}) - - set(CPACK_NSIS ON) + install(SCRIPT ${deploy_script}) - include(CPack) -elseif(APPLE) - install(TARGETS ${PROJECT_NAME} - BUNDLE DESTINATION . - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - ) - - qt_generate_deploy_app_script( - TARGET ${PROJECT_NAME} - OUTPUT_SCRIPT macos_deploy_script - NO_UNSUPPORTED_PLATFORM_ERROR - ) + if(WIN32) + set_target_properties(${PROJECT_NAME} PROPERTIES + WIN32_EXECUTABLE ON + ) - install(SCRIPT ${macos_deploy_script}) + set(CPACK_NSIS_MUI_ICON ${CMAKE_SOURCE_DIR}/res/${PROJECT_NAME}.ico) + set(CPACK_NSIS_DISPLAY_NAME QLog) + set(CPACK_NSIS_PACKAGE_NAME QLog) - set(CPACK_DRAGNDROP ON) + set(CPACK_NSIS ON) + elseif(APPLE) + set_target_properties(${PROJECT_NAME} PROPERTIES + MACOSX_BUNDLE ON + MACOSX_BUNDLE_BUNDLE_NAME QLog + MACOSX_BUNDLE_ICON_FILE ${CMAKE_SOURCE_DIR}/res/${PROJECT_NAME}.icns + ) + + set(CPACK_DRAGNDROP ON) + endif() include(CPack) endif() \ No newline at end of file From 1837b90cc7faca055990d1db0641e367575b5169 Mon Sep 17 00:00:00 2001 From: dawkagaming <147207983+dawkagaming@users.noreply.github.com> Date: Wed, 8 Jul 2026 14:51:47 +0200 Subject: [PATCH 07/14] Make usage of Qt5 an option --- CMakeLists.txt | 82 +++++++++++++++++++++++++++++--------------------- 1 file changed, 47 insertions(+), 35 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a68e9469..a391eead 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,14 @@ project(qlog add_compile_definitions(VERSION="${PROJECT_VERSION}") -find_package(Qt6 REQUIRED +option(USE_QT6 "Set to use Qt6 by default" ON) +if(USE_QT6) + set(QT_VERSION 6) +else() + set(QT_VERSION 5) +endif() + +find_package(Qt${QT_VERSION} QUIET COMPONENTS Core Network @@ -36,6 +43,10 @@ find_package(Qt6 REQUIRED PrintSupport ) +if(LINUX) + find_package(Qt${QT_VERSION} REQUIRED COMPONENTS DBus) +endif() + qt_standard_project_setup() set(SOURCES @@ -522,8 +533,7 @@ qt_add_translations(${PROJECT_NAME} TS_FILES ${TRANSLATIONS}) find_package(Threads REQUIRED) if(LINUX) - find_package(Qt6 REQUIRED COMPONENTS DBus) - find_package(Qt6Keychain REQUIRED) + find_package(Qt${QT_VERSION}Keychain REQUIRED) find_package(OpenSSL REQUIRED) find_package(PkgConfig REQUIRED) @@ -559,7 +569,7 @@ elseif(WIN32) find_library(ZLIB zlib REQUIRED) find_library(CRYPTO libcrypto REQUIRED) find_library(SSL ssl REQUIRED) - find_library(QT6KEYCHAIN qt6keychain REQUIRED) + find_library(QT${QT_VERSION}KEYCHAIN qt${QT_VERSION}keychain REQUIRED) elseif(APPLE) target_include_directories(${PROJECT_NAME} PRIVATE /usr/local/include @@ -580,25 +590,27 @@ elseif(APPLE) find_library(ZLIB z REQUIRED PATHS ${LIB_SEARCH_PATHS}) find_library(CRYPTO crypto REQUIRED PATHS ${LIB_SEARCH_PATHS}) find_library(SSL ssl REQUIRED PATHS ${LIB_SEARCH_PATHS}) - find_library(QT6KEYCHAIN qt6keychain REQUIRED PATHS ${LIB_SEARCH_PATHS}) + find_library(QT${QT_VERSION}KEYCHAIN qt${QT_VERSION}keychain REQUIRED PATHS ${LIB_SEARCH_PATHS}) endif() -if(LINUX) - string(REPLACE "." ";" HAMLIB_VERSION_LIST ${HAMLIB_VERSION}) +# TODO - list(GET ${HAMLIB_VERSION_LIST} 0 HAMLIBVERSION_MAJOR) - list(GET ${HAMLIB_VERSION_LIST} 1 HAMLIBVERSION_MINOR) - list(GET ${HAMLIB_VERSION_LIST} 2 HAMLIBVERSION_PATCH) +# if(LINUX) +# string(REPLACE "." ";" HAMLIB_VERSION_LIST ${HAMLIB_VERSION}) - add_compile_definitions( - HAMLIBVERSION_MAJOR=${HAMLIBVERSION_MAJOR} - HAMLIBVERSION_MINOR=${HAMLIBVERSION_MINOR} - HAMLIBVERSION_PATCH=${HAMLIBVERSION_PATCH} - ) -elseif(APPLE OR WIN32) - string(REPLACE "." ";" HAMLIB_VERSION_LIST ${HAMLIB}) - add_compile_definitions() -endif() +# list(GET ${HAMLIB_VERSION_LIST} 0 HAMLIBVERSION_MAJOR) +# list(GET ${HAMLIB_VERSION_LIST} 1 HAMLIBVERSION_MINOR) +# list(GET ${HAMLIB_VERSION_LIST} 2 HAMLIBVERSION_PATCH) + +# add_compile_definitions( +# HAMLIBVERSION_MAJOR=${HAMLIBVERSION_MAJOR} +# HAMLIBVERSION_MINOR=${HAMLIBVERSION_MINOR} +# HAMLIBVERSION_PATCH=${HAMLIBVERSION_PATCH} +# ) +# elseif(APPLE OR WIN32) +# string(REPLACE "." ";" HAMLIB_VERSION_LIST ${HAMLIB}) +# add_compile_definitions() +# endif() target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR} @@ -607,27 +619,27 @@ target_include_directories(${PROJECT_NAME} PRIVATE # Linking target_link_libraries(${PROJECT_NAME} PRIVATE - Qt6::Core - Qt6::Network - Qt6::Gui - Qt6::Widgets - Qt6::Sql - Qt6::Xml - Qt6::Charts - Qt6::WebEngineWidgets - Qt6::SerialPort - Qt6::QuickWidgets - Qt6::WebChannel - Qt6::WebSockets - Qt6::PrintSupport + Qt${QT_VERSION}::Core + Qt${QT_VERSION}::Network + Qt${QT_VERSION}::Gui + Qt${QT_VERSION}::Widgets + Qt${QT_VERSION}::Sql + Qt${QT_VERSION}::Xml + Qt${QT_VERSION}::Charts + Qt${QT_VERSION}::WebEngineWidgets + Qt${QT_VERSION}::SerialPort + Qt${QT_VERSION}::QuickWidgets + Qt${QT_VERSION}::WebChannel + Qt${QT_VERSION}::WebSockets + Qt${QT_VERSION}::PrintSupport ) target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads) if(LINUX) target_link_libraries(${PROJECT_NAME} PRIVATE - Qt6::DBus - Qt6Keychain::Qt6Keychain + Qt${QT_VERSION}::DBus + Qt${QT_VERSION}Keychain::Qt${QT_VERSION}Keychain OpenSSL::SSL PkgConfig::HAMLIB PkgConfig::SQLITE3 @@ -639,7 +651,7 @@ elseif(WIN32 OR APPLE) ZLIB SSL CRYPTO - QT6KEYCHAIN + QT${QT_VERSION}KEYCHAIN ) if(WIN32) From 003a04c5c21f71ea3a700fefdc148bfe74a88273 Mon Sep 17 00:00:00 2001 From: dawkagaming <147207983+dawkagaming@users.noreply.github.com> Date: Wed, 8 Jul 2026 15:50:47 +0200 Subject: [PATCH 08/14] Fixes for previous mistakes in configuration (AUTOMOC etc.), commented option that is for newest CMake only --- CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a391eead..521d8702 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,9 @@ cmake_minimum_required(VERSION 3.31) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) add_compile_definitions( QT_DEPRECATED_WARNINGS @@ -10,7 +13,7 @@ add_compile_definitions( project(qlog VERSION 0.51.0 - SPDX_LICENSE GPL-3.0+ + # SPDX_LICENSE "GPL-3.0+" CMake 4.3+ DESCRIPTION "Amateur radio logbook software" HOMEPAGE_URL "https://github.com/foldynl/QLog" LANGUAGES C CXX From d69ec42a77d6702a938f8ff764e525ba55ca58aa Mon Sep 17 00:00:00 2001 From: dawkagaming <147207983+dawkagaming@users.noreply.github.com> Date: Wed, 8 Jul 2026 16:00:25 +0200 Subject: [PATCH 09/14] Added some verbosity --- CMakeLists.txt | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 521d8702..f5025d73 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,7 +28,9 @@ else() set(QT_VERSION 5) endif() -find_package(Qt${QT_VERSION} QUIET +message(STATUS "Using Qt version ${QT_VERSION} for the build!") + +find_package(Qt${QT_VERSION} REQUIRED COMPONENTS Core Network @@ -50,6 +52,8 @@ if(LINUX) find_package(Qt${QT_VERSION} REQUIRED COMPONENTS DBus) endif() +message(STATUS "Found all Qt required components!") + qt_standard_project_setup() set(SOURCES @@ -567,12 +571,25 @@ elseif(WIN32) # Add sqlite3 + # Find libraries for Windows + find_library(WS2_32 ws2_32 REQUIRED) + message(STATUS "Found ws2_32: ${WS2_32}") + find_library(HAMLIB libhamlib-4 REQUIRED) + message(STATUS "Found libhamlib-4: ${HAMLIB}") + find_library(ZLIB zlib REQUIRED) + message(STATUS "Found zlib: ${ZLIB}") + find_library(CRYPTO libcrypto REQUIRED) + message(STATUS "Found libcrypto: ${CRYPTO}") + find_library(SSL ssl REQUIRED) + message(STATUS "Found libssl: ${SSL}") + find_library(QT${QT_VERSION}KEYCHAIN qt${QT_VERSION}keychain REQUIRED) + message(STATUS "Found QtKeyChain: ---") elseif(APPLE) target_include_directories(${PROJECT_NAME} PRIVATE /usr/local/include @@ -588,12 +605,25 @@ elseif(APPLE) target_link_directories(${PROJECT_NAME} PRIVATE ${LIB_SEARCH_PATHS}) + # Find libraries for MacOS + find_library(SQLITE3 sqlite3 REQUIRED PATHS ${LIB_SEARCH_PATHS}) + message(STATUS "Found libsqlite3: ${SQLITE3}") + find_library(HAMLIB hamlib REQUIRED PATHS ${LIB_SEARCH_PATHS}) + message(STATUS "Found libhamlib: ${HAMLIB}") + find_library(ZLIB z REQUIRED PATHS ${LIB_SEARCH_PATHS}) + message(STATUS "Found zlib: ${ZLIB}") + find_library(CRYPTO crypto REQUIRED PATHS ${LIB_SEARCH_PATHS}) + message(STATUS "Found libcrypto: ${CRYPTO}") + find_library(SSL ssl REQUIRED PATHS ${LIB_SEARCH_PATHS}) + message(STATUS "Found libssl: ${SSL}") + find_library(QT${QT_VERSION}KEYCHAIN qt${QT_VERSION}keychain REQUIRED PATHS ${LIB_SEARCH_PATHS}) + message(STATUS "Found QtKeyChain: ---") endif() # TODO @@ -621,6 +651,8 @@ target_include_directories(${PROJECT_NAME} PRIVATE # Linking +# Link Qt Libraries + target_link_libraries(${PROJECT_NAME} PRIVATE Qt${QT_VERSION}::Core Qt${QT_VERSION}::Network From ac5ad099bbef9d53046d7545afbdd6722165c786 Mon Sep 17 00:00:00 2001 From: dawkagaming <147207983+dawkagaming@users.noreply.github.com> Date: Mon, 13 Jul 2026 15:42:56 +0200 Subject: [PATCH 10/14] Lower the minimal cmake version --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f5025d73..82ad1d38 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.31) +cmake_minimum_required(VERSION 3.22) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) From e98ca090c0853ba5519dd1a74fb37e956d316c63 Mon Sep 17 00:00:00 2001 From: dawkagaming <147207983+dawkagaming@users.noreply.github.com> Date: Mon, 13 Jul 2026 15:51:43 +0200 Subject: [PATCH 11/14] Fix the hamlib version detection on Linux --- CMakeLists.txt | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 82ad1d38..0826153b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -628,22 +628,22 @@ endif() # TODO -# if(LINUX) -# string(REPLACE "." ";" HAMLIB_VERSION_LIST ${HAMLIB_VERSION}) - -# list(GET ${HAMLIB_VERSION_LIST} 0 HAMLIBVERSION_MAJOR) -# list(GET ${HAMLIB_VERSION_LIST} 1 HAMLIBVERSION_MINOR) -# list(GET ${HAMLIB_VERSION_LIST} 2 HAMLIBVERSION_PATCH) - -# add_compile_definitions( -# HAMLIBVERSION_MAJOR=${HAMLIBVERSION_MAJOR} -# HAMLIBVERSION_MINOR=${HAMLIBVERSION_MINOR} -# HAMLIBVERSION_PATCH=${HAMLIBVERSION_PATCH} -# ) -# elseif(APPLE OR WIN32) -# string(REPLACE "." ";" HAMLIB_VERSION_LIST ${HAMLIB}) -# add_compile_definitions() -# endif() +if(LINUX) + string(REPLACE "." ";" HAMLIB_VERSION_LIST ${HAMLIB_VERSION}) + + list(GET HAMLIB_VERSION_LIST 0 HAMLIBVERSION_MAJOR) + list(GET HAMLIB_VERSION_LIST 1 HAMLIBVERSION_MINOR) + list(GET HAMLIB_VERSION_LIST 2 HAMLIBVERSION_PATCH) + + add_compile_definitions( + HAMLIBVERSION_MAJOR=${HAMLIBVERSION_MAJOR} + HAMLIBVERSION_MINOR=${HAMLIBVERSION_MINOR} + HAMLIBVERSION_PATCH=${HAMLIBVERSION_PATCH} + ) +elseif(APPLE OR WIN32) + string(REPLACE "." ";" HAMLIB_VERSION_LIST ${HAMLIB}) + add_compile_definitions() +endif() target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR} From 419a6108d21c66477dc044865861e2795e5b1827 Mon Sep 17 00:00:00 2001 From: dawkagaming <147207983+dawkagaming@users.noreply.github.com> Date: Mon, 13 Jul 2026 15:49:31 +0200 Subject: [PATCH 12/14] Update the Linux CI/CD with cmake --- .github/workflows/c-cpp.yml | 16 ++++++++-------- CMakeLists.txt | 3 +-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index ee35dc55..f291dc6b 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -14,7 +14,7 @@ jobs: name: Ubuntu CI QT5 strategy: matrix: - os: [ubuntu-22.04, ubuntu-24.04] + os: [ubuntu-22.04, ubuntu-24.04, ubuntu-26.04] runs-on: ${{ matrix.os }} @@ -22,19 +22,19 @@ jobs: - name: Install dependencies run: | sudo apt-get update - sudo apt-get -y install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libsqlite3-dev libhamlib++-dev libqt5charts5-dev qttools5-dev-tools libqt5keychain1 qt5keychain-dev qtwebengine5-dev build-essential libqt5serialport5-dev pkg-config libqt5websockets5-dev + sudo apt-get -y install build-essential cmake pkg-config libhamlib-dev libsqlite3-dev qtbase5-dev qttools5-dev qttools5-dev-tools libqt5charts5-dev qttools5-dev-tools qt5keychain-dev qtwebengine5-dev libqt5serialport5-dev libqt5websockets5-dev - name: Checkout code uses: actions/checkout@v5 - name: configure - run: qmake QLog.pro + run: cmake -DUSE_QT6=OFF . - name: make - run: make -j2 + run: make ubuntu-build-qt6: name: Ubuntu CI QT6 strategy: matrix: - os: [ubuntu-22.04, ubuntu-24.04] + os: [ubuntu-24.04, ubuntu-26.04] runs-on: ${{ matrix.os }} @@ -42,13 +42,13 @@ jobs: - name: Install dependencies run: | sudo apt-get update - sudo apt-get -y install libhamlib-dev build-essential pkg-config qt6-base-dev qtkeychain-qt6-dev qt6-webengine-dev libqt6charts6-dev libqt6serialport6-dev libqt6webenginecore6-bin libqt6svg6-dev libgl-dev libqt6websockets6-dev + sudo apt-get -y install build-essential cmake pkg-config libhamlib-dev libsqlite3-dev qt6-base-dev qt6-tools-dev qtkeychain-qt6-dev qt6-webengine-dev qt6-charts-dev qt6-serialport-dev qt6-svg-dev qt6-websockets-dev - name: Checkout code uses: actions/checkout@v5 - name: configure - run: qmake6 QLog.pro + run: cmake . - name: make - run: make -j2 + run: make macos-build: name: MacOS CI diff --git a/CMakeLists.txt b/CMakeLists.txt index 0826153b..99cdd3fc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.22) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) @@ -54,8 +55,6 @@ endif() message(STATUS "Found all Qt required components!") -qt_standard_project_setup() - set(SOURCES awards/AwardDefinition.cpp awards/AwardDXCC.cpp From af7a4c70cc46a7aacac33033d2ddd38f5e9c2875 Mon Sep 17 00:00:00 2001 From: dawkagaming <147207983+dawkagaming@users.noreply.github.com> Date: Mon, 13 Jul 2026 16:40:36 +0200 Subject: [PATCH 13/14] Fix Qt5 compatiblity --- CMakeLists.txt | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 99cdd3fc..a2090ec6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -527,14 +527,27 @@ set(TRANSLATIONS i18n/qlog_zh_CN.ts ) -qt_add_executable(${PROJECT_NAME} - ${SOURCES} - ${HEADERS} - ${FORMS} - ${RESOURCES} -) +if(QT_VERSION EQUAL 6) + qt_add_executable(${PROJECT_NAME} + ${SOURCES} + ${HEADERS} + ${FORMS} + ${RESOURCES} + ) -qt_add_translations(${PROJECT_NAME} TS_FILES ${TRANSLATIONS}) + qt_add_translations(${PROJECT_NAME} TS_FILES ${TRANSLATIONS}) +else() + add_executable(${PROJECT_NAME} + ${SOURCES} + ${HEADERS} + ${FORMS} + ${RESOURCES} + ) + + qt5_add_translation(QM_FILES ${TRANSLATIONS}) + + target_sources(${PROJECT_NAME} PRIVATE ${QM_FILES}) +endif() find_package(Threads REQUIRED) From c4d514202a907f43ef402b5f4ba8359bedf8d6ad Mon Sep 17 00:00:00 2001 From: dawkagaming <147207983+dawkagaming@users.noreply.github.com> Date: Mon, 13 Jul 2026 22:34:33 +0200 Subject: [PATCH 14/14] Add placeholder for Windows/MacOS hamlib version --- CMakeLists.txt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a2090ec6..9862579b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -653,10 +653,17 @@ if(LINUX) HAMLIBVERSION_PATCH=${HAMLIBVERSION_PATCH} ) elseif(APPLE OR WIN32) - string(REPLACE "." ";" HAMLIB_VERSION_LIST ${HAMLIB}) - add_compile_definitions() + set(HAMLIBVERSION_MAJOR 4) + set(HAMLIBVERSION_MINOR 7) + set(HAMLIBVERSION_PATCH 0) endif() +add_compile_definitions( + HAMLIBVERSION_MAJOR=${HAMLIBVERSION_MAJOR} + HAMLIBVERSION_MINOR=${HAMLIBVERSION_MINOR} + HAMLIBVERSION_PATCH=${HAMLIBVERSION_PATCH} +) + target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR} )