Deployment Updates

This commit is contained in:
Holden
2025-01-17 19:12:02 -05:00
committed by Holden
parent d32d5f4cf1
commit 8583f852e3
64 changed files with 1199 additions and 471 deletions
+17
View File
@@ -0,0 +1,17 @@
---
BasedOnStyle: Google
AccessModifierOffset: -4
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Inline
AllowShortLambdasOnASingleLine: Inline
BinPackArguments: false
BinPackParameters: false
ColumnLimit: 120
IncludeBlocks: Preserve
IndentWidth: 4
Language: Cpp
PackConstructorInitializers: Never
PenaltyBreakAssignment: 80
SortIncludes: true
SpacesBeforeTrailingComments: 1
Standard: c++17
+39
View File
@@ -0,0 +1,39 @@
---
Checks: >
clang-diagnostic-*,
clang-analyzer-*,
bugprone-*,
cppcoreguidelines-*,
google-*,
llvm-*,
misc-*,
modernize-*,
performance-*,
portability-*,
readability-*,
-bugprone-easily-swappable-parameters,
-cppcoreguidelines-avoid-c-arrays,
-cppcoreguidelines-avoid-const-or-ref-data-members,
-cppcoreguidelines-avoid-non-const-global-variables,
-cppcoreguidelines-non-private-member-variables-in-classes,
-cppcoreguidelines-pro-type-reinterpret-cast,
-cppcoreguidelines-pro-type-static-cast-downcast,
-cppcoreguidelines-pro-type-vararg,
-cppcoreguidelines-special-member-functions,
-google-readability-todo,
-llvm-header-guard,
-llvm-include-order,
-misc-include-cleaner,
-misc-no-recursion,
-misc-non-private-member-variables-in-classes,
-misc-use-internal-linkage,
-modernize-avoid-c-arrays,
-modernize-use-trailing-return-type,
-readability-convert-member-functions-to-static,
-readability-function-cognitive-complexity,
-readability-identifier-length,
-readability-redundant-access-specifiers,
-readability-uppercase-literal-suffix
WarningsAsErrors: '*'
HeaderFilterRegex: '^((?!vendor).)*$'
...
+3
View File
@@ -0,0 +1,3 @@
format:
tab_size: 4
line_width: 100
+8
View File
@@ -0,0 +1,8 @@
root = true
[*]
charset = utf-8
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace=true
-9
View File
@@ -63,7 +63,6 @@ runs:
uses: jurplel/install-qt-action@v4
with:
version: ${{ inputs.version }}
aqtversion: ==3.1.*
host: ${{ inputs.host }}
target: desktop
arch: ${{ inputs.arch }}
@@ -76,12 +75,10 @@ runs:
uses: jurplel/install-qt-action@v4
with:
version: ${{ inputs.version }}
aqtversion: ==3.1.*
host: ${{ inputs.host }}
target: android
arch: android_armv7
dir: ${{ runner.temp }}
extra: --autodesktop
modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors
cache: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
@@ -90,12 +87,10 @@ runs:
uses: jurplel/install-qt-action@v4
with:
version: ${{ inputs.version }}
aqtversion: ==3.1.*
host: ${{ inputs.host }}
target: android
arch: android_arm64_v8a
dir: ${{ runner.temp }}
extra: --autodesktop
modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors
cache: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
@@ -104,12 +99,10 @@ runs:
uses: jurplel/install-qt-action@v4
with:
version: ${{ inputs.version }}
aqtversion: ==3.1.*
host: ${{ inputs.host }}
target: android
arch: android_x86
dir: ${{ runner.temp }}
extra: --autodesktop
modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors
cache: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
@@ -118,11 +111,9 @@ runs:
uses: jurplel/install-qt-action@v4
with:
version: ${{ inputs.version }}
aqtversion: ==3.1.*
host: ${{ inputs.host }}
target: android
arch: android_x86_64
dir: ${{ runner.temp }}
extra: --autodesktop
modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors
cache: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
-1
View File
@@ -1,5 +1,4 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: /
+1 -1
View File
@@ -12,9 +12,9 @@ on:
- '.github/workflows/android-linux.yml'
- 'deploy/android/**'
- 'src/**'
- 'CMakeLists.txt'
concurrency:
# cancel jobs on PRs only
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
+1 -2
View File
@@ -4,7 +4,6 @@ on:
workflow_dispatch:
concurrency:
# cancel jobs on PRs only
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
@@ -44,7 +43,7 @@ jobs:
- name: Install Dependencies
run: |
brew update
brew install cmake ninja ccache
brew install ccache
continue-on-error: true
- name: Install Qt for Android
+6 -3
View File
@@ -12,9 +12,9 @@ on:
- '.github/workflows/android-windows.yml'
- 'deploy/android/**'
- 'src/**'
- 'CMakeLists.txt'
concurrency:
# cancel jobs on PRs only
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
@@ -32,6 +32,7 @@ jobs:
env:
ARTIFACT: QGroundControl.apk
PACKAGE: QGroundControl
QT_VERSION: 6.8.1
GST_VERSION: 1.22.12
QT_ANDROID_KEYSTORE_PATH: ${{ github.workspace }}/deploy/android/android_release.keystore
@@ -50,7 +51,9 @@ jobs:
- uses: seanmiddleditch/gha-setup-ninja@v5
- uses: lukka/get-cmake@latest
- uses: mozilla-actions/sccache-action@v0.0.7
- name: Update ccache
run: choco install ccache
- name: Install Qt for Android
uses: ./.github/actions/qt-android
@@ -85,5 +88,5 @@ jobs:
- name: Save APK
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT }}
name: ${{ env.PACKAGE }}
path: ${{ runner.temp }}/shadow_build_dir/android-build/*.apk
+4 -15
View File
@@ -9,12 +9,13 @@ on:
- 'v*'
pull_request:
paths:
- '.github/workflows/custom.yml'
- 'deploy/windows/**'
- 'src/**'
- 'custom-example/**'
- 'deploy/windows/**'
- 'CMakeLists.txt'
concurrency:
# cancel jobs on PRs only
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
@@ -55,23 +56,12 @@ jobs:
- uses: seanmiddleditch/gha-setup-ninja@v5
- uses: lukka/get-cmake@latest
# - name: Install Vulkan
# working-directory: ${{ runner.temp }}
# shell: pwsh
# run: |
# Invoke-WebRequest -Uri "https://sdk.lunarg.com/sdk/download/latest/windows/vulkan-sdk.exe" -OutFile vulkan-sdk.exe
# .\vulkan-sdk.exe --root C:\VulkanSDK\latest --accept-licenses --default-answer --confirm-command install com.lunarg.vulkan.glm com.lunarg.vulkan.volk com.lunarg.vulkan.vma com.lunarg.vulkan.debug
# echo "VULKAN_SDK=C:\VulkanSDK\latest" >> $env:GITHUB_ENV
- name: Install GStreamer
uses: blinemedical/setup-gstreamer@v1
with:
version: ${{ env.GST_VERSION }}
# - name: Install Gstreamer
# run: choco install --no-progress gstreamer gstreamer-devel --version=${{ env.GST_VERSION }}
- name: Set Up sccache
- name: Set Up SCCache
uses: mozilla-actions/sccache-action@v0.0.7
- name: Set Up Cache
@@ -82,7 +72,6 @@ jobs:
variant: sccache
save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
verbose: 1
evict-old-files: 'job'
- name: Install Qt for Windows (x64)
if: matrix.Arch == 'x64'
+1
View File
@@ -12,6 +12,7 @@ on:
- 'src/**'
- 'deploy/docker/**'
- 'deploy/linux/**'
- 'CMakeLists.txt'
concurrency:
# cancel jobs on PRs only
+2 -19
View File
@@ -4,7 +4,6 @@ on:
workflow_dispatch:
concurrency:
# cancel jobs on PRs only
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
@@ -27,17 +26,6 @@ jobs:
GST_VERSION: 1.22.12
steps:
- name: Recover disk space
run: |
df -h
ls /Applications
brew uninstall google-chrome
sudo rm -rf /Users/runner/Library/Android
sudo rm -rf /Applications/Xcode_14*
sudo rm -rf /Applications/Xcode_15*
ls /Applications
df -h
- name: Checkout repo
uses: actions/checkout@v4
with:
@@ -51,14 +39,12 @@ jobs:
xcode-version: latest-stable
- uses: seanmiddleditch/gha-setup-ninja@v5
- uses: lukka/get-cmake@latest
- name: Install Dependencies
run: |
brew update
brew install cmake ninja ccache
- uses: seanmiddleditch/gha-setup-ninja@v5
- uses: lukka/get-cmake@latest
brew install ccache
- name: Set Up Cache
uses: hendrikmuhs/ccache-action@main
@@ -74,7 +60,6 @@ jobs:
uses: jurplel/install-qt-action@v4
with:
version: ${{ env.QT_VERSION }}
aqtversion: ==3.1.*
host: mac
target: desktop
arch: clang_64
@@ -86,12 +71,10 @@ jobs:
uses: jurplel/install-qt-action@v4
with:
version: ${{ env.QT_VERSION }}
aqtversion: ==3.1.*
host: mac
target: ios
arch: ios
dir: ${{ runner.temp }}
extra: --autodesktop
modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors
cache: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
+4 -6
View File
@@ -12,9 +12,9 @@ on:
- '.github/workflows/linux.yml'
- 'deploy/linux/**'
- 'src/**'
- 'CMakeLists.txt'
concurrency:
# cancel jobs on PRs only
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
@@ -49,7 +49,9 @@ jobs:
run: |
chmod a+x ./tools/setup/install-dependencies-debian.sh
sudo ./tools/setup/install-dependencies-debian.sh
python3 -m pip install --user ninja cmake
- uses: lukka/get-cmake@latest
- uses: seanmiddleditch/gha-setup-ninja@v5
- name: Install Vulkan
run: |
@@ -86,7 +88,6 @@ jobs:
uses: jurplel/install-qt-action@v4
with:
version: ${{ env.QT_VERSION }}
aqtversion: ==3.1.*
host: linux
target: desktop
arch: linux_gcc_64
@@ -97,9 +98,6 @@ jobs:
# - name: Build GStreamer
# uses: ./.github/actions/gstreamer
- uses: lukka/get-cmake@latest
- uses: seanmiddleditch/gha-setup-ninja@v5
- run: mkdir ${{ runner.temp }}/shadow_build_dir
- name: Configure
+2 -2
View File
@@ -12,9 +12,9 @@ on:
- '.github/workflows/macos.yml'
- 'deploy/macos/**'
- 'src/**'
- 'CMakeLists.txt'
concurrency:
# cancel jobs on PRs only
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
@@ -70,6 +70,7 @@ jobs:
- name: Set Up Cache
uses: hendrikmuhs/ccache-action@main
with:
create-symlink: true
key: ${{ runner.os }}-${{ matrix.BuildType }}
max-size: 1G
save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
@@ -80,7 +81,6 @@ jobs:
uses: jurplel/install-qt-action@v4
with:
version: ${{ env.QT_VERSION }}
aqtversion: ==3.1.*
host: mac
target: desktop
arch: clang_64
+2 -7
View File
@@ -12,9 +12,9 @@ on:
- '.github/workflows/windows.yml'
- 'deploy/windows/**'
- 'src/**'
- 'CMakeLists.txt'
concurrency:
# cancel jobs on PRs only
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
@@ -62,9 +62,6 @@ jobs:
with:
version: ${{ env.GST_VERSION }}
# - name: Install Gstreamer
# run: choco install --no-progress gstreamer gstreamer-devel --version=${{ env.GST_VERSION }}
- name: Set Up sccache
uses: mozilla-actions/sccache-action@v0.0.7
@@ -75,7 +72,6 @@ jobs:
max-size: 1G
variant: sccache
save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
evict-old-files: 'job'
- name: Install Qt for Windows (x64)
uses: jurplel/install-qt-action@v4
@@ -95,12 +91,11 @@ jobs:
uses: jurplel/install-qt-action@v4
with:
version: ${{ env.QT_VERSION }}
aqtversion: ==3.1.*
aqtversion: ==3.1.19
host: windows
target: desktop
arch: win64_msvc2022_arm64_cross_compiled
dir: ${{ runner.temp }}
extra: --autodesktop
modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors
cache: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
+3 -1
View File
@@ -89,4 +89,6 @@ Qt*-linux*.tar.*
# vitepress - user guide
node_modules/
docs/.vitepress/cache/
docs/.vitepress/dist/
docs/.vitepress/dist/
CMakeUserPresets.json
+6
View File
@@ -0,0 +1,6 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: check-yaml
args: [--allow-multiple-documents, --unsafe]
+55 -23
View File
@@ -65,9 +65,9 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
# set(CMAKE_AUTOGEN_BETTER_GRAPH_MULTI_CONFIG ON)
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug;Release")
if(NOT CMAKE_BUILD_TYPE)
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug;Release")
endif()
if(LINUX)
@@ -82,6 +82,9 @@ if(UNIX)
message(STATUS "Using CCache")
set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_PROGRAM})
set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_PROGRAM})
if(APPLE)
set(CMAKE_OBJC_COMPILER_LAUNCHER ${CCACHE_PROGRAM})
endif()
endif()
elseif(WIN32)
find_program(SCCACHE_PROGRAM sccache)
@@ -119,10 +122,24 @@ if(POLICY CMP0168)
set(CMAKE_POLICY_DEFAULT_CMP0168 NEW)
endif()
# https://cmake.org/cmake/help/latest/policy/CMP0075.html#policy:CMP0075
if(POLICY CMP0075)
cmake_policy(SET CMP0075 NEW)
set(CMAKE_POLICY_DEFAULT_CMP0075 NEW)
endif()
if(QGC_USE_IWYU)
include(IWYU)
endif()
#######################################################
# Qt6 Configuration
#######################################################
if(CMAKE_CROSSCOMPILING AND NOT IS_DIRECTORY ${QT_HOST_PATH})
message(FATAL_ERROR "You need to set QT_HOST_PATH to cross compile Qt.")
endif()
set(QT_SILENCE_MISSING_DEPENDENCY_TARGET_WARNING ON)
set(QT_MINIMUM_VERSION 6.8.1)
@@ -317,6 +334,16 @@ qt_add_executable(${CMAKE_PROJECT_NAME}
${QGC_RESOURCES}
)
if(NOT ANDROID AND NOT IOS)
target_sources(${CMAKE_PROJECT_NAME}
PRIVATE
src/RunGuard.cc
src/RunGuard.h
)
endif()
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/src)
if(Qt6LinguistTools_FOUND)
file(GLOB TS_SOURCES ${CMAKE_SOURCE_DIR}/translations/qgc_*.ts)
set_source_files_properties(${TS_SOURCES} PROPERTIES OUTPUT_LOCATION "${CMAKE_BINARY_DIR}/i18n")
@@ -410,11 +437,11 @@ elseif(IOS)
# set(QT_NO_FFMPEG_XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY ON)
# qt_add_ios_ffmpeg_libraries(CMAKE_PROJECT_NAME)
elseif(ANDROID)
FetchContent_Declare(android_openssl
DOWNLOAD_EXTRACT_TIMESTAMP true
include(CPM)
CPMAddPackage(
NAME android_openssl
URL https://github.com/KDAB/android_openssl/archive/refs/heads/master.zip
)
FetchContent_MakeAvailable(android_openssl)
include(${android_openssl_SOURCE_DIR}/android_openssl.cmake)
add_android_openssl_libraries(${CMAKE_PROJECT_NAME})
@@ -439,12 +466,10 @@ elseif(ANDROID)
QT_ANDROID_PACKAGE_SOURCE_DIR "${QGC_ANDROID_PACKAGE_SOURCE_DIR}"
QT_ANDROID_VERSION_NAME ${CMAKE_PROJECT_VERSION}
QT_ANDROID_VERSION_CODE ${ANDROID_VERSION_CODE}
QT_QML_ROOT_PATH ${CMAKE_SOURCE_DIR}/src
QT_QML_ROOT_PATH ${CMAKE_SOURCE_DIR}
# QT_ANDROID_SDK_BUILD_TOOLS_REVISION
# QT_ANDROID_SYSTEM_LIBS_PREFIX
)
get_target_property(QGC_ANDROID_DEPLOY_FILE ${CMAKE_PROJECT_NAME} QT_ANDROID_DEPLOYMENT_SETTINGS_FILE)
cmake_print_variables(QGC_ANDROID_DEPLOY_FILE)
elseif(LINUX)
endif()
@@ -458,9 +483,11 @@ add_compile_definitions(
)
add_subdirectory(src)
target_link_libraries(${CMAKE_PROJECT_NAME}
PRIVATE
Qt6::Core
Qt6::Core5Compat
Qt6::Quick
Qt6::Widgets
QGC
@@ -472,12 +499,22 @@ if(QGC_BUILD_TESTING)
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE qgctest)
endif()
target_precompile_headers(${CMAKE_PROJECT_NAME}
PRIVATE
<QtCore/QtPlugin>
<QtQuick/QQuickWindow>
<QtWidgets/QApplication>
)
if(ANDROID)
target_sources(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/android/src/AndroidInit.cc)
target_link_libraries(${CMAKE_PROJECT_NAME}
PRIVATE
Qt6::Core
Joystick
Utilities
)
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/android/src)
if(NOT QGC_NO_SERIAL_LINK)
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Comms)
endif()
endif()
qt_import_plugins(${CMAKE_PROJECT_NAME}
INCLUDE Qt6::QSvgPlugin
@@ -514,7 +551,10 @@ qt_generate_deploy_qml_app_script(
)
install(SCRIPT ${deploy_script})
if(LINUX)
if(ANDROID)
# get_target_property(QGC_ANDROID_DEPLOY_FILE ${CMAKE_PROJECT_NAME} QT_ANDROID_DEPLOYMENT_SETTINGS_FILE)
# cmake_print_variables(QGC_ANDROID_DEPLOY_FILE)
elseif(LINUX)
configure_file(
${CMAKE_SOURCE_DIR}/deploy/linux/org.mavlink.qgroundcontrol.desktop.in
${CMAKE_BINARY_DIR}/org.mavlink.qgroundcontrol.desktop
@@ -551,12 +591,4 @@ elseif(MACOS)
install(SCRIPT "${CMAKE_SOURCE_DIR}/cmake/CreateMacDMG.cmake")
endif()
## Enforce Handling of All Enum Cases
if(WIN32)
add_compile_options(/w44265 /we44265)
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wswitch -Werror=switch")
endif()
include(printSummary)
+16
View File
@@ -0,0 +1,16 @@
{
"version": 4,
"cmakeMinimumRequired": {
"major": 3,
"minor": 22,
"patch": 1
},
"include": [
"cmake/presets/common.json",
"cmake/presets/Android.json",
"cmake/presets/iOS.json",
"cmake/presets/Linux.json",
"cmake/presets/macOS.json",
"cmake/presets/Windows.json"
]
}
+3 -5
View File
@@ -5,7 +5,7 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:8.7.3'
classpath 'com.android.tools.build:gradle:8.8.0'
}
}
@@ -35,6 +35,7 @@ android {
* - qtAndroidDir - holds the path to qt android files
* needed to build any Qt application
* on Android.
* - qtGradlePluginType - whether to build an app or a library
*
* are defined in gradle.properties file. This file is
* updated by QtCreator and androiddeployqt tools.
@@ -65,6 +66,7 @@ android {
tasks.withType(JavaCompile) {
options.incremental = true
// options.compilerArgs += ['-Xlint:deprecation']
}
buildFeatures {
@@ -91,10 +93,6 @@ android {
targetSdkVersion qtTargetSdkVersion
ndk.abiFilters = qtTargetAbiList.split(",")
// namespace "org.mavlink.qgroundcontrol"
// versionName "5.0"
// versionCode timestampInt
// println "applicationId: ${applicationId}"
println "minSdkVersion: ${minSdkVersion}"
println "targetSdkVersion: ${targetSdkVersion}"
+2 -2
View File
@@ -12,8 +12,8 @@ org.gradle.parallel=true
# Gradle caching allows reusing the build artifacts from a previous
# build with the same inputs. However, over time, the cache size will
# grow. Uncomment the following line to enable it.
org.gradle.caching=true
org.gradle.configuration-cache=true
# org.gradle.caching=true
# org.gradle.configuration-cache=true
# Allow AndroidX usage
android.useAndroidX=true
@@ -3,7 +3,7 @@
#include "AndroidSerial.h"
#endif
#include "JoystickAndroid.h"
#include <QGCLoggingCategory.h>
#include "QGCLoggingCategory.h"
#include <QtCore/QJniEnvironment>
#include <QtCore/QJniObject>
+1 -1
View File
@@ -26,5 +26,5 @@ namespace AndroidInterface
QString getSDCardPath();
jclass getActivityClass();
constexpr const char* kJniQGCActivityClassName = "org/mavlink/qgroundcontrol/QGCActivity";
constexpr const char *kJniQGCActivityClassName = "org/mavlink/qgroundcontrol/QGCActivity";
};
+2 -1
View File
@@ -1,6 +1,7 @@
include(CreateCPackCommon)
set(CPACK_GENERATOR "ZIP")
list(APPEND CPACK_GENERATOR "ZIP")
set(CPACK_BINARY_ZIP ON)
set(CPACK_ARCHIVE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME})
set(CPACK_ARCHIVE_FILE_EXTENSION TXZ)
+2 -1
View File
@@ -1,6 +1,7 @@
include(CreateCPackCommon)
set(CPACK_GENERATOR "BUNDLE")
list(APPEND CPACK_GENERATOR "BUNDLE")
set(CPACK_BINARY_BUNDLE ON)
set(QGC_INSTALLER_SOURCE "${CMAKE_SOURCE_DIR}/deploy/macos")
+2 -1
View File
@@ -1,6 +1,7 @@
include(CreateCPackCommon)
set(CPACK_GENERATOR "DragNDrop")
list(APPEND CPACK_GENERATOR "DragNDrop")
set(CPACK_BINARY_DRAGNDROP ON)
set(QGC_INSTALLER_SOURCE "${CMAKE_SOURCE_DIR}/deploy/macos")
+2 -1
View File
@@ -1,6 +1,7 @@
include(CreateCPackCommon)
set(CPACK_GENERATOR "DEB")
list(APPEND CPACK_GENERATOR "DEB")
set(CPACK_BINARY_DEB ON)
set(QGC_INSTALLER_SOURCE "${CMAKE_SOURCE_DIR}/deploy/linux")
+2 -1
View File
@@ -6,7 +6,8 @@ set(QTIFWDIR "${Qt6_ROOT_DIR}/../../Tools/QtInstallerFramework/*")
include(CPackIFW)
set(CPACK_GENERATOR "IFW")
list(APPEND CPACK_GENERATOR "IFW")
set(CPACK_BINARY_IFW ON)
# Debug
set(CPACK_IFW_VERBOSE ON)
+17 -6
View File
@@ -1,19 +1,30 @@
include(CreateCPackCommon)
set(CPACK_GENERATOR "NSIS")
list(APPEND CPACK_GENERATOR "NSIS")
set(CPACK_BINARY_NSIS ON)
set(QGC_INSTALLER_SOURCE "${CMAKE_BINARY_DIR}/deploy/windows")
set(CPACK_NSIS_INSTALL_ROOT "C:\\\\Program Files")
set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
set(CPACK_NSIS_MUI_ICON "${QGC_INSTALLER_SOURCE}/WindowsQGC.ico")
set(CPACK_NSIS_MUI_UNIICON "${QGC_INSTALLER_SOURCE}/WindowsQGC.ico")
# set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
# set(CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP "")
# set(CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP "")
# set(CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS "")
# set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "")
# set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "")
# set(CPACK_NSIS_COMPRESSOR "")
set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
CreateDirectory \"\$SMPROGRAMS\\${CMAKE_PROJECT_NAME}\"
CreateShortCut \"\$SMPROGRAMS\\${CMAKE_PROJECT_NAME}\\${CMAKE_PROJECT_NAME}.lnk\" \"\$INSTDIR\\bin\\${EXENAME}.exe\" \"\" \"\$INSTDIR\\bin\\${EXENAME}.exe\" 0
CreateShortCut \"\$SMPROGRAMS\\${CMAKE_PROJECT_NAME}\\${CMAKE_PROJECT_NAME} (GPU Compatibility Mode).lnk\" \"\$INSTDIR\\bin\\${EXENAME}.exe\" \"-desktop\" \"\$INSTDIR\\bin\\${EXENAME}.exe\" 0
CreateShortCut \"\$SMPROGRAMS\\${CMAKE_PROJECT_NAME}\\${CMAKE_PROJECT_NAME} (GPU Safe Mode).lnk\" \"\$INSTDIR\\bin\\${EXENAME}.exe\" \"-swrast\" \"\$INSTDIR\\bin\\${EXENAME}.exe\" 0
")
set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
Delete \"\$SMPROGRAMS\\${CMAKE_PROJECT_NAME}\\${CMAKE_PROJECT_NAME}.lnk\"
Delete \"\$SMPROGRAMS\\${CMAKE_PROJECT_NAME}\\${CMAKE_PROJECT_NAME} (GPU Compatibility Mode).lnk\"
Delete \"\$SMPROGRAMS\\${CMAKE_PROJECT_NAME}\\${CMAKE_PROJECT_NAME} (GPU Safe Mode).lnk\"
RMDir /r /REBOOTOK \"\$SMPROGRAMS\\${CMAKE_PROJECT_NAME}\"
")
set(CPACK_NSIS_COMPRESSOR "/SOLID /FINAL lzma")
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
set(CPACK_NSIS_MODIFY_PATH ON)
set(CPACK_NSIS_DISPLAY_NAME "${CMAKE_PROJECT_NAME}")
@@ -28,7 +39,7 @@ set(CPACK_NSIS_URL_INFO_ABOUT ${CPACK_PACKAGE_HOMEPAGE_URL})
# set(CPACK_NSIS_EXECUTABLES_DIRECTORY "")
# set(CPACK_NSIS_MUI_FINISHPAGE_RUN "")
# set(CPACK_NSIS_MENU_LINKS "")
# set(CPACK_NSIS_UNINSTALL_NAME "")
set(CPACK_NSIS_UNINSTALL_NAME "${CMAKE_PROJECT_NAME}-Uninstall")
# set(CPACK_NSIS_WELCOME_TITLE "")
# set(CPACK_NSIS_WELCOME_TITLE_3LINES "")
# set(CPACK_NSIS_FINISH_TITLE "")
+34
View File
@@ -0,0 +1,34 @@
include(CreateCPackCommon)
list(APPEND CPACK_GENERATOR "PRODUCTBUILD")
set(CPACK_BINARY_PRODUCTBUILD ON)
set(QGC_INSTALLER_SOURCE "${CMAKE_SOURCE_DIR}/deploy/macos")
# set(CPACK_COMMAND_PRODUCTBUILD)
# set(CPACK_PRODUCTBUILD_IDENTIFIER)
# set(CPACK_PRODUCTBUILD_IDENTITY_NAME)
# set(CPACK_PRODUCTBUILD_KEYCHAIN_PATH)
# set(CPACK_COMMAND_PKGBUILD)
# set(CPACK_PKGBUILD_IDENTITY_NAME)
# set(CPACK_PKGBUILD_KEYCHAIN_PATH)
# set(CPACK_PREFLIGHT_<COMP>_SCRIPT)
# set(CPACK_POSTFLIGHT_<COMP>_SCRIPT)
# set(CPACK_PRODUCTBUILD_RESOURCES_DIR)
# set(CPACK_PRODUCTBUILD_DOMAINS)
# set(CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE)
# set(CPACK_PRODUCTBUILD_DOMAINS_USER)
# set(CPACK_PRODUCTBUILD_DOMAINS_ROOT)
# set(CPACK_PRODUCTBUILD_BACKGROUND)
# set(CPACK_PRODUCTBUILD_BACKGROUND_ALIGNMENT)
# set(CPACK_PRODUCTBUILD_BACKGROUND_SCALING)
# set(CPACK_PRODUCTBUILD_BACKGROUND_MIME_TYPE)
# set(CPACK_PRODUCTBUILD_BACKGROUND_UTI)
# set(CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA)
# set(CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_ALIGNMENT)
# set(CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_SCALING)
# set(CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_MIME_TYPE)
# set(CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_UTI)
include(CPack)
+2 -1
View File
@@ -1,6 +1,7 @@
include(CreateCPackCommon)
set(CPACK_GENERATOR "RPM")
list(APPEND CPACK_GENERATOR "RPM")
set(CPACK_BINARY_RPM ON)
set(QGC_INSTALLER_SOURCE "${CMAKE_SOURCE_DIR}/deploy/linux")
-2
View File
@@ -2,7 +2,6 @@ message(STATUS "Creating Win Installer")
include(CMakePrintHelpers)
# cmake_path(CONVERT "${CMAKE_BINARY_DIR}/../deploy/windows" TO_CMAKE_PATH_LIST QGC_INSTALLER_SOURCE)
file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/deploy/windows" QGC_INSTALLER_SOURCE)
file(TO_NATIVE_PATH "${QGC_INSTALLER_SOURCE}/WindowsQGC.ico" QGC_INSTALLER_ICON)
file(TO_NATIVE_PATH "${QGC_INSTALLER_SOURCE}/installheader.bmp" QGC_INSTALLER_HEADER_BITMAP)
@@ -41,5 +40,4 @@ execute_process(
ERROR_VARIABLE NSIS_ERROR
OUTPUT_STRIP_TRAILING_WHITESPACE
)
cmake_print_variables(NSIS_RESULT NSIS_OUTPUT NSIS_ERROR)
+7
View File
@@ -0,0 +1,7 @@
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
find_program(INCLUDE_WHAT_YOU_USE_PROGRAM include-what-you-use)
if(INCLUDE_WHAT_YOU_USE_PROGRAM)
set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE ${INCLUDE_WHAT_YOU_USE_PROGRAM})
set(CMAKE_C_INCLUDE_WHAT_YOU_USE ${INCLUDE_WHAT_YOU_USE_PROGRAM})
endif()
endif()
+28
View File
@@ -0,0 +1,28 @@
# QMDNSENGINE_FOUND
# QMDNS_INCLUDE_DIR
# QMDNS_LIBRARIES
find_path(QMDNS_INCLUDE_DIR
NAMES qmdnsengine/mdns.h
PATH_SUFFIXES include
)
find_library(QMDNS_LIBRARIES
NAMES libqmdnsengine.a
PATHS /usr/local /usr
PATH_SUFFIXES lib64 lib
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(qmdnsengine
FOUND_VAR QMDNSENGINE_FOUND
REQUIRED_VARS QMDNS_INCLUDE_DIR QMDNS_LIBRARIES
)
if(QMDNSENGINE_FOUND)
add_library(qmdnsengine STATIC IMPORTED GLOBAL)
set_target_properties(qmdnsengine PROPERTIES
IMPORTED_LOCATION ${QMDNS_LIBRARIES}
INTERFACE_INCLUDE_DIRECTORIES ${QMDNS_INCLUDE_DIR}
)
endif()
+66
View File
@@ -0,0 +1,66 @@
{
"version": 6,
"include": ["common.json"],
"configurePresets": [
{
"name": "Android",
"displayName": "Android configuration using Qt6",
"generator": "Ninja",
"binaryDir": "${sourceParentDir}/build/qt6-Android",
"toolchainFile": "$penv{QT_ROOT_DIR}/lib/cmake/Qt6/qt.toolchain.cmake",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"ANDROID_ABI": "$penv{ANDROID_ABI}"
}
},
{
"name": "Android-ccache",
"displayName": "Android configuration using Qt6 and ccache",
"inherits": ["dev", "ccache", "Android"]
}
],
"buildPresets": [
{
"name": "Android",
"displayName": "Android build using Qt6",
"configurePreset": "Android"
},
{
"name": "Android-ccache",
"displayName": "Android build using Qt6 and ccache",
"configurePreset": "Android-ccache"
}
],
"packagePresets": [
{
"name": "Android",
"displayName": "Android package using Qt6",
"configurePreset": "Android"
},
{
"name": "Android-ccache",
"displayName": "Android package using Qt6 and ccache",
"configurePreset": "Android-ccache"
}
],
"workflowPresets": [
{
"name": "Android-ccache",
"displayName": "Android workflow using Qt6 and ccache",
"steps": [
{
"type": "configure",
"name": "Android-ccache"
},
{
"type": "build",
"name": "Android-ccache"
},
{
"type": "package",
"name": "Android-ccache"
}
]
}
]
}
+124
View File
@@ -0,0 +1,124 @@
{
"version": 6,
"include": ["common.json"],
"configurePresets": [
{
"name": "Linux",
"displayName": "Linux configuration using Qt6",
"generator": "Ninja",
"binaryDir": "${sourceParentDir}/build/qt6-Linux",
"toolchainFile": "$penv{QT_ROOT_DIR}/lib/cmake/Qt6/qt.toolchain.cmake",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"QT_VERSION_MAJOR": "6"
}
},
{
"name": "Linux-ccache",
"displayName": "Linux configuration using Qt6 and ccache",
"inherits": ["dev", "ccache", "Linux"]
}
],
"buildPresets": [
{
"name": "Linux",
"displayName": "Linux build using Qt6",
"configurePreset": "Linux"
},
{
"name": "Linux-ccache",
"displayName": "Linux build using Qt6 and ccache",
"configurePreset": "Linux-ccache"
}
],
"testPresets": [
{
"name": "Linux",
"displayName": "Linux tests using Qt6",
"configurePreset": "Linux",
"inherits": ["default"]
},
{
"name": "Linux-ccache",
"displayName": "Linux tests using Qt6 and ccache",
"configurePreset": "Linux-ccache",
"inherits": ["default"]
}
],
"packagePresets": [
{
"name": "Linux",
"displayName": "Linux package using Qt6",
"configurePreset": "Linux"
},
{
"name": "Linux-ccache",
"displayName": "Linux package using Qt6 and ccache",
"configurePreset": "Linux-ccache"
}
],
"workflowPresets": [
{
"name": "Linux",
"displayName": "Linux workflow using Qt6",
"steps": [
{
"type": "configure",
"name": "Linux"
},
{
"type": "build",
"name": "Linux"
},
{
"type": "test",
"name": "Linux"
},
{
"type": "package",
"name": "Linux"
}
]
},
{
"name": "Linux-ccache",
"displayName": "Linux workflow using Qt6 and ccache",
"steps": [
{
"type": "configure",
"name": "Linux-ccache"
},
{
"type": "build",
"name": "Linux-ccache"
},
{
"type": "test",
"name": "Linux-ccache"
},
{
"type": "package",
"name": "Linux-ccache"
}
]
},
{
"name": "Linux-CI",
"displayName": "Linux workflow using Qt6 and ccache for CI",
"steps": [
{
"type": "configure",
"name": "Linux-ccache"
},
{
"type": "build",
"name": "Linux-ccache"
},
{
"type": "package",
"name": "Linux-ccache"
}
]
}
]
}
+131
View File
@@ -0,0 +1,131 @@
{
"version": 6,
"include": ["common.json"],
"configurePresets": [
{
"name": "Windows",
"displayName": "Windows configuration using Qt6",
"generator": "Ninja Multi-Config",
"binaryDir": "${sourceParentDir}/build/qt6-Windows",
"toolchainFile": "$penv{QT_ROOT_DIR}/lib/cmake/Qt6/qt.toolchain.cmake",
"cacheVariables": {
"CMAKE_CONFIGURATION_TYPES": "Release;Debug"
}
},
{
"name": "Windows-ccache",
"displayName": "Windows configuration using Qt6 and ccache",
"inherits": ["dev", "ccache", "Windows"]
}
],
"buildPresets": [
{
"name": "Windows",
"displayName": "Windows release build using Qt6",
"configurePreset": "Windows",
"configuration": "Release"
},
{
"name": "Windows-debug",
"displayName": "Windows debug build using Qt6",
"configurePreset": "Windows",
"configuration": "Debug"
},
{
"name": "Windows-ccache",
"displayName": "Windows release build using Qt6 and ccache",
"configurePreset": "Windows-ccache",
"configuration": "Release"
},
{
"name": "Windows-debug-ccache",
"displayName": "Windows debug build using Qt6 and ccache",
"configurePreset": "Windows-ccache",
"configuration": "Debug"
}
],
"testPresets": [
{
"name": "Windows",
"displayName": "Windows tests using Qt6",
"configurePreset": "Windows",
"configuration": "Release",
"inherits": ["default"]
},
{
"name": "Windows-ccache",
"displayName": "Windows tests using Qt6 and ccache",
"configurePreset": "Windows-ccache",
"configuration": "Release",
"inherits": ["default"]
}
],
"packagePresets": [
{
"name": "Windows",
"displayName": "Windows package using Qt6",
"configurePreset": "Windows",
"configurations": ["Release", "Debug"]
},
{
"name": "Windows-ccache",
"displayName": "Windows package using Qt6 and ccache",
"configurePreset": "Windows-ccache",
"configurations": ["Release", "Debug"]
}
],
"workflowPresets": [
{
"name": "Windows",
"displayName": "Windows workflow using Qt6",
"steps": [
{
"type": "configure",
"name": "Windows"
},
{
"type": "build",
"name": "Windows"
},
{
"type": "build",
"name": "Windows-debug"
},
{
"type": "test",
"name": "Windows"
},
{
"type": "package",
"name": "Windows"
}
]
},
{
"name": "Windows-ccache",
"displayName": "Windows workflow using Qt6 and ccache",
"steps": [
{
"type": "configure",
"name": "Windows-ccache"
},
{
"type": "build",
"name": "Windows-ccache"
},
{
"type": "build",
"name": "Windows-debug-ccache"
},
{
"type": "test",
"name": "Windows-ccache"
},
{
"type": "package",
"name": "Windows-ccache"
}
]
}
]
}
+35
View File
@@ -0,0 +1,35 @@
{
"version": 6,
"configurePresets": [
{
"name": "dev",
"hidden": true,
"warnings": {
"dev": true,
"deprecated": true,
"uninitialized": false,
"unusedCli": true,
"systemVars": true
},
"errors": {
"dev": true,
"deprecated": true
}
},
{
"name": "ccache",
"hidden": true,
"cacheVariables": {
"CMAKE_C_COMPILER_LAUNCHER": "ccache",
"CMAKE_CXX_COMPILER_LAUNCHER": "ccache"
}
}
],
"testPresets": [
{
"name": "default",
"hidden": true,
"output": { "outputOnFailure": true }
}
]
}
+109
View File
@@ -0,0 +1,109 @@
{
"version": 6,
"include": ["common.json"],
"configurePresets": [
{
"name": "iOS",
"displayName": "iOS configuration using Qt6",
"generator": "Ninja Multi-Config",
"binaryDir": "${sourceParentDir}/build/qt6-iOS",
"toolchainFile": "$penv{QT_ROOT_DIR}/lib/cmake/Qt6/qt.toolchain.cmake",
"cacheVariables": {
"CMAKE_CONFIGURATION_TYPES": "Release;Debug",
"CMAKE_OSX_ARCHITECTURES": "arm64;x86_64",
"CMAKE_OSX_DEPLOYMENT_TARGET": "14.0"
}
},
{
"name": "iOS-ccache",
"displayName": "iOS configuration using Qt6 and ccache",
"inherits": ["dev", "ccache", "iOS"]
}
],
"buildPresets": [
{
"name": "iOS",
"displayName": "iOS release build using Qt6",
"configurePreset": "iOS",
"configuration": "Release"
},
{
"name": "iOS-debug",
"displayName": "iOS debug build using Qt6",
"configurePreset": "iOS",
"configuration": "Debug"
},
{
"name": "iOS-ccache",
"displayName": "iOS release build using Qt6 and ccache",
"configurePreset": "iOS-ccache",
"configuration": "Release"
},
{
"name": "iOS-debug-ccache",
"displayName": "iOS debug build using Qt6 and ccache",
"configurePreset": "iOS-ccache",
"configuration": "Debug"
}
],
"packagePresets": [
{
"name": "iOS",
"displayName": "iOS package using Qt6",
"configurePreset": "iOS",
"configurations": ["Release", "Debug"]
},
{
"name": "iOS-ccache",
"displayName": "iOS package using Qt6 and ccache",
"configurePreset": "iOS-ccache",
"configurations": ["Release", "Debug"]
}
],
"workflowPresets": [
{
"name": "iOS",
"displayName": "iOS workflow using Qt6",
"steps": [
{
"type": "configure",
"name": "iOS"
},
{
"type": "build",
"name": "iOS-debug"
},
{
"type": "build",
"name": "iOS"
},
{
"type": "package",
"name": "iOS"
}
]
},
{
"name": "iOS-ccache",
"displayName": "iOS workflow using Qt6 and ccache",
"steps": [
{
"type": "configure",
"name": "iOS-ccache"
},
{
"type": "build",
"name": "iOS-debug-ccache"
},
{
"type": "build",
"name": "iOS-ccache"
},
{
"type": "package",
"name": "iOS-ccache"
}
]
}
]
}
+154
View File
@@ -0,0 +1,154 @@
{
"version": 6,
"include": ["common.json"],
"configurePresets": [
{
"name": "macOS",
"displayName": "macOS configuration using Qt6",
"generator": "Ninja",
"binaryDir": "${sourceParentDir}/build/qt6-macOS",
"toolchainFile": "$penv{QT_ROOT_DIR}/lib/cmake/Qt6/qt.toolchain.cmake",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"CMAKE_OSX_ARCHITECTURES": "x86_64;arm64",
"CMAKE_OSX_DEPLOYMENT_TARGET": "11.0"
}
},
{
"name": "macOS-ccache",
"displayName": "macOS configuration using Qt6 and ccache",
"inherits": ["dev", "ccache", "macOS"]
},
{
"name": "macOS-clang-tidy",
"displayName": "macOS configuration using Qt6, ccache and clang-tidy",
"inherits": ["macOS-ccache"],
"cacheVariables": {
"CMAKE_OSX_ARCHITECTURES": "arm64",
"MLN_QT_WITH_CLANG_TIDY": "ON"
}
}
],
"buildPresets": [
{
"name": "macOS",
"displayName": "macOS build using Qt6",
"configurePreset": "macOS"
},
{
"name": "macOS-ccache",
"displayName": "macOS build using Qt6 and ccache",
"configurePreset": "macOS-ccache"
},
{
"name": "macOS-clang-tidy",
"displayName": "macOS build using Qt6, ccache and clang-tidy",
"configurePreset": "macOS-clang-tidy"
}
],
"testPresets": [
{
"name": "macOS",
"displayName": "macOS tests using Qt6",
"configurePreset": "macOS",
"inherits": ["default"]
},
{
"name": "macOS-ccache",
"displayName": "macOS tests using Qt6 and ccache",
"configurePreset": "macOS-ccache",
"inherits": ["default"]
},
{
"name": "macOS-clang-tidy",
"displayName": "macOS tests using Qt6, ccache and clang-tidy",
"configurePreset": "macOS-clang-tidy",
"inherits": ["default"]
}
],
"packagePresets": [
{
"name": "macOS",
"displayName": "macOS package using Qt6",
"configurePreset": "macOS"
},
{
"name": "macOS-ccache",
"displayName": "macOS package using Qt6 and ccache",
"configurePreset": "macOS-ccache"
},
{
"name": "macOS-clang-tidy",
"displayName": "macOS package using Qt6, ccache and clang-tidy",
"configurePreset": "macOS-clang-tidy"
}
],
"workflowPresets": [
{
"name": "macOS",
"displayName": "macOS workflow using Qt6",
"steps": [
{
"type": "configure",
"name": "macOS"
},
{
"type": "build",
"name": "macOS"
},
{
"type": "test",
"name": "macOS"
},
{
"type": "package",
"name": "macOS"
}
]
},
{
"name": "macOS-ccache",
"displayName": "macOS workflow using Qt6 and ccache",
"steps": [
{
"type": "configure",
"name": "macOS-ccache"
},
{
"type": "build",
"name": "macOS-ccache"
},
{
"type": "test",
"name": "macOS-ccache"
},
{
"type": "package",
"name": "macOS-ccache"
}
]
},
{
"name": "macOS-clang-tidy",
"displayName": "macOS workflow using Qt6, ccache and clang-tidy",
"steps": [
{
"type": "configure",
"name": "macOS-clang-tidy"
},
{
"type": "build",
"name": "macOS-clang-tidy"
},
{
"type": "test",
"name": "macOS-clang-tidy"
},
{
"type": "package",
"name": "macOS-clang-tidy"
}
]
}
]
}
+33 -33
View File
@@ -8,32 +8,46 @@ macro( OptionOutput _outputstring )
message( STATUS "${_outputstring}${_var}" )
endmacro( OptionOutput _outputstring )
function(printList items)
foreach (item ${items})
message("\t ${item}")
endforeach()
endfunction()
get_property(COMPILER_OPTIONS DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY COMPILE_OPTIONS)
include(CMakePrintHelpers)
# include(CMakePrintSystemInformation)
# include(ProcessorCount)
# cmake_print_properties
# cmake_host_system_information
message( STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}" )
message( STATUS "------------------------------------------------------------------" )
message( STATUS "CMake Generator: ${CMAKE_GENERATOR}" )
message( STATUS "" )
include(CMakePrintSystemInformation)
message( STATUS "" )
message( STATUS "------------------------------------------------------------------" )
message( STATUS "" )
message( STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}" )
message( STATUS "CMAKE_GENERATOR: ${CMAKE_GENERATOR}" )
message( STATUS "CMAKE_GENERATOR_INSTANCE: ${CMAKE_GENERATOR_INSTANCE}" )
message( STATUS "CMAKE_GENERATOR_PLATFORM: ${CMAKE_GENERATOR_PLATFORM}" )
message( STATUS "CMAKE_GENERATOR_TOOLSET: ${CMAKE_GENERATOR_TOOLSET}" )
message( STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}" )
message( STATUS "Compiler info: ${CMAKE_CXX_COMPILER_ID} (${CMAKE_CXX_COMPILER}) ; version: ${CMAKE_CXX_COMPILER_VERSION}" )
message( STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER_ID} (${CMAKE_CXX_COMPILER}) ; version: ${CMAKE_CXX_COMPILER_VERSION}" )
message( STATUS "CMAKE_CXX_STANDARD: ${CMAKE_CXX_STANDARD}" )
message( STATUS "CMAKE_CXX_COMPILER_LAUNCHER: ${CMAKE_CXX_COMPILER_LAUNCHER}" )
message( STATUS "CMAKE_C_COMPILER_LAUNCHER: ${CMAKE_C_COMPILER_LAUNCHER}" )
if(APPLE)
message( STATUS "CMAKE_OBJC_COMPILER_LAUNCHER:${CMAKE_OBJC_COMPILER_LAUNCHER}" )
endif()
message( STATUS "CMAKE_VERSION: ${CMAKE_VERSION}" )
message( STATUS "CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}" )
message( STATUS "CMAKE_HOST_SYSTEM_NAME: ${CMAKE_HOST_SYSTEM_NAME}" )
message( STATUS "CMAKE_HOST_SYSTEM_VERSION: ${CMAKE_HOST_SYSTEM_VERSION}" )
message( STATUS "CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}" )
message( STATUS "CMAKE_SYSTEM_VERSION: ${CMAKE_SYSTEM_VERSION}" )
message( STATUS "CMAKE_SOURCE_DIR: ${CMAKE_SOURCE_DIR}" )
message( STATUS "CMAKE_TOOLCHAIN_FILE: ${CMAKE_TOOLCHAIN_FILE}" )
message( STATUS "" )
message( STATUS " --- Compiler flags --- ")
message( STATUS "General: ${CMAKE_CXX_FLAGS}" )
printList("${COMPILER_OPTIONS}")
message( STATUS "Extra: ${EXTRA_COMPILE_FLAGS}" )
message( STATUS "Debug: ${CMAKE_CXX_FLAGS_DEBUG}" )
message( STATUS "Release: ${CMAKE_CXX_FLAGS_RELEASE}" )
message( STATUS "RelWithDebInfo: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}" )
message( STATUS "MinSizeRel: ${CMAKE_CXX_FLAGS_MINSIZEREL}" )
message( STATUS "" )
message( STATUS " --- Linker flags --- ")
message( STATUS "General: ${CMAKE_EXE_LINKER_FLAGS}" )
message( STATUS "Debug: ${CMAKE_EXE_LINKER_FLAGS_DEBUG}" )
@@ -41,56 +55,42 @@ message( STATUS "Release: ${CMAKE_EXE_LINKER_FLAGS_RELEASE}"
message( STATUS "RelWithDebInfo: ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO}" )
message( STATUS "MinSizeRel: ${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL}" )
message( STATUS "" )
message( STATUS "CMake Version: ${CMAKE_VERSION}" )
message( STATUS "CMake Prefix: ${CMAKE_PREFIX_PATH}" )
message( STATUS "CMake Host System Name: ${CMAKE_HOST_SYSTEM_NAME}" )
message( STATUS "CMake Host System Version: ${CMAKE_HOST_SYSTEM_VERSION}" )
message( STATUS "CMake System Name: ${CMAKE_SYSTEM_NAME}" )
message( STATUS "CMake System Version: ${CMAKE_SYSTEM_VERSION}" )
message( STATUS "CMake Source Dir: ${CMAKE_SOURCE_DIR}" )
message( STATUS "CMake Toolchain File: ${CMAKE_TOOLCHAIN_FILE}" )
message( STATUS "------------------------------------------------------------------" )
message( STATUS "" )
message( STATUS "App Name: ${QGC_APP_NAME}" )
message( STATUS "App Copyright: ${QGC_APP_COPYRIGHT}" )
message( STATUS "App Description: ${QGC_APP_DESCRIPTION}" )
message( STATUS "Org Name: ${QGC_ORG_NAME}" )
message( STATUS "App Domain: ${QGC_ORG_DOMAIN}" )
message( STATUS "App Version: ${QGC_APP_VERSION_STR}" )
if(MACOS)
message( STATUS "MacOS Bundle ID: ${QGC_BUNDLE_ID}" )
message( STATUS "MacOS Icon Path: ${QGC_MACOS_ICON_PATH}" )
endif()
if(ANDROID)
message( STATUS "Android NDK Host System ${ANDROID_NDK_HOST_SYSTEM_NAME}" )
message( STATUS "Android SDK Root ${ANDROID_SDK_ROOT}" )
endif()
OptionOutput( "Stable Build: " QGC_STABLE_BUILD )
OptionOutput( "Building Tests: " QGC_BUILD_TESTING AND BUILD_TESTING )
OptionOutput( "Debug QML: " QGC_DEBUG_QML )
OptionOutput( "Build Dependencies: " QGC_BUILD_DEPENDENCIES )
OptionOutput( "Disable APM Dialect: " QGC_DISABLE_APM_MAVLINK )
OptionOutput( "Disable APM Plugin: " QGC_DISABLE_APM_PLUGIN )
OptionOutput( "Disable APM Plugin Factory: " QGC_DISABLE_APM_PLUGIN_FACTORY )
OptionOutput( "Disable PX4 Plugin: " QGC_DISABLE_PX4_PLUGIN )
OptionOutput( "Disable PX4 Plugin Factory: " QGC_DISABLE_PX4_PLUGIN_FACTORY )
OptionOutput( "Enable Bluetooth Links: " QGC_ENABLE_BLUETOOTH )
OptionOutput( "Enable ZeroConf: " QGC_ZEROCONF_ENABLED )
OptionOutput( "Disable AIRLink: " QGC_AIRLINK_DISABLED )
OptionOutput( "Disable Serial Links: " QGC_NO_SERIAL_LINK )
OptionOutput( "Enable UTM Adapter: " QGC_UTM_ADAPTER )
OptionOutput( "Enable Viewer3D: " QGC_VIEWER3D )
OptionOutput( "Enable UVC Devices: " QGC_ENABLE_UVC )
OptionOutput( "Enable GStreamer: " QGC_ENABLE_GST_VIDEOSTREAMING )
OptionOutput( "Enable QtMultimedia: " QGC_ENABLE_QT_VIDEOSTREAMING )
message( STATUS "MAVLink Git Repo: ${QGC_MAVLINK_GIT_REPO}" )
message( STATUS "MAVLink Git Tag: ${QGC_MAVLINK_GIT_TAG}" )
message( STATUS "" )
message( STATUS "------------------------------------------------------------------" )
message( STATUS "" )
+7
View File
@@ -0,0 +1,7 @@
coverage:
round: down
precision: 1
status:
project:
default:
threshold: 1%
+55 -53
View File
@@ -48,11 +48,6 @@ target_link_libraries(AnalyzeView
target_include_directories(AnalyzeView PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_precompile_headers(AnalyzeView
PRIVATE
<QtCharts/QAbstractSeries>
)
# qt_add_qml_module(AnalyzeView
# URI QGroundControl.AnalyzeView
# VERSION 1.0
@@ -99,7 +94,7 @@ message(STATUS "Building ULogParser")
include(CPM)
CPMAddPackage(
NAME ulog_cpp
GIT_REPOSITORY https://github.com/PX4/ulog_cpp.git
GITHUB_REPOSITORY PX4/ulog_cpp
GIT_TAG main
GIT_SHALLOW TRUE
)
@@ -125,16 +120,15 @@ set(TARGET_EXPAT_VERSION 2.6.4)
# elseif(MACOS)
# set(EXIV2_URL "https://github.com/Exiv2/exiv2/releases/download/v${TARGET_EXIV2_VERSION}/exiv2-${TARGET_EXIV2_VERSION}-Darwin.tar.gz")
# endif()
#
# if(EXIV2_URL)
# FetchContent_Declare(exiv2
# DOWNLOAD_EXTRACT_TIMESTAMP true
# URL ${EXIV2_URL}
# include(CPM)
# CPMAddPackage(
# NAME exiv2
# URL ${EXIV2_URL}
# )
# FetchContent_MakeAvailable(exiv2)
# # exiv2_SOURCE_DIR
# # target_link_libraries(AnalyzeView PRIVATE Exiv2::exiv2lib)
# exiv2_SOURCE_DIR
# target_link_libraries(AnalyzeView PRIVATE Exiv2::exiv2lib)
# return()
# endif()
# endif()
@@ -150,58 +144,66 @@ endif()
if(NOT QGC_BUILD_DEPENDENCIES)
find_package(EXPAT ${MINIMUM_EXPAT_VERSION})
endif()
if(NOT TARGET EXPAT::EXPAT)
message(STATUS "Building Expat")
FetchContent_Declare(expat
GIT_REPOSITORY https://github.com/libexpat/libexpat.git
GIT_TAG R_2_6_4
include(CPM)
CPMAddPackage(
NAME expat
VERSION ${TARGET_EXPAT_VERSION}
GITHUB_REPOSITORY libexpat/libexpat
GIT_TAG "R_2_6_4"
GIT_SHALLOW TRUE
SOURCE_SUBDIR expat
OPTIONS
"EXPAT_BUILD_DOCS OFF"
"EXPAT_BUILD_EXAMPLES OFF"
"EXPAT_BUILD_FUZZERS OFF"
"EXPAT_BUILD_PKGCONFIG OFF"
"EXPAT_BUILD_TESTS OFF"
"EXPAT_BUILD_TOOLS OFF"
"EXPAT_ENABLE_INSTALL OFF"
"EXPAT_SHARED_LIBS OFF"
)
set(EXPAT_BUILD_DOCS OFF CACHE INTERNAL "" FORCE)
set(EXPAT_BUILD_EXAMPLES OFF CACHE INTERNAL "" FORCE)
set(EXPAT_BUILD_FUZZERS OFF CACHE INTERNAL "" FORCE)
set(EXPAT_BUILD_PKGCONFIG OFF CACHE INTERNAL "" FORCE)
set(EXPAT_BUILD_TESTS OFF CACHE INTERNAL "" FORCE)
set(EXPAT_BUILD_TOOLS OFF CACHE INTERNAL "" FORCE)
set(EXPAT_ENABLE_INSTALL OFF CACHE INTERNAL "" FORCE)
set(EXPAT_SHARED_LIBS OFF CACHE INTERNAL "" FORCE)
FetchContent_MakeAvailable(expat)
endif()
message(STATUS "Building Exiv2")
FetchContent_Declare(exiv2
GIT_REPOSITORY https://github.com/Exiv2/exiv2.git
GIT_TAG "v${TARGET_EXIV2_VERSION}"
GIT_SHALLOW TRUE
)
if(TARGET EXPAT::EXPAT)
set(EXIV2_ENABLE_XMP ON CACHE INTERNAL "" FORCE)
set(_EXIV2_ENABLE_XMP ON)
else()
set(EXIV2_ENABLE_XMP OFF CACHE INTERNAL "" FORCE)
set(_EXIV2_ENABLE_XMP OFF)
endif()
set(EXIV2_ENABLE_EXTERNAL_XMP OFF CACHE INTERNAL "" FORCE)
set(EXIV2_ENABLE_PNG OFF CACHE INTERNAL "" FORCE)
set(EXIV2_ENABLE_NLS OFF CACHE INTERNAL "" FORCE)
set(EXIV2_ENABLE_LENSDATA OFF CACHE INTERNAL "" FORCE)
set(EXIV2_ENABLE_DYNAMIC_RUNTIME OFF CACHE INTERNAL "" FORCE)
set(EXIV2_ENABLE_WEBREADY OFF CACHE INTERNAL "" FORCE)
set(EXIV2_ENABLE_CURL OFF CACHE INTERNAL "" FORCE)
set(EXIV2_ENABLE_BMFF OFF CACHE INTERNAL "" FORCE)
set(EXIV2_ENABLE_BROTLI OFF CACHE INTERNAL "" FORCE)
set(EXIV2_ENABLE_VIDEO OFF CACHE INTERNAL "" FORCE)
set(EXIV2_ENABLE_INIH OFF CACHE INTERNAL "" FORCE)
set(EXIV2_ENABLE_FILESYSTEM_ACCESS ON CACHE INTERNAL "" FORCE)
set(EXIV2_BUILD_SAMPLES OFF CACHE INTERNAL "" FORCE)
set(EXIV2_BUILD_EXIV2_COMMAND OFF CACHE INTERNAL "" FORCE)
set(EXIV2_BUILD_UNIT_TESTS OFF CACHE INTERNAL "" FORCE)
set(EXIV2_BUILD_FUZZ_TESTS OFF CACHE INTERNAL "" FORCE)
set(EXIV2_BUILD_DOC OFF CACHE INTERNAL "" FORCE)
set(BUILD_WITH_CCACHE ON CACHE INTERNAL "" FORCE)
FetchContent_MakeAvailable(exiv2)
include(CPM)
CPMAddPackage(
NAME exiv2
VERSION ${TARGET_EXIV2_VERSION}
GITHUB_REPOSITORY Exiv2/exiv2
OPTIONS
"EXIV2_ENABLE_XMP ${_EXIV2_ENABLE_XMP}"
"EXIV2_ENABLE_EXTERNAL_XMP OFF"
"EXIV2_ENABLE_PNG OFF"
"EXIV2_ENABLE_NLS OFF"
"EXIV2_ENABLE_LENSDATA OFF"
"EXIV2_ENABLE_DYNAMIC_RUNTIME OFF"
"EXIV2_ENABLE_WEBREADY OFF"
"EXIV2_ENABLE_CURL OFF"
"EXIV2_ENABLE_BMFF OFF"
"EXIV2_ENABLE_BROTLI OFF"
"EXIV2_ENABLE_VIDEO OFF"
"EXIV2_ENABLE_INIH OFF"
"EXIV2_ENABLE_FILESYSTEM_ACCESS OFF"
"EXIV2_BUILD_SAMPLES OFF"
"EXIV2_BUILD_EXIV2_COMMAND OFF"
"EXIV2_BUILD_UNIT_TESTS OFF"
"EXIV2_BUILD_FUZZ_TESTS OFF"
"EXIV2_BUILD_DOC OFF"
"BUILD_WITH_CCACHE ON"
)
if(TARGET Exiv2::exiv2lib)
target_link_libraries(AnalyzeView PRIVATE Exiv2::exiv2lib)
target_include_directories(AnalyzeView PRIVATE ${CMAKE_BINARY_DIR})
return()
endif()
+10 -15
View File
@@ -16,19 +16,14 @@ target_link_libraries(Audio
target_include_directories(Audio PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
if(LINUX)
find_package(SpeechDispatcher)
if(TARGET SpeechDispatcher::SpeechDispatcher)
target_link_libraries(Audio PRIVATE SpeechDispatcher::SpeechDispatcher)
endif()
# if(LINUX)
# find_package(SpeechDispatcher)
# if(TARGET SpeechDispatcher::SpeechDispatcher)
# target_link_libraries(Audio PRIVATE SpeechDispatcher::SpeechDispatcher)
# endif()
find_package(Flite)
if(TARGET Flite::Flite)
target_link_libraries(Audio PRIVATE Flite::Flite)
endif()
endif()
target_precompile_headers(Audio
PRIVATE
<QtTextToSpeech/QTextToSpeech>
)
# find_package(Flite)
# if(TARGET Flite::Flite)
# target_link_libraries(Audio PRIVATE Flite::Flite)
# endif()
# endif()
+12 -32
View File
@@ -1,12 +1,4 @@
find_package(Qt6
REQUIRED
COMPONENTS
Core
Core5Compat
QuickControls2
QuickWidgets
Widgets
)
find_package(Qt6 REQUIRED COMPONENTS Core Gui Network Qml QuickControls2 Widgets)
qt_add_library(QGC STATIC
CmdLineOptParser.cc
@@ -53,10 +45,12 @@ add_subdirectory(Viewer3D)
#######################################################
target_link_libraries(QGC
PRIVATE
Qt6::CorePrivate
Qt6::Gui
Qt6::Network
Qt6::Qml
Qt6::Quick
Qt6::QuickControls2
Qt6::QuickWidgets
Qt6::Core5Compat
API
AnalyzeView
Audio
@@ -89,45 +83,31 @@ target_link_libraries(QGC
VideoManager
PUBLIC
Qt6::Core
Qt6::CorePrivate
Qt6::Widgets
)
target_include_directories(QGC PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_precompile_headers(QGC
PUBLIC
<QtCore/QObject>
<QtCore/QString>
)
if(ANDROID)
target_sources(QGC
PRIVATE
${CMAKE_SOURCE_DIR}/android/src/AndroidInterface.cc
${CMAKE_SOURCE_DIR}/android/src/AndroidInterface.h
PUBLIC
${CMAKE_SOURCE_DIR}/android/src/AndroidInit.cpp
)
target_link_libraries(QGC
PRIVATE
Qt6::CorePrivate
Utilities
PUBLIC
Qt6::Core
Comms
Joystick
)
target_include_directories(QGC PUBLIC ${CMAKE_SOURCE_DIR}/android/src)
target_precompile_headers(QGC
PRIVATE
<QtCore/QJniEnvironment>
)
else()
target_sources(QGC
PRIVATE
RunGuard.cc
RunGuard.h
)
endif()
target_precompile_headers(QGC
PRIVATE
${CMAKE_SOURCE_DIR}/src/pch.h
<QtWidgets/QApplication>
)
+18 -19
View File
@@ -41,7 +41,7 @@ target_link_libraries(Comms
target_include_directories(Comms PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
############# Serial
#===========================================================================#
if(QGC_NO_SERIAL_LINK)
target_compile_definitions(Comms PUBLIC NO_SERIAL_LINK)
@@ -55,11 +55,13 @@ else()
UdpIODevice.cc
UdpIODevice.h
)
target_link_libraries(Comms
PRIVATE
GPS
PositionManager
)
if(ANDROID)
add_subdirectory(${CMAKE_SOURCE_DIR}/android/libs/qtandroidserialport qtandroidserialport.build)
target_sources(qtandroidserialport
@@ -72,14 +74,10 @@ else()
else()
find_package(Qt6 REQUIRED COMPONENTS SerialPort)
target_link_libraries(Comms PUBLIC Qt6::SerialPort)
target_precompile_headers(Comms
PRIVATE
<QtSerialPort/QSerialPort>
)
endif()
endif()
############# Bluetooth
#===========================================================================#
if(QGC_ENABLE_BLUETOOTH)
find_package(Qt6 REQUIRED COMPONENTS Bluetooth)
@@ -90,28 +88,29 @@ if(QGC_ENABLE_BLUETOOTH)
BluetoothLink.h
)
target_compile_definitions(Comms PUBLIC QGC_ENABLE_BLUETOOTH)
target_precompile_headers(Comms
PRIVATE
<QtBluetooth/QBluetoothSocket>
)
endif()
############# ZEROConf
#===========================================================================#
if(QGC_ZEROCONF_ENABLED)
message(STATUS "Building QMDNSEngine")
FetchContent_Declare(qmdnsengine
GIT_REPOSITORY https://github.com/nitroshare/qmdnsengine.git
include(CPM)
CPMAddPackage(
NAME qmdnsengine
GITHUB_REPOSITORY nitroshare/qmdnsengine
GIT_TAG master
GIT_SHALLOW TRUE
OPTIONS
"BUILD_DOC OFF"
"BUILD_EXAMPLES OFF"
"BUILD_TESTS OFF"
)
set(BUILD_DOC OFF CACHE INTERNAL "")
set(BUILD_EXAMPLES OFF CACHE INTERNAL "")
set(BUILD_TESTS OFF CACHE INTERNAL "")
FetchContent_MakeAvailable(qmdnsengine)
target_link_libraries(Comms PUBLIC qmdnsengine)
target_compile_definitions(Comms PUBLIC QGC_ZEROCONF_ENABLED)
if(TARGET qmdnsengine)
target_link_libraries(Comms PUBLIC qmdnsengine)
target_compile_definitions(Comms PUBLIC QGC_ZEROCONF_ENABLED)
endif()
endif()
# target_compile_definitions(Comms PUBLIC QABSTRACTSOCKET_DEBUG)
+1 -1
View File
@@ -46,7 +46,7 @@ target_include_directories(APMFirmwarePlugin PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
include(CPM)
CPMAddPackage(
NAME ArduPilotParams
GIT_REPOSITORY https://github.com/ArduPilot/ParameterRepository.git
GITHUB_REPOSITORY ArduPilot/ParameterRepository
GIT_TAG main
GIT_SHALLOW TRUE
)
+1 -1
View File
@@ -45,7 +45,7 @@ message(STATUS "Building GPS Drivers")
include(CPM)
CPMAddPackage(
NAME px4-gpsdrivers
GIT_REPOSITORY https://github.com/PX4/PX4-GPSDrivers.git
GITHUB_REPOSITORY PX4/PX4-GPSDrivers
GIT_TAG main
GIT_SHALLOW TRUE
SOURCE_SUBDIR src
+22 -19
View File
@@ -37,29 +37,32 @@ if(NOT QGC_BUILD_DEPENDENCIES)
endif()
message(STATUS "Building GeographicLib")
FetchContent_Declare(GeographicLib
GIT_REPOSITORY https://github.com/geographiclib/geographiclib.git
include(CPM)
CPMAddPackage(
NAME geographiclib
VERSION ${TARGET_GEOGRAPHICLIB_VERSION}
GITHUB_REPOSITORY geographiclib/geographiclib
GIT_TAG "r${TARGET_GEOGRAPHICLIB_VERSION}"
GIT_SHALLOW TRUE
OPTIONS
"BUILD_BOTH_LIBS OFF"
"BUILD_DOCUMENTATION OFF"
"BUILD_MANPAGES OFF"
"PACKAGE_DEBUG_LIBS OFF"
"APPLE_MULTIPLE_ARCHITECTURES OFF"
"INCDIR OFF"
"BINDIR OFF"
"SBINDIR OFF"
"LIBDIR ${CMAKE_INSTALL_LIBDIR}"
"DLLDIR ${CMAKE_INSTALL_BINDIR}"
"MANDIR OFF"
"CMAKEDIR OFF"
"PKGDIR OFF"
"DOCDIR OFF"
"EXAMPLEDIR OFF"
)
set(BUILD_BOTH_LIBS OFF CACHE INTERNAL "" FORCE)
set(BUILD_DOCUMENTATION OFF CACHE INTERNAL "" FORCE)
set(BUILD_MANPAGES OFF CACHE INTERNAL "" FORCE)
set(PACKAGE_DEBUG_LIBS OFF CACHE INTERNAL "" FORCE)
set(APPLE_MULTIPLE_ARCHITECTURES OFF CACHE INTERNAL "" FORCE)
set(INCDIR "" CACHE INTERNAL "" FORCE)
set(BINDIR "" CACHE INTERNAL "" FORCE)
set(SBINDIR "" CACHE INTERNAL "" FORCE)
set(LIBDIR "${CMAKE_INSTALL_LIBDIR}" CACHE STRING "" FORCE)
set(DLLDIR "${CMAKE_INSTALL_BINDIR}" CACHE INTERNAL "" FORCE)
set(MANDIR "" CACHE INTERNAL "" FORCE)
set(CMAKEDIR "" CACHE INTERNAL "" FORCE)
set(PKGDIR "" CACHE INTERNAL "" FORCE)
set(DOCDIR "" CACHE INTERNAL "" FORCE)
set(EXAMPLEDIR "" CACHE INTERNAL "" FORCE)
FetchContent_MakeAvailable(GeographicLib)
if(TARGET GeographicLib::GeographicLib)
target_link_libraries(Geo PRIVATE GeographicLib::GeographicLib)
return()
endif()
+47 -42
View File
@@ -53,7 +53,7 @@ target_compile_definitions(Joystick PRIVATE QGC_SDL_JOYSTICK SDL_MAIN_HANDLED)
include(CPM)
CPMAddPackage(
NAME sdl_gamecontrollerdb
GIT_REPOSITORY https://github.com/mdqinc/SDL_GameControllerDB.git
GITHUB_REPOSITORY mdqinc/SDL_GameControllerDB
GIT_TAG master
GIT_SHALLOW TRUE
)
@@ -78,51 +78,56 @@ if(NOT QGC_BUILD_DEPENDENCIES)
endif()
endif()
message(STATUS "Building SDL")
FetchContent_Declare(SDL
GIT_REPOSITORY https://github.com/libsdl-org/SDL.git
GIT_TAG "release-${TARGET_SDL2_VERSION}"
GIT_SHALLOW TRUE
)
set(SDL2_DISABLE_INSTALL ON CACHE INTERNAL "" FORCE)
set(SDL2_DISABLE_UNINSTALL ON CACHE INTERNAL "" FORCE)
set(SDL2_DISABLE_SDL2MAIN ON CACHE INTERNAL "" FORCE)
set(SDL_SHARED OFF CACHE INTERNAL "" FORCE)
set(SDL_STATIC ON CACHE INTERNAL "" FORCE)
set(SDL_TEST OFF CACHE INTERNAL "" FORCE)
set(SDL_ATOMIC ON CACHE INTERNAL "" FORCE)
set(SDL_AUDIO OFF CACHE INTERNAL "" FORCE)
set(SDL_CPUINFO ON CACHE INTERNAL "" FORCE)
set(SDL_EVENTS ON CACHE INTERNAL "" FORCE)
set(SDL_FILE OFF CACHE INTERNAL "" FORCE)
set(SDL_FILESYSTEM OFF CACHE INTERNAL "" FORCE)
set(SDL_HAPTIC ON CACHE INTERNAL "" FORCE)
set(SDL_HIDAPI ON CACHE INTERNAL "" FORCE)
set(SDL_JOYSTICK ON CACHE INTERNAL "" FORCE)
set(SDL_LOADSO ON CACHE INTERNAL "" FORCE)
set(SDL_LOCALE OFF CACHE INTERNAL "" FORCE)
set(SDL_MISC OFF CACHE INTERNAL "" FORCE)
set(SDL_POWER ON CACHE INTERNAL "" FORCE)
set(SDL_RENDER OFF CACHE INTERNAL "" FORCE)
set(SDL_SENSOR OFF CACHE INTERNAL "" FORCE)
set(SDL_THREADS ON CACHE INTERNAL "" FORCE)
set(SDL_TIMERS OFF CACHE INTERNAL "" FORCE)
set(SDL_VIDEO OFF CACHE INTERNAL "" FORCE)
set(SDL_3DNOW OFF CACHE INTERNAL "" FORCE)
set(SDL_DBUS OFF CACHE INTERNAL "" FORCE)
set(SDL_IBUS OFF CACHE INTERNAL "" FORCE)
set(SDL_MMX OFF CACHE INTERNAL "" FORCE)
set(SDL_VIRTUAL_JOYSTICK ON CACHE INTERNAL "" FORCE)
message(STATUS "Building SDL2")
if(WIN32)
set(SDL_DIRECTX OFF CACHE INTERNAL "" FORCE)
set(SDL_XINPUT ON CACHE INTERNAL "" FORCE)
set(SDL2_EXTRA_OPTIONS
"SDL_DIRECTX OFF"
"SDL_XINPUT ON"
)
endif()
FetchContent_MakeAvailable(SDL)
include(CPM)
CPMAddPackage(
NAME sdl2
VERSION ${TARGET_SDL2_VERSION}
GITHUB_REPOSITORY libsdl-org/SDL
GIT_TAG "release-${TARGET_SDL2_VERSION}"
GIT_SHALLOW TRUE
OPTIONS
"SDL2_DISABLE_INSTALL ON"
"SDL2_DISABLE_INSTALL ON"
"SDL2_DISABLE_UNINSTALL ON"
"SDL2_DISABLE_SDL2MAIN ON"
"SDL_SHARED OFF"
"SDL_STATIC ON"
"SDL_TEST OFF"
"SDL_ATOMIC ON"
"SDL_AUDIO OFF"
"SDL_CPUINFO ON"
"SDL_EVENTS ON"
"SDL_FILE OFF"
"SDL_FILESYSTEM OFF"
"SDL_HAPTIC ON"
"SDL_HIDAPI ON"
"SDL_JOYSTICK ON"
"SDL_LOADSO ON"
"SDL_LOCALE OFF"
"SDL_MISC OFF"
"SDL_POWER ON"
"SDL_RENDER OFF"
"SDL_SENSOR OFF"
"SDL_THREADS ON"
"SDL_TIMERS OFF"
"SDL_VIDEO OFF"
"SDL_3DNOW OFF"
"SDL_DBUS OFF"
"SDL_IBUS OFF"
"SDL_MMX OFF"
"SDL_VIRTUAL_JOYSTICK ON"
"${SDL2_EXTRA_OPTIONS}"
)
if(TARGET SDL2::SDL2-static)
target_link_libraries(Joystick PRIVATE SDL2::SDL2-static)
return()
endif()
+8 -6
View File
@@ -31,19 +31,21 @@ target_link_libraries(MAVLink
target_include_directories(MAVLink PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
############# MAVLink
#===========================================================================#
message(STATUS "Building MAVLink")
# TODO:
# FetchContent_Declare(mavlink
# GIT_REPOSITORY https://github.com/mavlink/mavlink.git
# include(CPM)
# CPMAddPackage(
# NAME mavlink
# GITHUB_REPOSITORY mavlink/mavlink
# GIT_TAG master
# GIT_SHALLOW TRUE
# OPTIONS
# "MAVLINK_DIALECT all"
# "MAVLINK_VERSION 2.0"
# )
# set(MAVLINK_DIALECT all)
# set(MAVLINK_VERSION 2.0)
# FetchContent_MakeAvailable(mavlink)
include(CPM)
CPMAddPackage(
+1 -1
View File
@@ -30,7 +30,7 @@ message(STATUS "Building libevents")
include(CPM)
CPMAddPackage(
NAME libevents
GIT_REPOSITORY https://github.com/mavlink/libevents.git
GITHUB_REPOSITORY mavlink/libevents
GIT_TAG main
GIT_SHALLOW TRUE
SOURCE_SUBDIR libs/cpp
+9 -4
View File
@@ -18,7 +18,10 @@
#include "QGCApplication.h"
#include <QtCore/QEvent>
#include <QtCore/QFile>
#include <QtCore/QMetaMethod>
#include <QtCore/QMetaObject>
#include <QtCore/QRegularExpression>
#include <QtGui/QFontDatabase>
#include <QtGui/QIcon>
@@ -29,6 +32,8 @@
#include <QtQuick/QQuickWindow>
#include <QtQuickControls2/QQuickStyle>
#include <QtCore/private/qthread_p.h>
#include "AppMessages.h"
#include "AudioOutput.h"
#include "AutoPilotPlugin.h"
@@ -218,7 +223,7 @@ void QGCApplication::setLanguage()
_locale = QLocale(possibleLocale);
}
//-- We have specific fonts for Korean
if(_locale == QLocale::Korean) {
if (_locale == QLocale::Korean) {
qCDebug(LocalizationLog) << "Loading Korean fonts" << _locale.name();
if(QFontDatabase::addApplicationFont(":/fonts/NanumGothic-Regular") < 0) {
qCWarning(LocalizationLog) << "Could not load /fonts/NanumGothic-Regular font";
@@ -233,17 +238,17 @@ void QGCApplication::setLanguage()
removeTranslator(&_qgcTranslatorQtLibs);
if (_locale.name() != "en_US") {
QLocale::setDefault(_locale);
if(_qgcTranslatorQtLibs.load("qt_" + _locale.name(), QLibraryInfo::path(QLibraryInfo::TranslationsPath))) {
if (_qgcTranslatorQtLibs.load("qt_" + _locale.name(), QLibraryInfo::path(QLibraryInfo::TranslationsPath))) {
installTranslator(&_qgcTranslatorQtLibs);
} else {
qCWarning(LocalizationLog) << "Qt lib localization for" << _locale.name() << "is not present";
}
if(_qgcTranslatorSourceCode.load(_locale, QLatin1String("qgc_source_"), "", ":/i18n")) {
if (_qgcTranslatorSourceCode.load(_locale, QLatin1String("qgc_source_"), "", ":/i18n")) {
installTranslator(&_qgcTranslatorSourceCode);
} else {
qCWarning(LocalizationLog) << "Error loading source localization for" << _locale.name();
}
if(JsonHelper::translator()->load(_locale, QLatin1String("qgc_json_"), "", ":/i18n")) {
if (JsonHelper::translator()->load(_locale, QLatin1String("qgc_json_"), "", ":/i18n")) {
installTranslator(JsonHelper::translator());
} else {
qCWarning(LocalizationLog) << "Error loading json localization for" << _locale.name();
+25 -40
View File
@@ -9,52 +9,38 @@
#pragma once
#include <QtWidgets/QApplication>
#include <QtCore/QTimer>
#include <QtCore/QElapsedTimer>
#include <QtCore/QMap>
#include <QtCore/QSet>
#include <QtCore/QEvent>
#include <QtCore/QMetaMethod>
#include <QtCore/QMetaObject>
#include <QtCore/QTimer>
#include <QtCore/QTranslator>
// These private headers are require to implement the signal compress support below
#include <QtCore/private/qthread_p.h>
#include <QtCore/private/qobject_p.h>
#include <QtWidgets/QApplication>
// Work around circular header includes
class QQmlApplicationEngine;
class QQuickWindow;
class QGCImageProvider;
class QGCApplication;
class QEvent;
class QPostEventList;
class QMetaMethod;
class QMetaObject;
#if defined(qApp)
#undef qApp
#endif
#define qApp (static_cast<QGCApplication *>(QApplication::instance()))
#define qApp (static_cast<QGCApplication*>(QApplication::instance()))
#if defined(qGuiApp)
#undef qGuiApp
#endif
#define qGuiApp (static_cast<QGCApplication *>(QGuiApplication::instance()))
#define qGuiApp (static_cast<QGCApplication*>(QGuiApplication::instance()))
#define qgcApp() qApp
/**
* @brief The main application and management class.
*
* This class is started by the main method and provides
* the central management unit of the groundstation application.
*
* Needs QApplication base to support QtCharts module. This way
* we avoid application crashing on 5.12 when using the module.
*
* Note: `lastWindowClosed` will be sent by MessageBox popups and other
* dialogs, that are spawned in QML, when they are closed
**/
// TODO: Use QtGraphs to convert to QGuiApplication
/// The main application and management class.
/// Needs QApplication base to support QtCharts module.
/// TODO: Use QtGraphs to convert to QGuiApplication
class QGCApplication : public QApplication
{
Q_OBJECT
@@ -65,16 +51,16 @@ public:
QGCApplication(int &argc, char *argv[], bool unitTesting);
~QGCApplication();
/// @brief Sets the persistent flag to delete all settings the next time QGroundControl is started.
/// Sets the persistent flag to delete all settings the next time QGroundControl is started.
void deleteAllSettingsNextBoot();
/// @brief Clears the persistent flag to delete all settings the next time QGroundControl is started.
/// Clears the persistent flag to delete all settings the next time QGroundControl is started.
void clearDeleteAllSettingsNextBoot();
/// @brief Returns true if unit tests are being run
/// Returns true if unit tests are being run
bool runningUnitTests() const { return _runningUnitTests; }
/// @brief Returns true if Qt debug output should be logged to a file
/// Returns true if Qt debug output should be logged to a file
bool logOutput() const { return _logOutput; }
/// Used to report a missing Parameter. Warning will be displayed to user. Method may be called
@@ -102,11 +88,11 @@ public:
static QString cachedAirframeMetaDataFile();
public:
/// @brief Perform initialize which is common to both normal application running and unit tests.
/// Perform initialize which is common to both normal application running and unit tests.
void init();
void shutdown();
// Although public, these methods are internal and should only be called by UnitTest code
/// Although public, these methods are internal and should only be called by UnitTest code
QQmlApplicationEngine *qmlAppEngine() const { return _qmlAppEngine; }
signals:
@@ -140,15 +126,14 @@ private slots:
void _showDelayedAppMessages();
private:
/// @brief Initialize the application for normal application boot. Or in other words we are not going to run unit tests.
bool compressEvent(QEvent *event, QObject *receiver, QPostEventList *postedEvents) final;
/// Initialize the application for normal application boot. Or in other words we are not going to run unit tests.
void _initForNormalAppBoot();
QObject *_rootQmlObject();
void _checkForNewVersion();
// Overrides from QApplication
bool compressEvent(QEvent *event, QObject *receiver, QPostEventList *postedEvents) final;
bool _runningUnitTests = false; ///< true: running unit tests, false: normal app
static constexpr int _missingParamsDelayedDisplayTimerTimeout = 1000; ///< Timeout to wait for next missing fact to come in before display
QTimer _missingParamsDelayedDisplayTimer; ///< Timer use to delay missing fact display
@@ -171,12 +156,10 @@ private:
QList<QPair<QString /* title */, QString /* message */>> _delayedAppMessages;
class CompressedSignalList {
Q_DISABLE_COPY(CompressedSignalList)
class CompressedSignalList
{
public:
CompressedSignalList() {}
void add(const QMetaMethod &method);
void remove(const QMetaMethod &method);
bool contains(const QMetaObject *metaObject, int signalIndex);
@@ -185,7 +168,9 @@ private:
/// Returns a signal index that is can be compared to QMetaCallEvent.signalId
static int _signalIndex(const QMetaMethod &method);
QMap<const QMetaObject*, QSet<int> > _signalMap;
QMap<const QMetaObject*, QSet<int>> _signalMap;
Q_DISABLE_COPY(CompressedSignalList)
};
CompressedSignalList _compressedSignals;
-6
View File
@@ -72,12 +72,6 @@ target_include_directories(QGCLocation
QMLControl
)
target_precompile_headers(QGCLocation
PRIVATE
<QtLocation/QGeoServiceProvider>
<QtSql/QSqlDatabase>
)
set_source_files_properties(QMLControl/OfflineMapEditor.qml PROPERTIES QT_RESOURCE_ALIAS OfflineMapEditor.qml)
# qt_add_qml_module(QGCLocation
@@ -16,7 +16,9 @@
#include "QGCMapUrlEngine.h"
#include "MapProvider.h"
#include "QGCMapEngineManager.h"
#include <QGCLoggingCategory.h>
#include "QGCLoggingCategory.h"
#include <mutex>
#include <QtCore/QDir>
#include <QtNetwork/QNetworkAccessManager>
+3 -4
View File
@@ -9,15 +9,14 @@
#pragma once
#include <QtCore/QObject>
#include <QtCore/QSharedMemory>
#include <QtCore/QString>
#include <QtCore/QSystemSemaphore>
class RunGuard
{
public:
RunGuard( const QString& key );
RunGuard(const QString &key);
~RunGuard();
bool isAnotherRunning();
@@ -32,5 +31,5 @@ private:
QSharedMemory sharedMem;
QSystemSemaphore memLock;
Q_DISABLE_COPY( RunGuard )
Q_DISABLE_COPY(RunGuard)
};
+7 -8
View File
@@ -6,14 +6,13 @@ qt_add_library(UTMSP STATIC)
if(QGC_UTM_ADAPTER)
message(STATUS "UTMSP is Initialized")
# if(NOT TARGET nlohmann_json)
# FetchContent_Declare(json
# GIT_REPOSITORY https://github.com/nlohmann/json.git
# GIT_TAG v3.11.3
# GIT_SHALLOW TRUE
# )
# FetchContent_MakeAvailable(json)
# endif()
# message(STATUS "Building nlohmann_json")
# include(CPM)
# CPMAddPackage(
# NAME nlohmann_json
# VERSION 3.11.3
# GITHUB_REPOSITORY nlohmann/json
# )
find_package(Qt6 REQUIRED COMPONENTS Network Positioning Qml)
find_package(Threads REQUIRED)
+10 -11
View File
@@ -74,19 +74,18 @@ if(NOT QGC_BUILD_DEPENDENCIES)
endif()
message(STATUS "Building Shapelib")
FetchContent_Declare(shapelib
GIT_REPOSITORY https://github.com/OSGeo/shapelib.git
GIT_TAG "v${TARGET_SHAPELIB_VERSION}"
GIT_SHALLOW TRUE
include(CPM)
CPMAddPackage(
NAME shapelib
VERSION ${TARGET_SHAPELIB_VERSION}
GITHUB_REPOSITORY OSGeo/shapelib
OPTIONS
"BUILD_SHAPELIB_CONTRIB OFF"
"BUILD_APPS OFF"
"BUILD_TESTING OFF"
)
set(BUILD_SHAPELIB_CONTRIB OFF CACHE INTERNAL "" FORCE)
set(BUILD_APPS OFF CACHE INTERNAL "" FORCE)
set(saved_BUILD_TESTING ${BUILD_TESTING})
set(BUILD_TESTING OFF CACHE INTERNAL "Disable Testing for Shapelib" FORCE)
FetchContent_MakeAvailable(shapelib)
set(BUILD_TESTING ${saved_BUILD_TESTING} CACHE INTERNAL "Restore BUILD_TESTING from Shapelib" FORCE)
if(TARGET shp)
target_link_libraries(Utilities PRIVATE shp)
return()
endif()
+22 -14
View File
@@ -34,17 +34,19 @@ endif()
if(NOT TARGET ZLIB::ZLIB)
message(STATUS "Building ZLIB")
FetchContent_Declare(zlib
GIT_REPOSITORY https://github.com/madler/zlib.git
GIT_TAG "v${TARGET_ZLIB_VERSION}"
GIT_SHALLOW TRUE
include(CPM)
CPMAddPackage(
NAME zlib
VERSION ${TARGET_ZLIB_VERSION}
GITHUB_REPOSITORY madler/zlib
OPTIONS
"ZLIB_BUILD_EXAMPLES OFF"
"SKIP_INSTALL_FILES ON"
"SKIP_INSTALL_LIBRARIES ON"
"SKIP_INSTALL_HEADERS ON"
"SKIP_INSTALL_ALL ON"
)
set(ZLIB_BUILD_EXAMPLES OFF CACHE INTERNAL "" FORCE)
set(SKIP_INSTALL_FILES ON CACHE INTERNAL "" FORCE)
set(SKIP_INSTALL_LIBRARIES ON CACHE INTERNAL "" FORCE)
set(SKIP_INSTALL_HEADERS ON CACHE INTERNAL "" FORCE)
set(SKIP_INSTALL_ALL ON CACHE INTERNAL "" FORCE)
FetchContent_MakeAvailable(zlib)
if(TARGET zlibstatic)
target_link_libraries(Compression PRIVATE zlibstatic)
@@ -54,12 +56,18 @@ endif()
#===========================================================================#
message(STATUS "Building XZ")
FetchContent_Declare(xz-embedded
GIT_REPOSITORY https://github.com/tukaani-project/xz-embedded.git
GIT_TAG v2024-12-30
include(CPM)
CPMAddPackage(
NAME xz-embedded
GITHUB_REPOSITORY tukaani-project/xz-embedded
GIT_TAG "v2024-12-30"
GIT_SHALLOW TRUE
OPTIONS
"BUILD_SHAPELIB_CONTRIB OFF"
"BUILD_APPS OFF"
"BUILD_TESTING OFF"
)
FetchContent_MakeAvailable(xz-embedded)
qt_add_library(xz STATIC
${xz-embedded_SOURCE_DIR}/linux/include/linux/xz.h
@@ -112,12 +112,12 @@ endif()
################################################################################
if(GStreamer_VERSION VERSION_GREATER_EQUAL 1.22)
FetchContent_Declare(gstreamer_good_plugins
DOWNLOAD_EXTRACT_TIMESTAMP true
include(CPM)
CPMAddPackage(
NAME gstreamer_good_plugins
# URL https://gitlab.freedesktop.org/gstreamer/gstreamer/-/archive/${GST_PLUGINS_VERSION}/gstreamer-${GST_PLUGINS_VERSION}.zip?path=subprojects/gst-plugins-good/ext/qt6
URL https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${GST_PLUGINS_VERSION}.tar.xz
)
FetchContent_MakeAvailable(gstreamer_good_plugins)
set(QGC_GST_QT6_PLUGIN_PATH "${gstreamer_good_plugins_SOURCE_DIR}/ext/qt6")
else()
set(QGC_GST_QT6_PLUGIN_PATH "${CMAKE_CURRENT_SOURCE_DIR}/qt6")
@@ -2,7 +2,6 @@ find_package(Qt6 REQUIRED COMPONENTS Core)
qt_add_library(QtMultimediaReceiver STATIC)
cmake_print_variables(QGC_ENABLE_QT_VIDEOSTREAMING)
if(NOT QGC_ENABLE_QT_VIDEOSTREAMING)
return()
endif()
@@ -41,8 +40,3 @@ target_sources(QtMultimediaReceiver
UVCReceiver.cc
UVCReceiver.h
)
target_precompile_headers(QtMultimediaReceiver
PRIVATE
<QtMultimedia/QMediaDevices>
)
+8 -13
View File
@@ -7,16 +7,19 @@
*
****************************************************************************/
#include <QtCore/QProcessEnvironment>
#include <QtCore/QtPlugin>
#include <QtWidgets/QApplication>
#include <QtWidgets/QMessageBox>
#include <QtQuick/QQuickWindow>
#include <QtWidgets/QApplication>
#ifdef Q_OS_MACOS
#include <QtCore/QProcessEnvironment>
#endif
#include "QGCApplication.h"
#include "AppMessages.h"
#if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS)
#include <QtWidgets/QMessageBox>
#include "RunGuard.h"
#endif
@@ -29,7 +32,7 @@
#include "CmdLineOptParser.h"
#ifdef UNITTEST_BUILD
#include "UnitTestList.h"
#include "UnitTestList.h"
#endif
#ifdef Q_OS_WIN
@@ -53,7 +56,6 @@ int WindowsCrtReportHook(int reportType, char* message, int* returnValue)
#endif // QT_DEBUG
// To shut down QGC on Ctrl+C on Linux
#ifdef Q_OS_LINUX
#ifndef Q_OS_ANDROID
@@ -92,7 +94,6 @@ int main(int argc, char *argv[])
RunGuard guard(runguardString);
if (!guard.tryToRun()) {
// QApplication is necessary to use QMessageBox
QApplication errorApp(argc, argv);
QMessageBox::critical(nullptr, QObject::tr("Error"),
QObject::tr("A second instance of %1 is already running. Please close the other instance and try again.").arg(QGC_APP_NAME)
@@ -116,13 +117,11 @@ int main(int argc, char *argv[])
#endif
#ifdef Q_OS_UNIX
//Force writing to the console on UNIX/BSD devices
if (!qEnvironmentVariableIsSet("QT_LOGGING_TO_CONSOLE")) {
qputenv("QT_LOGGING_TO_CONSOLE", "1");
}
#endif
// install the message handler
AppMessages::installHandler();
#ifdef Q_OS_MACOS
@@ -146,16 +145,12 @@ int main(int argc, char *argv[])
break;
}
}
// In Windows, the compiler doesn't see the use of the class created by Q_IMPORT_PLUGIN
#pragma warning( disable : 4930 4101 )
#endif
// We statically link our own QtLocation plugin
Q_IMPORT_PLUGIN(QGeoServiceProviderFactoryQGC)
bool runUnitTests = false; // Run unit tests
bool runUnitTests = false;
#ifdef QT_DEBUG
// We parse a small set of command line options here prior to QGCApplication in order to handle the ones
-27
View File
@@ -1,27 +0,0 @@
/****************************************************************************
*
* (c) 2009-2024 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
*
* QGroundControl is licensed according to the terms in the file
* COPYING.md in the root of the source code directory.
*
****************************************************************************/
#pragma once
#ifdef __cplusplus
#include <QtConcurrent/QtConcurrent>
#include <QtCore/QCoreApplication>
#include <QtGui/QGuiApplication>
#include <QtNetwork/QNetworkAccessManager>
#include <QtPositioning/QGeoCoordinate>
#include <QtQml/QQmlApplicationEngine>
#include <QtQmlIntegration/QtQmlIntegration>
#include <QtQuick/QQuickItem>
#include <QtQuickControls2/QQuickStyle>
#include <QtTest/QSignalSpy>
#include <QtXml/QDomDocument>
#ifdef QT_DEBUG
#include <QtCore/QDebug>
#endif
#endif