diff --git a/.github/actions/qt-android/action.yml b/.github/actions/qt-android/action.yml index e406eaca88eb..00dcbab4f6fe 100644 --- a/.github/actions/qt-android/action.yml +++ b/.github/actions/qt-android/action.yml @@ -10,7 +10,7 @@ inputs: version: description: Qt Version required: false - default: 6.6.3 + default: 6.8.1 abis: description: ABIs to Build required: false @@ -28,14 +28,14 @@ runs: uses: android-actions/setup-android@v3 with: cmdline-tools-version: 12266719 - packages: 'platform-tools platforms;android-35 build-tools;35.0.0' # ndk;25.1.8937393' + packages: 'platform-tools platforms;android-35 build-tools;35.0.0' # ndk;26.1.10909125' log-accepted-android-sdk-licenses: false - name: Install Android NDK uses: nttld/setup-ndk@v1 id: setup-ndk with: - ndk-version: r25b + ndk-version: r26b add-to-path: false - run: | diff --git a/.github/workflows/android-linux.yml b/.github/workflows/android-linux.yml index e931308c1a59..64ade02b7241 100644 --- a/.github/workflows/android-linux.yml +++ b/.github/workflows/android-linux.yml @@ -33,7 +33,7 @@ jobs: env: ARTIFACT: QGroundControl.apk - QT_VERSION: 6.6.3 + QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 QT_ANDROID_KEYSTORE_PATH: ${{ github.workspace }}/deploy/android/android_release.keystore QT_ANDROID_KEYSTORE_ALIAS: QGCAndroidKeyStore @@ -69,7 +69,7 @@ jobs: uses: ./.github/actions/qt-android with: host: linux - arch: gcc_64 + arch: linux_gcc_64 version: ${{ env.QT_VERSION }} abis: ${{ env.QT_ANDROID_ABIS }} diff --git a/.github/workflows/android-macos.yml b/.github/workflows/android-macos.yml index 841560402f6a..dae5c9a367fd 100644 --- a/.github/workflows/android-macos.yml +++ b/.github/workflows/android-macos.yml @@ -17,7 +17,7 @@ jobs: env: ARTIFACT: QGroundControl.apk - QT_VERSION: 6.6.3 + QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 QT_ANDROID_KEYSTORE_PATH: ${{ github.workspace }}/deploy/android/android_release.keystore QT_ANDROID_KEYSTORE_ALIAS: QGCAndroidKeyStore diff --git a/.github/workflows/android-windows.yml b/.github/workflows/android-windows.yml index d237fbea70b7..c370d4d33b88 100644 --- a/.github/workflows/android-windows.yml +++ b/.github/workflows/android-windows.yml @@ -33,7 +33,7 @@ jobs: env: ARTIFACT: QGroundControl.apk - QT_VERSION: 6.6.3 + QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 QT_ANDROID_KEYSTORE_PATH: ${{ github.workspace }}/deploy/android/android_release.keystore QT_ANDROID_KEYSTORE_ALIAS: QGCAndroidKeyStore @@ -59,7 +59,7 @@ jobs: uses: ./.github/actions/qt-android with: host: windows - arch: win64_msvc2019_64 + arch: win64_msvc2022_64 version: ${{ env.QT_VERSION }} abis: ${{ env.QT_ANDROID_ABIS }} diff --git a/.github/workflows/custom.yml b/.github/workflows/custom.yml index 7648fda89d8d..0e0504b69e77 100644 --- a/.github/workflows/custom.yml +++ b/.github/workflows/custom.yml @@ -36,7 +36,7 @@ jobs: env: ARTIFACT: QGroundControl-installer.exe - QT_VERSION: 6.6.3 + QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 SCCACHE_GHA_ENABLED: "true" @@ -107,7 +107,7 @@ jobs: aqtversion: ==3.1.* host: windows target: desktop - arch: win64_msvc2019_arm64 + arch: win64_msvc2022_arm64 # _cross_compiled dir: ${{ runner.temp }} extra: --autodesktop modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 105b67b03de2..eaef8e962a27 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -17,7 +17,7 @@ jobs: env: ARTIFACT: QGroundControl.app - QT_VERSION: 6.6.3 + QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 steps: diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index e67a558f3230..867ee082673b 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -35,7 +35,7 @@ jobs: env: ARTIFACT: QGroundControl-x86_64.AppImage - QT_VERSION: 6.6.3 + QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 steps: @@ -95,7 +95,7 @@ jobs: aqtversion: ==3.1.* host: linux target: desktop - arch: gcc_64 + arch: linux_gcc_64 dir: ${{ runner.temp }} modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors cache: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 0bbdbc48d250..35aedd67ef13 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -35,7 +35,7 @@ jobs: env: ARTIFACT: QGroundControl.dmg - QT_VERSION: 6.6.3 + QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 steps: diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 542cd31e1b79..743ab892da33 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -36,7 +36,7 @@ jobs: env: ARTIFACT: QGroundControl-installer.exe - QT_VERSION: 6.6.3 + QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 SCCACHE_GHA_ENABLED: "true" @@ -87,7 +87,7 @@ jobs: aqtversion: ==3.1.* host: windows target: desktop - arch: win64_msvc2019_64 + arch: win64_msvc2022_64 dir: ${{ runner.temp }} modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors cache: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} @@ -100,7 +100,7 @@ jobs: aqtversion: ==3.1.* host: windows target: desktop - arch: win64_msvc2019_arm64 + arch: win64_msvc2022_arm64 # _cross_compiled dir: ${{ runner.temp }} extra: --autodesktop modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors diff --git a/CMakeLists.txt b/CMakeLists.txt index d50e8750edac..154b28173c46 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -193,13 +193,18 @@ if(NOT Qt6LinguistTools_DIR) set(Qt6LinguistTools_DIR ${QT_HOST_PATH}/lib/cmake/Qt6LinguistTools) endif() -# Require 6.6.3 because otherwise libQt6QuickControls2Basic.so.6 & -# libQt6QuickControls2BasicStyleImpl.so.6 are missing. -qt_standard_project_setup(REQUIRES 6.6.3) +qt_standard_project_setup( + REQUIRES 6.8.1 + SUPPORTS_UP_TO 6.8.1 + I18N_SOURCE_LANGUAGE en +) qt_policy( SET QTP0001 NEW SET QTP0002 NEW + SET QTP0003 NEW + SET QTP0004 NEW + SET QTP0005 NEW ) ####################################################### @@ -289,10 +294,9 @@ qt_add_executable(${PROJECT_NAME} ) if(Qt6LinguistTools_FOUND) - # TODO: Update to new qt_add_translations form in Qt6.7 file(GLOB TS_SOURCES ${CMAKE_SOURCE_DIR}/translations/qgc_*.ts) set_source_files_properties(${TS_SOURCES} PROPERTIES OUTPUT_LOCATION "${CMAKE_BINARY_DIR}/i18n") - qt_add_translations(${PROJECT_NAME} + qt_add_translations(${CMAKE_PROJECT_NAME} TS_FILES ${TS_SOURCES} RESOURCE_PREFIX "/" LUPDATE_OPTIONS -no-obsolete diff --git a/deploy/docker/Dockerfile-build-ubuntu b/deploy/docker/Dockerfile-build-ubuntu index 19f00a1064fb..4c2ab1afaeec 100644 --- a/deploy/docker/Dockerfile-build-ubuntu +++ b/deploy/docker/Dockerfile-build-ubuntu @@ -1,6 +1,6 @@ FROM ubuntu:20.04 -ARG QT_VERSION=6.6.3 +ARG QT_VERSION=6.8.1 ARG QT_MODULES="qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors" ENV DEBIAN_FRONTEND noninteractive diff --git a/deploy/vagrant/.vagrantconfig.yml b/deploy/vagrant/.vagrantconfig.yml index cd8554523871..594b46c6ed3c 100644 --- a/deploy/vagrant/.vagrantconfig.yml +++ b/deploy/vagrant/.vagrantconfig.yml @@ -3,10 +3,10 @@ configs: 'qt_deps_unpack_parent_dir': '/home/vagrant' 'qt_deps_unpack_dir': '/home/vagrant/Qt' - 'qt_deps_bin_unpack_dir': '/home/vagrant/Qt/6.6.3/gcc_64/bin' - 'qt_deps_lib_unpack_dir': '/home/vagrant/Qt/6.6.3/gcc_64/lib' - 'qt_deps_plugins_unpack_dir': '/home/vagrant/Qt/6.6.3/gcc_64/plugins' - 'qt_deps_qml_unpack_dir': '/home/vagrant/Qt/6.6.3/gcc_64/qml' + 'qt_deps_bin_unpack_dir': '/home/vagrant/Qt/6.8.1/gcc_64/bin' + 'qt_deps_lib_unpack_dir': '/home/vagrant/Qt/6.8.1/gcc_64/lib' + 'qt_deps_plugins_unpack_dir': '/home/vagrant/Qt/6.8.1/gcc_64/plugins' + 'qt_deps_qml_unpack_dir': '/home/vagrant/Qt/6.8.1/gcc_64/qml' 'project_root_dir': '/vagrant' diff --git a/docs/en/qgc-dev-guide/getting_started/index.md b/docs/en/qgc-dev-guide/getting_started/index.md index 00406dcb9a00..4b0e47906cdd 100644 --- a/docs/en/qgc-dev-guide/getting_started/index.md +++ b/docs/en/qgc-dev-guide/getting_started/index.md @@ -1,5 +1,5 @@ --- -qt_version: 6.6.3 +qt_version: 6.8.1 --- # Getting Started with Source and Builds diff --git a/src/GPS/CMakeLists.txt b/src/GPS/CMakeLists.txt index 9dc4ea32fd88..a95e2ccda6e8 100644 --- a/src/GPS/CMakeLists.txt +++ b/src/GPS/CMakeLists.txt @@ -74,6 +74,7 @@ target_link_libraries(GPS Vehicle PUBLIC Qt6::Core + FactSystem GPSDrivers ) diff --git a/src/Joystick/CMakeLists.txt b/src/Joystick/CMakeLists.txt index bdb8d8630946..2234011860e6 100644 --- a/src/Joystick/CMakeLists.txt +++ b/src/Joystick/CMakeLists.txt @@ -59,11 +59,11 @@ qt_add_resources(Joystick "gamecontrollerdb.txt" FILES ${sdl_gamecontrollerdb_SOURCE_DIR}/gamecontrollerdb.txt ) -qt_add_qml_module(Joystick - URI QGroundControl.JoystickManager - VERSION 1.0 - IMPORT_PATH ${QT_QML_OUTPUT_DIRECTORY} -) +# qt_add_qml_module(Joystick +# URI QGroundControl.JoystickManager +# VERSION 1.0 +# IMPORT_PATH ${QT_QML_OUTPUT_DIRECTORY} +# ) set(MINIMUM_SDL2_VERSION 2.24.0) if(NOT QGC_BUILD_DEPENDENCIES) diff --git a/src/Joystick/JoystickManager.cc b/src/Joystick/JoystickManager.cc index fd00d7caf83a..c0a5b9c0e2d1 100644 --- a/src/Joystick/JoystickManager.cc +++ b/src/Joystick/JoystickManager.cc @@ -33,6 +33,8 @@ JoystickManager::JoystickManager(QObject *parent) { // qCDebug(JoystickManagerLog) << Q_FUNC_INFO << this; + + _joystickCheckTimer->setInterval(kTimerInterval); _joystickCheckTimer->setSingleShot(false); } @@ -53,6 +55,12 @@ JoystickManager *JoystickManager::instance() return _joystickManager(); } +void JoystickManager::registerQmlTypes() +{ + (void) qmlRegisterUncreatableType("QGroundControl.JoystickManager", 1, 0, "JoystickManager", "Reference only"); + (void) qmlRegisterUncreatableType("QGroundControl.JoystickManager", 1, 0, "Joystick", "Reference only"); +} + void JoystickManager::init() { #ifdef QGC_SDL_JOYSTICK diff --git a/src/Joystick/JoystickManager.h b/src/Joystick/JoystickManager.h index 46bd25e63192..4cea647770d7 100644 --- a/src/Joystick/JoystickManager.h +++ b/src/Joystick/JoystickManager.h @@ -35,6 +35,7 @@ class JoystickManager : public QObject ~JoystickManager(); static JoystickManager *instance(); + static void registerQmlTypes(); QVariantList joysticks(); QStringList joystickNames() const { return _name2JoystickMap.keys(); } diff --git a/src/QGCApplication.cc b/src/QGCApplication.cc index 0cee51a7a90b..d5d97b9c5b77 100644 --- a/src/QGCApplication.cc +++ b/src/QGCApplication.cc @@ -278,6 +278,7 @@ void QGCApplication::init() VideoManager::registerQmlTypes(); QGCCorePlugin::registerQmlTypes(); GPSRtk::registerQmlTypes(); + JoystickManager::registerQmlTypes(); #ifdef QGC_VIEWER3D Viewer3DManager::registerQmlTypes(); #endif diff --git a/src/Vehicle/Actuators/ActuatorTesting.h b/src/Vehicle/Actuators/ActuatorTesting.h index 735cc3fbc044..c5bb5cbe4622 100644 --- a/src/Vehicle/Actuators/ActuatorTesting.h +++ b/src/Vehicle/Actuators/ActuatorTesting.h @@ -12,7 +12,7 @@ #include "QmlObjectListModel.h" #include "Vehicle.h" -#include "QGCMAVLink.h" +#include "MAVLinkLib.h" #include #include #include diff --git a/src/Vehicle/Actuators/CMakeLists.txt b/src/Vehicle/Actuators/CMakeLists.txt index 6956de3cb9fa..d43fc86658d2 100644 --- a/src/Vehicle/Actuators/CMakeLists.txt +++ b/src/Vehicle/Actuators/CMakeLists.txt @@ -26,8 +26,8 @@ target_link_libraries(VehicleActuators PUBLIC Qt6::Core Qt6::Gui - Comms FactSystem + MAVLink QmlControls Vehicle ) diff --git a/src/Vehicle/CMakeLists.txt b/src/Vehicle/CMakeLists.txt index 49c65ebbb930..ccc239229129 100644 --- a/src/Vehicle/CMakeLists.txt +++ b/src/Vehicle/CMakeLists.txt @@ -41,7 +41,6 @@ target_link_libraries(Vehicle Audio AutoPilotPlugins Camera - FirmwarePlugin Joystick MockLink PositionManager @@ -53,6 +52,7 @@ target_link_libraries(Vehicle Qt6::Positioning Comms FactSystem + FirmwarePlugin Gimbal LibEventsWrapper MAVLink diff --git a/src/Vehicle/Components/CMakeLists.txt b/src/Vehicle/Components/CMakeLists.txt index 3be20b85d16a..6dc3ec561089 100644 --- a/src/Vehicle/Components/CMakeLists.txt +++ b/src/Vehicle/Components/CMakeLists.txt @@ -27,8 +27,8 @@ target_link_libraries(VehicleComponents Vehicle PUBLIC Qt6::Core - Comms FactSystem + MAVLink Utilities ) diff --git a/src/Vehicle/Components/CompInfo.h b/src/Vehicle/Components/CompInfo.h index c36870f493e6..c8eb32dd51de 100644 --- a/src/Vehicle/Components/CompInfo.h +++ b/src/Vehicle/Components/CompInfo.h @@ -9,7 +9,7 @@ #pragma once -#include "QGCMAVLink.h" +#include "MAVLinkLib.h" #include diff --git a/src/Vehicle/Components/CompInfoParam.h b/src/Vehicle/Components/CompInfoParam.h index 2197406bfc5f..2b2e77b4feec 100644 --- a/src/Vehicle/Components/CompInfoParam.h +++ b/src/Vehicle/Components/CompInfoParam.h @@ -10,7 +10,7 @@ #pragma once #include "CompInfo.h" -#include "QGCMAVLink.h" +#include "MAVLinkLib.h" #include "FactMetaData.h" #include diff --git a/src/Vehicle/Components/ComponentInformationManager.h b/src/Vehicle/Components/ComponentInformationManager.h index 5ac7a7fb6f38..85043d6b8b59 100644 --- a/src/Vehicle/Components/ComponentInformationManager.h +++ b/src/Vehicle/Components/ComponentInformationManager.h @@ -9,7 +9,7 @@ #pragma once -#include "QGCMAVLink.h" +#include "MAVLinkLib.h" #include "StateMachine.h" #include diff --git a/src/Vehicle/StandardModes.h b/src/Vehicle/StandardModes.h index 374d2a477686..94858688b956 100644 --- a/src/Vehicle/StandardModes.h +++ b/src/Vehicle/StandardModes.h @@ -9,8 +9,8 @@ #pragma once -#include "MAVLinkLib.h" #include "FirmwarePlugin.h" +#include "MAVLinkLib.h" #include #include diff --git a/src/Vehicle/Vehicle.h b/src/Vehicle/Vehicle.h index 7f193525cbbf..7e1920f95fd4 100644 --- a/src/Vehicle/Vehicle.h +++ b/src/Vehicle/Vehicle.h @@ -97,7 +97,7 @@ class Vehicle : public VehicleFactGroup Q_MOC_INCLUDE("Autotune.h") Q_MOC_INCLUDE("RemoteIDManager.h") Q_MOC_INCLUDE("QGCCameraManager.h") - Q_MOC_INCLUDE("Actuators/Actuators.h") + Q_MOC_INCLUDE("Actuators.h") friend class InitialConnectStateMachine; friend class VehicleLinkManager; diff --git a/tools/setup/install-qt-debian.sh b/tools/setup/install-qt-debian.sh index 6ba4521b86c8..52bfc0448648 100755 --- a/tools/setup/install-qt-debian.sh +++ b/tools/setup/install-qt-debian.sh @@ -1,10 +1,10 @@ #!/usr/bin/env bash -QT_VERSION="${QT_VERSION:-6.6.3}" +QT_VERSION="${QT_VERSION:-6.8.1}" QT_PATH="${QT_PATH:-/opt/Qt}" QT_HOST="${QT_HOST:-linux}" QT_TARGET="${QT_TARGET:-desktop}" -QT_ARCH="${QT_ARCH:-gcc_64}" +QT_ARCH="${QT_ARCH:-linux_gcc_64}" QT_MODULES="${QT_MODULES:-qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors}" set -e diff --git a/translations/qgc-lupdate.sh b/translations/qgc-lupdate.sh index 6923472a05fc..47e6e7465a82 100755 --- a/translations/qgc-lupdate.sh +++ b/translations/qgc-lupdate.sh @@ -1,5 +1,5 @@ #!/bin/bash # This script will update both the Qt and Json string translation files. -QT_PATH=~/Qt/6.6.3/macos/bin +QT_PATH=~/Qt/6.8.1/macos/bin $QT_PATH/lupdate ../src -ts qgc.ts -no-obsolete python3 qgc-lupdate-json.py