### Install and Run Vagrant Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/ko/qgc-dev-guide/getting_started/index.md Download and install Vagrant, then use 'vagrant up' to start a virtual machine for building QGroundControl. Use 'vagrant reload' to access the graphical environment. ```shell vagrant up ``` ```shell vagrant reload ``` -------------------------------- ### Run Qt Installer Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/ko/qgc-dev-guide/getting_started/cent_os.md Executes the Qt installer. Follow the on-screen prompts to select components and installation path, typically '~/devel/Qt'. ```bash ./qt-unified-linux-x64-3.1.1-online.run ``` -------------------------------- ### Install Ubuntu Dependencies Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/en/qgc-dev-guide/getting_started/index.md Run this script to install the necessary dependencies for building QGroundControl on Ubuntu. Ensure you have Python 3 installed. ```sh python3 ./qgroundcontrol/tools/setup/install_dependencies --platform debian ``` -------------------------------- ### Add New Generated Setup Page - CMake Target Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/en/qgc-dev-guide/views/vehicle_config_generation.md Example of a CMakeLists.txt entry to build the generated QML for a specific firmware plugin. This ensures that CMake runs the generator during the build process. ```cmake cmake --build build --config Debug --target GenerateConfigQmlAPM # or GenerateConfigQmlPX4 ``` -------------------------------- ### Install Windows Dependencies Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/en/qgc-dev-guide/getting_started/index.md Run this script to install the necessary dependencies for building QGroundControl on Windows. Ensure you have Python 3 installed. ```sh python3 ./qgroundcontrol/tools/setup/install_dependencies --platform windows ``` -------------------------------- ### Build QGC Installation Files Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/en/qgc-dev-guide/getting_started/index.md Run this command after configuring and building QGC to create installation files. ```shell cmake --install . --config Release ``` -------------------------------- ### Make Qt Installer Executable Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/ko/qgc-dev-guide/getting_started/cent_os.md This command makes the downloaded Qt installer script executable. It is a prerequisite before running the installer. ```bash chmod +x qt-unified-linux-x64-3.1.1-online.run ``` -------------------------------- ### Install macOS Dependencies Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/en/qgc-dev-guide/getting_started/index.md Run this script to install the necessary dependencies for building QGroundControl on macOS. Ensure you have Python 3 installed. ```sh python3 ./qgroundcontrol/tools/setup/install_dependencies --platform macos ``` -------------------------------- ### Install SDL2 for Joystick Support Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/zh/qgc-dev-guide/getting_started/cent_os.md Installs the SDL2 library and development headers, which are necessary for QGC's joystick support. ```bash sudo yum install SDL2 SDL2-devel -y ``` -------------------------------- ### Install Fedora Dependencies Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/en/qgc-dev-guide/getting_started/index.md Installs required packages for QGroundControl development on Fedora using dnf. ```sh sudo dnf install speech-dispatcher SDL2-devel SDL2 systemd-devel patchelf ``` -------------------------------- ### Install Arch Linux Dependencies Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/en/qgc-dev-guide/getting_started/index.md Installs necessary packages for QGroundControl development on Arch Linux using pacman. ```sh pacman -Sy speech-dispatcher patchelf ``` -------------------------------- ### Install LSP Dependencies Source: https://github.com/mavlink/qgroundcontrol/blob/master/tools/qtcreator/README.md Install the necessary Python packages for the QGC Language Server, which provides real-time diagnostics within Qt Creator. ```bash pip install pygls lsprotocol ``` -------------------------------- ### Start QGroundControl with Full Logging on Windows Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/en/qgc-dev-guide/command_line_options.md Use this command in the Windows Command Prompt to start QGroundControl with comprehensive logging enabled. Ensure you navigate to the correct directory. ```sh cd "\Program Files (x86)\qgroundcontrol" qgroundcontrol --logging:full ``` -------------------------------- ### Example Relative Directory Import (App Directory) Source: https://github.com/mavlink/qgroundcontrol/blob/master/tools/skills/qt-qml-test/references/qt-quick-test-source-import.md An example of a relative directory import when the source component is located within an 'app/' subdirectory. ```qml import "../app" ``` -------------------------------- ### Install SDL2 for Joystick Support Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/ko/qgc-dev-guide/getting_started/cent_os.md Installs the SDL2 library and development headers, which are necessary for QGC's joystick support on CentOS 7. ```bash sudo yum install SDL2 SDL2-devel -y ``` -------------------------------- ### Install GStreamer and Dependencies on Ubuntu Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/en/qgc-user-guide/getting_started/download_and_install.md Installs necessary GStreamer plugins and libraries for video streaming support, along with Python bindings and other required packages for QGroundControl on Ubuntu. ```bash sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y sudo apt install python3-gi python3-gst-1.0 -y sudo apt install libfuse2 -y sudo apt install libxcb-xinerama0 libxkbcommon-x11-0 libxcb-cursor-dev -y ``` -------------------------------- ### Install jstest-gtk on Linux Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/en/qgc-user-guide/setup_view/joystick.md Installs the jstest-gtk utility for checking controller setup on Linux systems. ```bash sudo apt install jstest-gtk ``` -------------------------------- ### Install ds4drv on Linux Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/en/qgc-user-guide/setup_view/joystick.md Installs the ds4drv utility, required for wireless setup of Sony PS4 controllers on Linux. ```bash sudo pip install ds4drv ``` -------------------------------- ### Run dump1090 for ADSB Data Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/zh/qgc-user-guide/settings_view/general.md This command starts the dump1090 utility to broadcast detected aircraft messages over TCP. Ensure dump1090 is installed on your system. ```bash dump1090 --net ``` -------------------------------- ### Configure and Build QGroundControl with Testing Enabled Source: https://github.com/mavlink/qgroundcontrol/blob/master/test/TESTING.md Use CMake to configure the build with testing enabled and then build the project. This is the initial setup step before running tests. ```bash cmake -B build -DCMAKE_BUILD_TYPE=Debug -DQGC_BUILD_TESTING=ON cmake --build build ``` -------------------------------- ### Navigate to QGroundControl Repository Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/en/qgc-dev-guide/getting_started/index.md Switch into the qgroundcontrol repository directory before configuring the build. ```sh cd qgroundcontrol ``` -------------------------------- ### Include Install Utilities Source: https://github.com/mavlink/qgroundcontrol/blob/master/CMakeLists.txt Includes the CMake Install module, which provides functionality for installing the project. ```cmake include(Install) ``` -------------------------------- ### Run QGroundControl with Full Logging on Linux Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/en/qgc-user-guide/settings_view/console_logging.md Start QGroundControl using the provided script with the `--logging:full` command-line option. Log traces will be displayed in the current shell. ```shell ./qgroundcontrol-start.sh --logging:full ``` -------------------------------- ### Create Development Directory Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/ko/qgc-dev-guide/getting_started/cent_os.md Creates a directory named 'devel' in the user's home directory and changes the current directory to it. This is the first step for installing Qt and building QGC. ```bash mkdir ~/devel cd ~/devel ``` -------------------------------- ### QML File Structure Example Source: https://github.com/mavlink/qgroundcontrol/blob/master/CODING_STYLE.md Organize QML files by placing properties, signals, and functions in a specific order. Use QGC controls and wrap user-visible strings with qsTr(). ```qml import QtQuick import QtQuick.Controls import QGroundControl import QGroundControl.Controls Item { id: root // 1. Property bindings (width, height, anchors) width: ScreenTools.defaultFontPixelHeight * 10 // 2. Public properties property int myProperty: 0 // 3. Private properties (underscore prefix) readonly property bool _isValid: myProperty > 0 // 4. Signals signal clicked() // 5. Functions function doSomething() { } // 6. Visual children QGCButton { text: qsTr("Click Me") onClicked: root.clicked() } // 7. Connections (use function syntax) Connections { target: someObject function onSignalName() { } // NOT: onSignalName: { } } // 8. Component.onCompleted Component.onCompleted: { } } ``` -------------------------------- ### macOS GStreamer Framework Installation Source: https://github.com/mavlink/qgroundcontrol/blob/master/src/VideoManager/VideoReceiver/GStreamer/CMakeLists.txt Handles the installation of the GStreamer framework on macOS. It removes existing frameworks, installs the framework contents, and creates necessary symbolic links for different versions and the main GStreamer executable. It also installs dylib plugins. ```cmake if(MACOS) if(GSTREAMER_FRAMEWORK) get_filename_component(_gst_framework_real "${GSTREAMER_FRAMEWORK}" REALPATH) set(_gst_fw_dest "${CMAKE_INSTALL_PREFIX}/${CMAKE_PROJECT_NAME}.app/Contents/Frameworks/GStreamer.framework") install(CODE "file(REMOVE_RECURSE \"${_gst_fw_dest}\")") install( DIRECTORY "${_gst_framework_real}/Versions/1.0/" DESTINATION "${_gst_fw_dest}/Versions/1.0" USE_SOURCE_PERMISSIONS PATTERN ".la" EXCLUDE PATTERN ".a" EXCLUDE PATTERN "*/bin" EXCLUDE PATTERN "*/gst-validate-launcher" EXCLUDE PATTERN "*/Headers" EXCLUDE PATTERN "*/include" EXCLUDE PATTERN "*/pkgconfig" EXCLUDE PATTERN "*/share/aclocal" EXCLUDE PATTERN "*/share/bash-completion" EXCLUDE PATTERN "*/share/gdb" EXCLUDE PATTERN "*/share/gst-android" EXCLUDE PATTERN "*/share/gtk-doc" EXCLUDE PATTERN "*/share/installed-tests" EXCLUDE PATTERN "*/share/locale" EXCLUDE PATTERN "*/share/man" EXCLUDE PATTERN "*gstpython*" EXCLUDE PATTERN "Commands" EXCLUDE REGEX ".*/lib/gstreamer-1.0/libgst.*" EXCLUDE ) install(CODE " set(_fw \"${_gst_fw_dest}\") if(NOT EXISTS \" ${_fw}/Versions/1.0/GStreamer\") message(FATAL_ERROR \"GStreamer framework: Versions/1.0/GStreamer not found — SDK layout may have changed\") endif() execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink 1.0 " ${_fw}/Versions/Current") execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink Versions/Current/GStreamer " ${_fw}/GStreamer") if(IS_DIRECTORY " ${_fw}/Versions/1.0/Resources") execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink Versions/Current/Resources " ${_fw}/Resources") endif() ") gstreamer_install_plugins( SOURCE_DIR "${_gst_framework_real}/Versions/1.0/lib/gstreamer-1.0" DEST_DIR "${_gst_fw_dest}/Versions/1.0/lib/gstreamer-1.0" EXTENSION "dylib" PREFIX "libgst" ) ``` -------------------------------- ### Standard Test Setup for Qt Quick Controls Source: https://github.com/mavlink/qgroundcontrol/blob/master/tools/skills/qt-qml-test/references/qt-quick-test-controls.md This is the canonical setup for each test function, creating a temporary object and finding a child control by its objectName. It includes initial verification steps. ```javascript let app = createTemporaryObject(myFormComponent, root) verify(!!app, "Component exists") let = findChild(app, "") verify(!!, "Object exists") ``` -------------------------------- ### macOS GStreamer Installation (Non-Framework) Source: https://github.com/mavlink/qgroundcontrol/blob/master/src/VideoManager/VideoReceiver/GStreamer/CMakeLists.txt Handles installation for non-framework GStreamer layouts on macOS, including downloaded SDKs or Homebrew installations. It copies necessary libraries and plugins to the application bundle. ```cmake set(_mac_fw_dest "${CMAKE_INSTALL_PREFIX}/${CMAKE_PROJECT_NAME}.app/Contents/Frameworks") set(_mac_lib_dest "${CMAKE_INSTALL_PREFIX}/${CMAKE_PROJECT_NAME}.app/Contents/lib") set(_mac_libexec_dest "${CMAKE_INSTALL_PREFIX}/${CMAKE_PROJECT_NAME}.app/Contents/libexec/gstreamer-1.0") if(GStreamer_AUTO_DOWNLOADED) gstreamer_install_libs( SOURCE_DIR "${GSTREAMER_LIB_PATH}" DEST_DIR "${_mac_fw_dest}" EXTENSION "dylib" ) else() file(GLOB _gst_libs "${GSTREAMER_LIB_PATH}/libgst*.dylib" "${GSTREAMER_LIB_PATH}/libglib*.dylib" "${GSTREAMER_LIB_PATH}/libgobject*.dylib" "${GSTREAMER_LIB_PATH}/libgmodule*.dylib" "${GSTREAMER_LIB_PATH}/libgthread*.dylib" "${GSTREAMER_LIB_PATH}/libgio*.dylib" "${GSTREAMER_LIB_PATH}/libintl*.dylib" "${GSTREAMER_LIB_PATH}/liborc*.dylib" "${GSTREAMER_LIB_PATH}/libffi*.dylib" "${GSTREAMER_LIB_PATH}/libpcre2*.dylib" "${GSTREAMER_LIB_PATH}/libgraphene*.dylib" "${GSTREAMER_LIB_PATH}/libssl*.dylib" "${GSTREAMER_LIB_PATH}/libcrypto*.dylib" ) if(_gst_libs) install(FILES ${_gst_libs} DESTINATION "${_mac_fw_dest}") endif() endif() gstreamer_install_plugins( SOURCE_DIR "${GSTREAMER_PLUGIN_PATH}" DEST_DIR "${_mac_lib_dest}/gstreamer-1.0" EXTENSION "dylib" PREFIX "libgst" ) gstreamer_install_gio_modules( SOURCE_DIR "${GSTREAMER_LIB_PATH}/gio/modules" DEST_DIR "${_mac_lib_dest}/gio/modules" EXTENSION "dylib" ) ``` ```cmake foreach(_rpath_dir IN ITEMS "${_mac_lib_dest}/gstreamer-1.0:@loader_path/../../Frameworks" "${_mac_lib_dest}/gio/modules:@loader_path/../../../Frameworks" "${_mac_libexec_dest}:@loader_path/../../Frameworks" ) string(REPLACE ":" ";" _parts "${_rpath_dir}") list(GET _parts 0 _dir) list(GET _parts 1 _rpath) install(CODE " file(GLOB _libs \"${_dir}/*\") foreach(_lib \ ${_libs}) execute_process( COMMAND install_name_tool -add_rpath ${_rpath} " ${_lib}" ERROR_QUIET ) endforeach() ") endforeach() ``` ```cmake if(EXISTS "${GStreamer_ROOT_DIR}/libexec/gstreamer-1.0") install( DIRECTORY "${GStreamer_ROOT_DIR}/libexec/gstreamer-1.0/" DESTINATION "${_mac_libexec_dest}" FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE FILES_MATCHING PATTERN "gst-plugin-scanner" PATTERN "gst-ptp-helper" ) endif() ``` -------------------------------- ### Widgets Variant main.cpp with QApplication Source: https://github.com/mavlink/qgroundcontrol/blob/master/tools/skills/qt-qml-test-run/references/qt-quick-test-cmake.md For the Widgets variant, explicitly construct a QApplication instead of relying on QUICK_TEST_MAIN_WITH_SETUP's default QGuiApplication. This ensures QWidget compatibility. ```cpp #include #include #include class Setup : public QObject { Q_OBJECT public slots: void applicationAvailable() { QCoreApplication::setOrganizationName("QtProject"); QCoreApplication::setOrganizationDomain("qt.io"); QCoreApplication::setApplicationName("qmltests"); } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); Setup setup; return quick_test_main_with_setup(argc, argv, "qmltests", QUICK_TEST_SOURCE_DIR, &setup); } #include "main.moc" ``` -------------------------------- ### Install VA-API Drivers for Intel GPUs Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/ko/qgc-dev-guide/getting_started/cent_os.md Installs the Video Acceleration API (VA-API) drivers and utilities for Intel GPUs. If 'libva-intel-driver' is not found, it provides a manual download and installation method. ```bash sudo yum install libva sudo yum install libva-utils sudo yum install libva-intel-driver ``` ```bash wget http://download1.rpmfusion.org/free/el/updates/7/x86_64/l/libva-intel-driver-1.8.3-4.el7.x86_64.rpm sudo yum localinstall libva-intel-driver-1.8.3-4.el7.x86_64.rpm -y ``` -------------------------------- ### Start QGroundControl with Full Logging on Linux Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/en/qgc-dev-guide/command_line_options.md Run this command in a Linux Terminal to start QGroundControl with full logging. This assumes the qgroundcontrol-start.sh script is in your current directory or accessible via your PATH. ```sh ./qgroundcontrol-start.sh --logging:full ``` -------------------------------- ### Install Dependencies for Linux Source: https://github.com/mavlink/qgroundcontrol/blob/master/tools/README.md Installs build dependencies for Linux environments using apt. ```bash python3 ./tools/setup/install_dependencies --platform debian ``` -------------------------------- ### Run Python LSP Server (STDIO) Source: https://github.com/mavlink/qgroundcontrol/blob/master/tools/lsp/README.md Starts the QGC LSP server using standard input/output, compatible with most editors. ```bash python -m tools.lsp ``` -------------------------------- ### Install libstdc++6 on Debian/Ubuntu Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/en/qgc-dev-guide/getting_started/index.md Install the libstdc++6 package to resolve GLIBCXX_3.4.20 not found errors. ```sh sudo apt-get install libstdc++6 ``` -------------------------------- ### Install GStreamer Plugins on Linux Source: https://github.com/mavlink/qgroundcontrol/blob/master/src/VideoManager/VideoReceiver/GStreamer/CMakeLists.txt Installs GStreamer plugins and GIO modules on Linux systems. It also searches for and installs helper binaries like gst-plugin-scanner and gst-ptp-helper, issuing a warning if gst-plugin-scanner is not found. ```cmake if(LINUX) gstreamer_install_plugins( SOURCE_DIR "${GSTREAMER_PLUGIN_PATH}" DEST_DIR "lib/gstreamer-1.0" EXTENSION "so" PREFIX "libgst" ) gstreamer_install_gio_modules( SOURCE_DIR "${GSTREAMER_LIB_PATH}/gio/modules" DEST_DIR "lib/gio/modules" EXTENSION "so" ) # Helper binary path varies by distro: Debian lib//gstreamer1.0/, # Fedora libexec/gstreamer-1.0/, Arch lib/gstreamer-1.0/. set(_gst_helper_search_paths "${GSTREAMER_LIB_PATH}/gstreamer1.0/gstreamer-1.0" "${GStreamer_ROOT_DIR}/libexec/gstreamer-1.0" "${GSTREAMER_PLUGIN_PATH}" ) find_program(_GST_PLUGIN_SCANNER gst-plugin-scanner PATHS ${_gst_helper_search_paths} NO_DEFAULT_PATH) find_program(_GST_PTP_HELPER gst-ptp-helper PATHS ${_gst_helper_search_paths} NO_DEFAULT_PATH) if(_GST_PLUGIN_SCANNER) install(PROGRAMS "${_GST_PLUGIN_SCANNER}" DESTINATION "lib/gstreamer1.0/gstreamer-1.0") else() message(WARNING "gst-plugin-scanner not found; AppImage video may not work") endif() if(_GST_PTP_HELPER) install(PROGRAMS "${_GST_PTP_HELPER}" DESTINATION "lib/gstreamer1.0/gstreamer-1.0") endif() elseif(WIN32) gstreamer_install_libs( SOURCE_DIR "${GStreamer_ROOT_DIR}/bin" DEST_DIR "${CMAKE_INSTALL_BINDIR}" EXTENSION "dll" ) gstreamer_install_gio_modules( SOURCE_DIR "${GSTREAMER_LIB_PATH}/gio/modules" DEST_DIR "${CMAKE_INSTALL_LIBDIR}/gio/modules" EXTENSION "dll" ) gstreamer_install_plugins( SOURCE_DIR "${GSTREAMER_PLUGIN_PATH}" DEST_DIR "${CMAKE_INSTALL_LIBDIR}/gstreamer-1.0" EXTENSION "dll" PREFIX "gst" ) install( DIRECTORY "${GStreamer_ROOT_DIR}/libexec/gstreamer-1.0/" DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/gstreamer-1.0" FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE FILES_MATCHING PATTERN "*.exe" ) elseif(MACOS) if(GSTREAMER_FRAMEWORK) get_filename_component(_gst_framework_real "${GSTREAMER_FRAMEWORK}" REALPATH) set(_gst_fw_dest "${CMAKE_INSTALL_PREFIX}/${CMAKE_PROJECT_NAME}.app/Contents/Frameworks/GStreamer.framework") install(CODE "file(REMOVE_RECURSE \"${_gst_fw_dest}\")") install( DIRECTORY "${_gst_framework_real}/Versions/1.0/" DESTINATION "${_gst_fw_dest}/Versions/1.0" USE_SOURCE_PERMISSIONS PATTERN ".la" EXCLUDE PATTERN ".a" EXCLUDE PATTERN "*/bin" EXCLUDE PATTERN "*/gst-validate-launcher" EXCLUDE PATTERN "*/Headers" EXCLUDE PATTERN "*/include" EXCLUDE PATTERN "*/pkgconfig" EXCLUDE PATTERN "*/share/aclocal" EXCLUDE PATTERN "*/share/bash-completion" EXCLUDE PATTERN "*/share/gdb" EXCLUDE PATTERN "*/share/gst-android" EXCLUDE PATTERN "*/share/gtk-doc" EXCLUDE PATTERN "*/share/installed-tests" EXCLUDE PATTERN "*/share/locale" EXCLUDE PATTERN "*/share/man" EXCLUDE PATTERN "*gstpython*" EXCLUDE PATTERN "Commands" EXCLUDE REGEX ".*/lib/gstreamer-1.0/libgst.*" EXCLUDE ) install(CODE " set(_fw \"${_gst_fw_dest}\") if(NOT EXISTS \" ${_fw}/Versions/1.0/GStreamer\") message(FATAL_ERROR \"GStreamer framework: Versions/1.0/GStreamer not found — SDK layout may have changed\") endif() execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink 1.0 " ${_fw}/Versions/Current") execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink Versions/Current/GStreamer " ${_fw}/GStreamer") if(IS_DIRECTORY " ${_fw}/Versions/1.0/Resources") execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink Versions/Current/Resources " ${_fw}/Resources") endif() ") gstreamer_install_plugins( SOURCE_DIR "${_gst_framework_real}/Versions/1.0/lib/gstreamer-1.0" DEST_DIR "${_gst_fw_dest}/Versions/1.0/lib/gstreamer-1.0" EXTENSION "dylib" PREFIX "libgst" ) ``` -------------------------------- ### Example Standalone/Direct Invocation for Qt Quick Tests Source: https://github.com/mavlink/qgroundcontrol/blob/master/tools/skills/qt-qml-test-run/references/qt-quick-test-report-format.md This command line demonstrates invoking Qt Quick tests in Direct or Standalone modes, specifying input tests directory and output report format. ```bash /bin/qmltestrunner -input -o ,junitxml ``` -------------------------------- ### Install GStreamer Hardware Acceleration Libraries Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/ko/qgc-dev-guide/getting_started/cent_os.md Installs GStreamer plugins for hardware-accelerated video decoding, specifically vaapi for Intel GPUs and libav for broader codec support. Ensure these are installed for optimal performance. ```bash sudo yum install gstreamer1-vaapi sudo yum install gstreamer1-libav ``` -------------------------------- ### Install Python Tooling Source: https://github.com/mavlink/qgroundcontrol/blob/master/tools/README.md Installs essential Python tools like pre-commit, test, and coverage. ```bash python3 ./tools/setup/install_python.py precommit,test,coverage ``` -------------------------------- ### Install Dependencies for macOS Source: https://github.com/mavlink/qgroundcontrol/blob/master/tools/README.md Installs build dependencies for macOS environments using Homebrew and GStreamer. ```bash python3 ./tools/setup/install_dependencies --platform macos ``` -------------------------------- ### GuiApplication Variant main.cpp Source: https://github.com/mavlink/qgroundcontrol/blob/master/tools/skills/qt-qml-test-run/references/qt-quick-test-cmake.md Set up the QCoreApplication with organization and application names for QML Settings. This is required for QML Settings / QSettings to initialize correctly. ```cpp #include #include #include class Setup : public QObject { Q_OBJECT public slots: void applicationAvailable() { // Required for QML Settings / QSettings to initialise // cleanly. Replace the strings with the project's identity // if it ships its own. QCoreApplication::setOrganizationName("QtProject"); QCoreApplication::setOrganizationDomain("qt.io"); QCoreApplication::setApplicationName("qmltests"); } }; QUICK_TEST_MAIN_WITH_SETUP(qmltests, Setup) #include "main.moc" ``` -------------------------------- ### Run QGroundControl from Build Directory Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/en/qgc-dev-guide/getting_started/index.md Execute the QGroundControl binary located in the build directory after a successful build. ```sh ./build/Debug/QGroundControl ``` -------------------------------- ### Install VAAPI and Intel Driver Source: https://github.com/mavlink/qgroundcontrol/blob/master/docs/zh/qgc-dev-guide/getting_started/cent_os.md Installs the VAAPI library and the Intel graphics driver for hardware-accelerated video decoding on systems with Intel GPUs. Includes steps to download and install the driver manually if it's not found in the repositories. ```bash sudo yum install libva sudo yum install libva-utils sudo yum install libva-intel-driver ``` ```bash wget http://download1.rpmfusion.org/free/el/updates/7/x86_64/l/libva-intel-driver-1.8.3-4.el7.x86_64.rpm sudo yum localinstall libva-intel-driver-1.8.3-4.el7.x86_64.rpm -y ```