diff --git a/cmake/devtools_qt_helper.cmake b/cmake/devtools_qt_helper.cmake index 993ad86..230eaa0 100644 --- a/cmake/devtools_qt_helper.cmake +++ b/cmake/devtools_qt_helper.cmake @@ -27,6 +27,20 @@ if (Qt6_DIR) get_target_property(_qmake_executable Qt::qmake IMPORTED_LOCATION) get_filename_component(_qt_bin_dir "${_qmake_executable}" DIRECTORY) + if (LINUX) + get_target_property(_qt_core_lib Qt6::Core IMPORTED_LOCATION) + if(_qt_core_lib) + execute_process( + COMMAND readelf -d ${_qt_core_lib} + OUTPUT_VARIABLE _qt_core_needed + ERROR_QUIET + ) + if(NOT _qt_core_needed MATCHES "libicui18n") + set(ICU_DATA_NEEDS_PATCHING TRUE) + endif() + endif() + endif() + function(deploy_qt_build target) if (WIN32) find_program(DEPLOYQT_EXECUTABLE windeployqt HINTS "${_qt_bin_dir}") @@ -41,8 +55,8 @@ if (Qt6_DIR) ) endif () - # Ensure that libicudata.so.70 is added as an explicit dependency of Qt based targets so that it gets deployed - if (LINUX) + if (ICU_DATA_NEEDS_PATCHING) + message(WARNING "Qt6Core does not link libicudata. Manually adding libicudata.so.70.") add_custom_command(TARGET ${target} POST_BUILD COMMAND patchelf --add-needed libicudata.so.70 $) endif () diff --git a/source/backend/rmt_mutex.cpp b/source/backend/rmt_mutex.cpp index dbe3c4b..a77c8d1 100644 --- a/source/backend/rmt_mutex.cpp +++ b/source/backend/rmt_mutex.cpp @@ -6,6 +6,7 @@ //============================================================================= #ifndef _WIN32 +#include #include #endif // #ifndef _WIN32 diff --git a/source/frontend/views/settings/settings_pane.cpp b/source/frontend/views/settings/settings_pane.cpp index 01a70e9..356205a 100644 --- a/source/frontend/views/settings/settings_pane.cpp +++ b/source/frontend/views/settings/settings_pane.cpp @@ -69,7 +69,14 @@ SettingsPane::SettingsPane(QWidget* parent) ui_->byte_units_combo_push_button_->SetSelectedRow(0); connect(ui_->byte_units_combo_push_button_, &ArrowIconComboBox::SelectionChanged, this, &SettingsPane::ByteUnitsChanged); - connect(ui_->check_for_updates_on_startup_checkbox_, &CheckBoxWidget::stateChanged, this, &SettingsPane::CheckForUpdatesOnStartupStateChanged); + const auto state_change_function = +#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) + &CheckBoxWidget::checkStateChanged; +#else + &CheckBoxWidget::stateChanged; +#endif + + connect(ui_->check_for_updates_on_startup_checkbox_, state_change_function, this, &SettingsPane::CheckForUpdatesOnStartupStateChanged); } SettingsPane::~SettingsPane()