CMake: Add New Installers

This commit is contained in:
Holden
2024-06-24 12:30:13 -04:00
committed by Holden
parent 26dfc90dbd
commit efa4e2f565
50 changed files with 526 additions and 769 deletions
+11 -8
View File
@@ -98,6 +98,8 @@ endif()
set(BUILD_SHARED_LIBS OFF)
# include(CMakePrintSystemInformation)
# include(ProcessorCount)
cmake_print_variables(
CMAKE_VERSION
CMAKE_PREFIX_PATH
@@ -281,7 +283,7 @@ endif()
set_target_properties(${PROJECT_NAME}
PROPERTIES
QT_RESOURCE_PREFIX "/qgc"
OUTPUT_NAME ${QGC_APP_NAME}
OUTPUT_NAME ${CMAKE_PROJECT_NAME}
)
if(WIN32)
@@ -308,7 +310,7 @@ elseif(MACOS)
PROPERTIES
MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/deploy/mac/MacOSXBundleInfo.plist.in"
MACOSX_BUNDLE_BUNDLE_NAME "${QGC_APP_NAME}"
MACOSX_BUNDLE_BUNDLE_NAME "${CMAKE_PROJECT_NAME}"
MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_VERSION}"
MACOSX_BUNDLE_COPYRIGHT "${QGC_APP_COPYRIGHT}"
MACOSX_BUNDLE_GUI_IDENTIFIER "${QGC_BUNDLE_ID}"
@@ -360,7 +362,7 @@ elseif(LINUX)
endif()
add_compile_definitions(
QGC_APP_NAME="${QGC_APP_NAME}"
QGC_APP_NAME="${CMAKE_PROJECT_NAME}"
QGC_ORG_NAME="${QGC_ORG_NAME}"
QGC_ORG_DOMAIN="${QGC_ORG_DOMAIN}"
QGC_APP_VERSION_STR="${QGC_APP_VERSION_STR}"
@@ -382,16 +384,18 @@ if(QGC_BUILD_TESTING)
target_link_libraries(${PROJECT_NAME} PRIVATE qgctest)
endif()
#######################################################
# Install Configuration
#######################################################
qt_import_plugins(${PROJECT_NAME}
INCLUDE Qt6::QSvgPlugin
EXCLUDE_BY_TYPE geoservices
INCLUDE_BY_TYPE sqldrivers Qt6::QSQLiteDriverPlugin
)
#######################################################
# Install Configuration
#######################################################
include(InstallRequiredSystemLibraries)
install(
TARGETS ${PROJECT_NAME}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
@@ -436,7 +440,6 @@ if(LINUX)
)
install(SCRIPT "${CMAKE_SOURCE_DIR}/cmake/CreateAppImage.cmake")
elseif(WIN32)
# install(SCRIPT "${CMAKE_SOURCE_DIR}/cmake/CreateQGCInstaller.cmake")
install(SCRIPT "${CMAKE_SOURCE_DIR}/cmake/CreateWinInstaller.cmake")
elseif(MACOS)
install(SCRIPT "${CMAKE_SOURCE_DIR}/cmake/CreateMacDMG.cmake")
+12 -1
View File
@@ -1,9 +1,12 @@
message(STATUS "Creating AppImage")
# TODO: https://github.com/AppImageCommunity/AppImageUpdate
set(APPDIR_PATH "${CMAKE_BINARY_DIR}/AppDir")
set(LD_PATH "${CMAKE_BINARY_DIR}/linuxdeploy-x86_64.AppImage")
set(LD_APPIMAGEPLUGIN_PATH "${CMAKE_BINARY_DIR}/linuxdeploy-plugin-appimage-x86_64.AppImage")
set(LD_QTPLUGIN_PATH "${CMAKE_BINARY_DIR}/linuxdeploy-plugin-qt-x86_64.AppImage")
# set(LD_GSTPLUGIN_PATH "${CMAKE_BINARY_DIR}/linuxdeploy-plugin-gstreamer.sh")
# set(LD_GTKPLUGIN_PATH "${CMAKE_BINARY_DIR}/linuxdeploy-plugin-gtk.sh")
if(NOT EXISTS "${LD_PATH}")
file(DOWNLOAD https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage "${LD_PATH}")
@@ -17,5 +20,13 @@ if(NOT EXISTS "${LD_QTPLUGIN_PATH}")
file(DOWNLOAD https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage "${LD_QTPLUGIN_PATH}")
execute_process(COMMAND chmod a+x "${LD_QTPLUGIN_PATH}")
endif()
# if(NOT EXISTS "${LD_GTKPLUGIN_PATH}")
# file(DOWNLOAD https://raw.githubusercontent.com/linuxdeploy/linuxdeploy-plugin-gtk/master/linuxdeploy-plugin-gtk.sh "${LD_GTKPLUGIN_PATH}")
# execute_process(COMMAND chmod a+x "${LD_GTKPLUGIN_PATH}")
# endif()
# if(NOT EXISTS "${LD_GSTPLUGIN_PATH}")
# file(DOWNLOAD https://raw.githubusercontent.com/linuxdeploy/linuxdeploy-plugin-gstreamer/master/linuxdeploy-plugin-gstreamer.sh "${LD_GSTPLUGIN_PATH}")
# execute_process(COMMAND chmod a+x "${LD_GSTPLUGIN_PATH}")
# endif()
execute_process(COMMAND ${LD_PATH} --appdir ${APPDIR_PATH} --output appimage) # --plugin qt
execute_process(COMMAND ${LD_PATH} --appdir ${APPDIR_PATH} --output appimage) # --plugin qt --plugin gtk --plugin gstreamer
+10
View File
@@ -0,0 +1,10 @@
include(CreateCPackCommon)
set(CPACK_GENERATOR "ZIP")
set(CPACK_ARCHIVE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME})
set(CPACK_ARCHIVE_FILE_EXTENSION TXZ)
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
set(CPACK_ARCHIVE_THREADS 2)
include(CPack)
+17
View File
@@ -0,0 +1,17 @@
include(CreateCPackCommon)
set(CPACK_GENERATOR "BUNDLE")
set(QGC_INSTALLER_SOURCE "${CMAKE_SOURCE_DIR}/deploy/mac")
set(CPACK_BUNDLE_NAME ${CMAKE_PROJECT_NAME})
set(CPACK_BUNDLE_PLIST "${QGC_INSTALLER_SOURCE}/MacOSXBundleInfo.plist.in")
set(CPACK_BUNDLE_ICON "${QGC_APP_ICON}")
# set(CPACK_BUNDLE_STARTUP_COMMAND "")
# set(CPACK_BUNDLE_APPLE_CERT_APP "")
# set(CPACK_BUNDLE_APPLE_ENTITLEMENTS "")
# set(CPACK_BUNDLE_APPLE_CODESIGN_FILES "")
# set(CPACK_BUNDLE_APPLE_CODESIGN_PARAMETER "")
# set(CPACK_COMMAND_CODESIGN "")
include(CPack)
+52
View File
@@ -0,0 +1,52 @@
# Variables common to all CPack Generators
set(CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME})
set(CPACK_PACKAGE_VENDOR ${QGC_ORG_NAME})
set(CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR})
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
set(CPACK_PACKAGE_DESCRIPTION ${PROJECT_DESCRIPTION})
# set(CPACK_PACKAGE_DESCRIPTION_FILE "")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_DESCRIPTION})
set(CPACK_PACKAGE_HOMEPAGE_URL ${PROJECT_HOMEPAGE_URL})
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}")
set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CMAKE_PROJECT_NAME})
set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/resources/icons/qgroundcontrol.png")
# set(CPACK_PACKAGE_CHECKSUM "")
# set(CPACK_PROJECT_CONFIG_FILE "")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/.github/COPYING.md")
set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/README.md")
# set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_SOURCE_DIR}/desc/welcome.txt")
# set(CPACK_MONOLITHIC_INSTALL
# set(CPACK_GENERATOR
# set(CPACK_OUTPUT_CONFIG_FILE
set(CPACK_PACKAGE_EXECUTABLES ${CMAKE_PROJECT_NAME})
# set(CPACK_STRIP_FILES
set(CPACK_VERBATIM_VARIABLES ON)
set(CPACK_THREADS -4)
# Variables for Source Package Generators
# set(CPACK_SOURCE_PACKAGE_FILE_NAME
# set(CPACK_SOURCE_STRIP_FILES
# set(CPACK_SOURCE_GENERATOR
# set(CPACK_SOURCE_OUTPUT_CONFIG_FILE
# set(CPACK_SOURCE_IGNORE_FILES
# Variables for Advanced Use
# set(CPACK_CMAKE_GENERATOR
# set(CPACK_INSTALL_CMAKE_PROJECTS
# set(CPACK_SYSTEM_NAME
# set(CPACK_PACKAGE_VERSION
# set(CPACK_TOPLEVEL_TAG
# set(CPACK_INSTALL_COMMANDS
# set(CPACK_INSTALL_SCRIPTS
# set(CPACK_PRE_BUILD_SCRIPTS
# set(CPACK_POST_BUILD_SCRIPTS
# set(CPACK_PACKAGE_FILES
# set(CPACK_INSTALLED_DIRECTORIES
# set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
# set(CPACK_CREATE_DESKTOP_LINKS
# set(CPACK_BINARY_<GENNAME>
# set(CPACK_READELF_EXECUTABLE
# set(CPACK_OBJCOPY_EXECUTABLE
# set(CPACK_OBJDUMP_EXECUTABLE
+22
View File
@@ -0,0 +1,22 @@
include(CreateCPackCommon)
set(CPACK_GENERATOR "DragNDrop")
set(QGC_INSTALLER_SOURCE "${CMAKE_SOURCE_DIR}/deploy/mac")
set(CPACK_DMG_VOLUME_NAME ${CPACK_PACKAGE_FILE_NAME})
set(CPACK_DMG_FORMAT UDBZ)
# set(CPACK_DMG_DS_STORE)
# set(CPACK_DMG_DS_STORE_SETUP_SCRIPT "")
# set(CPACK_DMG_BACKGROUND_IMAGE "")
set(CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK OFF)
# set(CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE "")
# set(CPACK_DMG_SLA_DIR "")
# set(CPACK_DMG_SLA_LANGUAGES "")
# set( CPACK_DMG_<component>_FILE_NAME¶ "")
set(CPACK_DMG_FILESYSTEM HFS+) # Use APFS to fix CI hdiutil issue?
set(CPACK_COMMAND_HDIUTIL "/usr/bin/sudo /usr/bin/hdiutil")
# set(CPACK_COMMAND_SETFILE "")
# set(CPACK_COMMAND_REZ "")
include(CPack)
+42
View File
@@ -0,0 +1,42 @@
include(CreateCPackCommon)
set(CPACK_GENERATOR "DEB")
set(QGC_INSTALLER_SOURCE "${CMAKE_SOURCE_DIR}/deploy/linux")
set(CPACK_DEB_COMPONENT_INSTALL ON)
set(CPACK_DEBIAN_PACKAGE_NAME ${CPACK_PACKAGE_NAME})
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
# set(CPACK_DEBIAN_PACKAGE_EPOCH
set(CPACK_DEBIAN_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION})
set(CPACK_DEBIAN_PACKAGE_RELEASE ${QGC_GIT_HASH})
# set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
# set(CPACK_DEBIAN_PACKAGE_DEPENDS
# set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Dronecode")
# set(CPACK_DEBIAN_PACKAGE_DESCRIPTION
# set(CPACK_DEBIAN_PACKAGE_SECTION
set(CPACK_DEBIAN_ARCHIVE_TYPE xz)
# set(CPACK_DEBIAN_COMPRESSION_TYPE
# set(CPACK_DEBIAN_PACKAGE_PRIORITY
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${PROJECT_HOMEPAGE_URL})
# set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS 1)
# set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS
# set(CPACK_DEBIAN_PACKAGE_DEBUG
# set(CPACK_DEBIAN_PACKAGE_PREDEPENDS
# set(CPACK_DEBIAN_PACKAGE_ENHANCES
# set(CPACK_DEBIAN_PACKAGE_BREAKS
# set(CPACK_DEBIAN_PACKAGE_CONFLICTS
# set(CPACK_DEBIAN_PACKAGE_PROVIDES
# set(CPACK_DEBIAN_PACKAGE_REPLACES
# set(CPACK_DEBIAN_PACKAGE_RECOMMENDS
# set(CPACK_DEBIAN_PACKAGE_SUGGESTS
# set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS
# set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY
# set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
# set(CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION
# set(CPACK_DEBIAN_PACKAGE_SOURCE
# set(CPACK_DEBIAN_DEBUGINFO_PACKAGE
include(CPack)
+91
View File
@@ -0,0 +1,91 @@
include(CreateCPackCommon)
# Hints for Finding QtIFW
set(CPACK_IFW_ROOT "${Qt6_ROOT_DIR}/../../Tools/QtInstallerFramework/*")
set(QTIFWDIR "${Qt6_ROOT_DIR}/../../Tools/QtInstallerFramework/*")
include(CPackIFW)
set(CPACK_GENERATOR "IFW")
# Debug
set(CPACK_IFW_VERBOSE ON)
# Package
set(CPACK_IFW_PACKAGE_TITLE "${QGC_INSTALLER_NAME}")
set(CPACK_IFW_PACKAGE_PUBLISHER "${QGC_ORG_NAME}")
set(CPACK_IFW_PRODUCT_URL "${CMAKE_PROJECT_HOMEPAGE_URL}")
set(CPACK_IFW_PACKAGE_ICON "${QGC_APP_ICON}")
set(CPACK_IFW_PACKAGE_WINDOW_ICON "${CMAKE_SOURCE_DIR}/resources/icons/qgroundcontrol.png")
set(CPACK_IFW_PACKAGE_LOGO "${CMAKE_SOURCE_DIR}/resources/QGCLogoFull.svg")
set(CPACK_IFW_PACKAGE_WATERMARK "${INSTALLER_ROOT}/config/qgroundcontrol.png")
# set(CPACK_IFW_PACKAGE_BANNER "")
# set(CPACK_IFW_PACKAGE_BACKGROUND "")
set(CPACK_IFW_PACKAGE_WIZARD_STYLE "Modern")
# set(CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH "")
# set(CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT "")
# set(CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST OFF)
# set(CPACK_IFW_PACKAGE_TITLE_COLOR "#007A5C")
# set(CPACK_IFW_PACKAGE_STYLE_SHEET "${INSTALLER_ROOT}/config/dev/style.qss")
if(${CMAKE_SYSTEM_NAME} MATCHES Linux)
set(CPACK_IFW_TARGET_DIRECTORY "@HomeDir@/${CMAKE_PROJECT_NAME}")
set(CPACK_IFW_ADMIN_TARGET_DIRECTORY "@HomeDir@/${CMAKE_PROJECT_NAME}")
elseif(${CMAKE_SYSTEM_NAME} MATCHES Windows)
set(CPACK_IFW_TARGET_DIRECTORY "@HomeDir@\\${CMAKE_PROJECT_NAME}")
set(CPACK_IFW_ADMIN_TARGET_DIRECTORY "@HomeDir@\\${CMAKE_PROJECT_NAME}")
elseif(${CMAKE_SYSTEM_NAME} MATCHES Darwin)
set(CPACK_IFW_TARGET_DIRECTORY "@ApplicationsDir@/${CMAKE_PROJECT_NAME}")
set(CPACK_IFW_ADMIN_TARGET_DIRECTORY "@ApplicationsDir@/${CMAKE_PROJECT_NAME}")
endif()
# set(CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR "")
# set(CPACK_IFW_PACKAGE_GROUP "")
# set(CPACK_IFW_PACKAGE_NAME "${CMAKE_PROJECT_NAME}")
# set(CPACK_IFW_PACKAGE_START_MENU_DIRECTORY "")
# set(CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME "${CMAKE_PROJECT_NAME}-install-tool")
# set(CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE "${CMAKE_PROJECT_NAME}-install-tool.ini")
# set(CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS OFF)
# set(CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH OFF)
# set(CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE "")
# set(CPACK_IFW_PACKAGE_CONTROL_SCRIPT "")
# set(CPACK_IFW_PACKAGE_RESOURCES "")
# set(CPACK_IFW_PACKAGE_FILE_EXTENSION "")
# set(CPACK_IFW_REPOSITORIES_ALL "")
# set(CPACK_IFW_DOWNLOAD_ALL "")
# set(CPACK_IFW_PACKAGE_PRODUCT_IMAGES "")
# set(CPACK_IFW_PACKAGE_RUN_PROGRAM "@TargetDir@/${CMAKE_PROJECT_NAME}")
# set(CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS "")
# set(CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION "Start ${CMAKE_PROJECT_NAME}")
# set(CPACK_IFW_PACKAGE_SIGNING_IDENTITY "")
# set(CPACK_IFW_ARCHIVE_FORMAT "")
# set(CPACK_IFW_ARCHIVE_COMPRESSION "")
# Components
# CPACK_IFW_RESOLVE_DUPLICATE_NAMES
# CPACK_IFW_PACKAGES_DIRECTORIES
# CPACK_IFW_REPOSITORIES_DIRECTORIES
# QtIFW Tools
# CPACK_IFW_FRAMEWORK_VERSION
# CPACK_IFW_ARCHIVEGEN_EXECUTABLE
# CPACK_IFW_BINARYCREATOR_EXECUTABLE
# CPACK_IFW_REPOGEN_EXECUTABLE
# CPACK_IFW_INSTALLERBASE_EXECUTABLE
# CPACK_IFW_DEVTOOL_EXECUTABLE
cpack_ifw_configure_component(${CMAKE_PROJECT_NAME}
ESSENTIAL FORCED_INSTALLATION
NAME ${CMAKE_PROJECT_NAME}
VERSION ${CMAKE_PROJECT_VERSION}
DESCRIPTION "Welcome to the ${CMAKE_PROJECT_NAME} installer."
LICENSES "GPL LICENSE" ${CPACK_RESOURCE_FILE_LICENSE}
SCRIPT "${CMAKE_SOURCE_DIR}/deploy/installer/packages/org.mavlink.qgroundcontrol/meta/installerscript.js"
)
# cpack_ifw_configure_component_group
# cpack_ifw_add_repository
# cpack_ifw_update_repository
# cpack_ifw_add_package_resources
include(CPackIFWConfigureFile)
# cpack_ifw_configure_file(<input> <output>)
include(CPack)
+45
View File
@@ -0,0 +1,45 @@
include(CreateCPackCommon)
set(CPACK_GENERATOR "NSIS")
set(QGC_INSTALLER_SOURCE "${CMAKE_SOURCE_DIR}/deploy/windows")
set(CPACK_NSIS_INSTALL_ROOT "C:\\\\Program Files")
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_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
set(CPACK_NSIS_MODIFY_PATH ON)
set(CPACK_NSIS_DISPLAY_NAME "${CMAKE_PROJECT_NAME}")
set(CPACK_NSIS_PACKAGE_NAME "${CMAKE_PROJECT_NAME} x64 ${CMAKE_PROJECT_VERSION}")
# set(CPACK_NSIS_INSTALLED_ICON_NAME "")
set(CPACK_NSIS_HELP_LINK "http://qgroundcontrol.com/#resources")
set(CPACK_NSIS_URL_INFO_ABOUT ${CPACK_PACKAGE_HOMEPAGE_URL})
# set(CPACK_NSIS_CONTACT "")
# set(CPACK_NSIS_<compName>_INSTALL_DIRECTORY "")
# set(CPACK_NSIS_CREATE_ICONS_EXTRA "")
# set(CPACK_NSIS_DELETE_ICONS_EXTRA "")
# set(CPACK_NSIS_EXECUTABLES_DIRECTORY "")
# set(CPACK_NSIS_MUI_FINISHPAGE_RUN "")
# set(CPACK_NSIS_MENU_LINKS "")
# set(CPACK_NSIS_UNINSTALL_NAME "")
# set(CPACK_NSIS_WELCOME_TITLE "")
# set(CPACK_NSIS_WELCOME_TITLE_3LINES "")
# set(CPACK_NSIS_FINISH_TITLE "")
# set(CPACK_NSIS_FINISH_TITLE_3LINES "")
set(CPACK_NSIS_MUI_HEADERIMAGE "${QGC_INSTALLER_SOURCE}/installheader.bmp")
# set(CPACK_NSIS_MANIFEST_DPI_AWARE "")
# set(CPACK_NSIS_BRANDING_TEXT "")
# set(CPACK_NSIS_BRANDING_TEXT_TRIM_POSITION "")
# set(CPACK_NSIS_EXECUTABLE "")
set(CPACK_NSIS_IGNORE_LICENSE_PAGE OFF)
# set(CPACK_NSIS_EXECUTABLE_PRE_ARGUMENTS "")
# set(CPACK_NSIS_EXECUTABLE_POST_ARGUMENTS "")
include(CPack)
+72
View File
@@ -0,0 +1,72 @@
include(CreateCPackCommon)
set(CPACK_GENERATOR "RPM")
set(QGC_INSTALLER_SOURCE "${CMAKE_SOURCE_DIR}/deploy/linux")
set(CPACK_RPM_COMPONENT_INSTALL ON)
# CPACK_RPM_PACKAGE_SUMMARY
# CPACK_RPM_PACKAGE_NAME
# set(CPACK_RPM_FILE_NAME RPM-DEFAULT)
# CPACK_RPM_MAIN_COMPONENT
# CPACK_RPM_PACKAGE_EPOCH
# CPACK_RPM_PACKAGE_VERSION
set(CPACK_RPM_PACKAGE_ARCHITECTURE "amd64")
# CPACK_RPM_PACKAGE_RELEASE
# CPACK_RPM_PACKAGE_RELEASE_DIST
# CPACK_RPM_PACKAGE_LICENSE
# CPACK_RPM_PACKAGE_GROUP
# CPACK_RPM_PACKAGE_VENDOR
# CPACK_RPM_PACKAGE_URL
set(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION})
set(CPACK_RPM_COMPRESSION_TYPE xz)
# CPACK_RPM_PACKAGE_AUTOREQ
# CPACK_RPM_PACKAGE_AUTOPROV
# CPACK_RPM_PACKAGE_AUTOREQPROV
# CPACK_RPM_PACKAGE_REQUIRES
# CPACK_RPM_PACKAGE_CONFLICTS
# CPACK_RPM_PACKAGE_REQUIRES_PRE
# CPACK_RPM_PACKAGE_REQUIRES_POST
# CPACK_RPM_PACKAGE_REQUIRES_POSTUN
# CPACK_RPM_PACKAGE_REQUIRES_PREUN
# CPACK_RPM_PACKAGE_SUGGESTS
# CPACK_RPM_PACKAGE_PROVIDES
# CPACK_RPM_PACKAGE_OBSOLETES
# CPACK_RPM_PACKAGE_RELOCATABLE
# CPACK_RPM_SPEC_INSTALL_POST
# CPACK_RPM_SPEC_MORE_DEFINE
# CPACK_RPM_PACKAGE_DEBUG
# CPACK_RPM_USER_BINARY_SPECFILE
# CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE
# CPACK_RPM_PRE_INSTALL_SCRIPT_FILE
# CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE
# CPACK_RPM_PRE_TRANS_SCRIPT_FILE
# CPACK_RPM_POST_INSTALL_SCRIPT_FILE
# CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE
# CPACK_RPM_POST_TRANS_SCRIPT_FILE
# CPACK_RPM_USER_FILELIST
# CPACK_RPM_CHANGELOG_FILE
# CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST
# CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
# CPACK_RPM_RELOCATION_PATHS
# CPACK_RPM_NO_INSTALL_PREFIX_RELOCATION
# CPACK_RPM_ADDITIONAL_MAN_DIRS
# CPACK_RPM_DEFAULT_USER
# CPACK_RPM_DEFAULT_GROUP
# CPACK_RPM_DEFAULT_FILE_PERMISSIONS
# CPACK_RPM_DEFAULT_DIR_PERMISSIONS
# CPACK_RPM_INSTALL_WITH_EXEC
# CPACK_RPM_DEBUGINFO_PACKAGE
# CPACK_BUILD_SOURCE_DIRS
# CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX
# CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS
# CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION
# CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE
# CPACK_RPM_DEBUGINFO_FILE_NAME
# CPACK_RPM_PACKAGE_SOURCES
# CPACK_RPM_SOURCE_PKG_BUILD_PARAMS
# CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX
# CPACK_RPM_BUILDREQUIRES
# CPACK_RPM_REQUIRES_EXCLUDE_FROM
include(CPack)
+2
View File
@@ -1,3 +1,5 @@
# include(BundleUtilities)
message(STATUS "Copy GStreamer framework into bundle")
file(COPY /Library/Frameworks/GStreamer.framework DESTINATION staging/QGroundControl.app/Contents/Frameworks)
file(REMOVE_RECURSE staging/QGroundControl.app/Contents/Frameworks/GStreamer.framework/Versions/1.0/bin)
+66 -6
View File
@@ -1,9 +1,69 @@
message(STATUS "Creating Windows Installer")
message(STATUS "Creating QGC Installer")
include(CMakePrintHelpers)
set(INSTALLER_ROOT ${CMAKE_SOURCE_DIR}/deploy/installer)
file(GLOB_RECURSE FILES_TO_INSTALL RELATIVE ${CMAKE_INSTALL_PREFIX} ${CMAKE_INSTALL_PREFIX}/**)
file(COPY ${FILES_TO_INSTALL} DESTINATION ${INSTALLER_ROOT}/packages/org.mavlink.qgroundcontrol/data/)
cmake_print_variables(INSTALLER_ROOT FILES_TO_INSTALL)
execute_process(COMMAND ${QT_ROOT_DIR}/../../Tools/QtInstallerFramework/*/bin/binarycreator --offline-only -c ${INSTALLER_ROOT}/config/config.xml -p ${INSTALLER_ROOT}/packages ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-Installer.exe)
set(QT_INSTALLER_FRAMEWORK_DIR ${QT_ROOT_DIR}/../../Tools/QtInstallerFramework)
find_program(QT_INSTALLER_FRAMEWORK binarycreator
PATHS "${QT_INSTALLER_FRAMEWORK_ROOT}/*/bin"
)
set(INSTALLER_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deploy/installer)
set(INSTALLER_SOURCE_CONFIG_DIR ${INSTALLER_SOURCE_DIR}/config)
set(INSTALLER_SOURCE_PACKAGES_DIR ${INSTALLER_SOURCE_DIR}/packages)
set(INSTALLER_SOURCE_PACKAGES_QGC_DIR ${INSTALLER_SOURCE_PACKAGES_DIR}/org.mavlink.qgroundcontrol)
set(INSTALLER_SOURCE_PACKAGES_QGC_DATA_DIR ${INSTALLER_SOURCE_PACKAGES_QGC_DIR}/data)
set(INSTALLER_SOURCE_PACKAGES_QGC_META_DIR ${INSTALLER_SOURCE_PACKAGES_QGC_DIR}/meta)
set(INSTALLER_OUTPUT_DIR ${CMAKE_BINARY_DIR}/installer)
set(INSTALLER_OUTPUT_CONFIG_DIR ${INSTALLER_OUTPUT_DIR}/config)
set(INSTALLER_OUTPUT_PACKAGES_DIR ${INSTALLER_OUTPUT_DIR}/packages)
set(INSTALLER_OUTPUT_PACKAGES_QGC_DIR ${INSTALLER_OUTPUT_PACKAGES_DIR}/org.mavlink.qgroundcontrol)
set(INSTALLER_OUTPUT_PACKAGES_QGC_DATA_DIR ${INSTALLER_OUTPUT_PACKAGES_QGC_DIR}/data)
set(INSTALLER_OUTPUT_PACKAGES_QGC_META_DIR ${INSTALLER_OUTPUT_PACKAGES_QGC_DIR}/meta)
file(MAKE_DIRECTORY ${INSTALLER_OUTPUT_DIR})
file(MAKE_DIRECTORY ${INSTALLER_OUTPUT_CONFIG_DIR})
file(MAKE_DIRECTORY ${INSTALLER_OUTPUT_PACKAGES_DIR})
file(MAKE_DIRECTORY ${INSTALLER_OUTPUT_PACKAGES_QGC_DIR})
file(MAKE_DIRECTORY ${INSTALLER_OUTPUT_PACKAGES_QGC_DATA_DIR})
file(MAKE_DIRECTORY ${INSTALLER_OUTPUT_PACKAGES_QGC_META_DIR})
configure_file(
${INSTALLER_SOURCE_CONFIG_DIR}/config.xml.in
${INSTALLER_OUTPUT_CONFIG_DIR}/config.xml
@ONLY
)
configure_file(
${INSTALLER_SOURCE_PACKAGES_QGC_META_DIR}/package.xml.in
${INSTALLER_OUTPUT_PACKAGES_QGC_META_DIR}/package.xml
@ONLY
)
# file(COPY ${QGC_INSTALLER_ROOT} DESTINATION ${QGC_INSTALLER_OUTPUT_DIR})
# file(COPY ${QGC_APP_ICON} DESTINATION ${QGC_INSTALLER_ROOT}/config/)
# file(COPY ${CMAKE_SOURCE_DIR}/README.md DESTINATION ${QGC_INSTALLER_ROOT}/README.md)
# file(COPY ${CMAKE_SOURCE_DIR}/.github/COPYING.md DESTINATION ${QGC_PACKAGE_ROOT}/meta/license.txt)
# file(GLOB_RECURSE FILES_TO_INSTALL RELATIVE ${CMAKE_INSTALL_PREFIX} ${CMAKE_INSTALL_PREFIX}/**)
# file(COPY ${FILES_TO_INSTALL} DESTINATION ${QGC_PACKAGE_ROOT}/data/)
# cmake_print_variables(QGC_INSTALLER_ROOT FILES_TO_INSTALL)
if(WIN32)
file(DOWNLOAD https://firmware.ardupilot.org/Tools/MissionPlanner/driver.msi
${INSTALLER_SOURCE_PACKAGES_QGC_DATA_DIR}/driver.msi
SHOW_PROGRESS
STATUS DRIVER_DOWNLOAD_STATUS
TIMEOUT 60
)
# file(COPY ${CMAKE_SOURCE_DIR}/deploy/windows/driver.msi DESTINATION ${INSTALLER_SOURCE_PACKAGES_QGC_DATA_DIR}/driver.msi)
set(QGC_INSTALLER_NAME ${CMAKE_PROJECT_NAME}-Installer.exe)
# endif()
execute_process(
COMMAND ${QT_INSTALLER_FRAMEWORK} --offline-only -c ${INSTALLER_OUTPUT_CONFIG_DIR}/config.xml -p ${INSTALLER_OUTPUT_PACKAGES_DIR} ${CMAKE_BINARY_DIR}/${QGC_INSTALLER_NAME}
)
+1 -1
View File
@@ -7,7 +7,7 @@ set(QGC_ORG_DOMAIN "org.qgroundcontrol" CACHE STRING "Domain")
# MacOS
set(QGC_BUNDLE_ID "org.qgroundcontrol.QGroundControl" CACHE STRING "MacOS Bundle ID")
set(QGC_MACOS_ICON_PATH "${CMAKE_SOURCE_DIR}/resources/icons" CACHE PATH "MacOS Icon Path")
set(QGC_MACOS_ICON_PATH "${CMAKE_SOURCE_DIR}/deploy/mac" CACHE PATH "MacOS Icon Path")
# APM
option(QGC_DISABLE_APM_MAVLINK "Disable APM Dialect" OFF)
-21
View File
@@ -1,21 +0,0 @@
# QGroundControl Ground Control Station
[![Releases](https://img.shields.io/github/release/mavlink/QGroundControl.svg)](https://github.com/mavlink/QGroundControl/releases)
*QGroundControl* (QGC) is an intuitive and powerful ground control station (GCS) for UAVs.
The primary goal of QGC is ease of use for both first time and professional users.
It provides full flight control and mission planning for any MAVLink enabled drone, and vehicle setup for both PX4 and ArduPilot powered UAVs. Instructions for *using QGroundControl* are provided in the [User Manual](https://docs.qgroundcontrol.com/en/) (you may not need them because the UI is very intuitive!)
All the code is open-source, so you can contribute and evolve it as you want.
The [Developer Guide](https://dev.qgroundcontrol.com/en/) explains how to [build](https://dev.qgroundcontrol.com/en/getting_started/) and extend QGC.
[New features in this release](https://github.com/mavlink/qgroundcontrol/blob/master/ChangeLog.md)
Key Links:
* [Website](http://qgroundcontrol.com) (qgroundcontrol.com)
* [User Manual](https://docs.qgroundcontrol.com/en/)
* [Developer Guide](https://dev.qgroundcontrol.com/en/)
* [Discussion/Support](https://docs.qgroundcontrol.com/en/support/support.html)
* [Contributing](https://dev.qgroundcontrol.com/en/contribute/)
* [License](https://github.com/mavlink/qgroundcontrol/blob/master/COPYING.md)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

-17
View File
@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
<Name>QGroundControl</Name>
<Version>5.0</Version>
<Title>QGroundControl Installer</Title>
<Publisher>Dronecode</Publisher>
<ProductUrl>http://qgroundcontrol.com/</ProductUrl>
<InstallerApplicationIcon>WindowsQGC</InstallerApplicationIcon>
<InstallerWindowIcon>qgroundcontrol</InstallerWindowIcon>
<Banner>installheader</Banner>
<WizardStyle>Classic</WizardStyle>
<StartMenuDir>QGC</StartMenuDir>
<TargetDir>@HomeDir@/QGC</TargetDir>
<AdminTargetDir>@RootDir@/QGC</AdminTargetDir>
<MaintenanceToolName>QGC Updater Tool</MaintenanceToolName>
<ControlScript>controller.qs</ControlScript>
</Installer>
+19
View File
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
<Name>@CMAKE_PROJECT_NAME@</Name>
<Version>@CMAKE_PROJECT_VERSION@</Version>
<ReleaseDate>@QGC_APP_DATE@</ReleaseDate>
<Title>@QGC_INSTALLER_NAME@</Title>
<Publisher>@QGC_ORG_NAME@</Publisher>
<ProductUrl>@CMAKE_PROJECT_HOMEPAGE_URL@</ProductUrl>
<InstallerApplicationIcon>appicon</InstallerApplicationIcon>
<InstallerWindowIcon>windowicon</InstallerWindowIcon>
<Banner>installheader</Banner>
<WizardStyle>Modern</WizardStyle>
<StartMenuDir>@CMAKE_PROJECT_NAME@</StartMenuDir>
<TargetDir>@HomeDir@/@CMAKE_PROJECT_NAME@</TargetDir>
<AdminTargetDir>@RootDir@/@CMAKE_PROJECT_NAME@</AdminTargetDir>
<MaintenanceToolName>@CMAKE_PROJECT_NAME@MaintenanceTool</MaintenanceToolName>
<ControlScript>controller.qs</ControlScript>
<StyleSheet>style.qss</StyleSheet>
</Installer>
+3 -9
View File
@@ -1,10 +1,4 @@
function Controller() {
installer.unstableComponentFound.connect(unstableComponentFound)
}
unstableComponentFound = function(type, message, comp)
function Controller()
{
console.log("Unstable component, type: " + type)
console.log("Unstable component, message: " + message)
console.log("Unstable component, name: " + comp)
}
}
-25
View File
@@ -1,25 +0,0 @@
QWidget
{
color: white;
background-color: rgb(65, 65, 65);
}
QPushButton
{
background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgba(150, 150, 150, 60%), stop:1 rgba(50, 50, 50, 60%));
border-color: rgb(60, 60, 60);
border-style: solid;
border-width: 2px;
border-radius: 9px;
min-height: 20px;
max-height: 20px;
min-width: 60px;
max-width: 60px;
padding-left: 15px;
padding-right: 15px;
}
QPushButton:pressed, QPushButton:checked
{
background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgba(50, 50, 50, 60%), stop:1 rgba(150, 150, 150, 60%));
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

@@ -1,129 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Layer_1"
x="0px"
y="0px"
viewBox="0 0 72 72"
style="enable-background:new 0 0 72 72;"
xml:space="preserve"
sodipodi:docname="QGCLogoArrow.svg"
inkscape:version="0.92.2 2405546, 2018-03-11"><metadata
id="metadata23"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs21" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1016"
id="namedview19"
showgrid="false"
inkscape:zoom="9.2709556"
inkscape:cx="27.235609"
inkscape:cy="41.171517"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="g16" />
<style
type="text/css"
id="style2">
.st0{fill:#C72B27;}
.st1{fill:#7F0036;}
.st2{fill:#EE3424;}
</style>
<g
id="g16">
<g
id="g8">
<polygon
class="st0"
points="35.5,2.118 35.5,53.691 1.118,70.882 "
id="polygon4"
style="fill:#4b2c6d;fill-opacity:1" />
<path
class="st1"
d="M35,4.236v49.146L2.236,69.764L35,4.236 M36,0L0,72l36-18V0L36,0z"
id="path6"
style="fill:#4e005b;fill-opacity:1" />
</g><g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1" />
<g
id="g14">
<polygon
class="st2"
points="36.5,53.691 36.5,2.118 70.882,70.882 "
id="polygon10"
style="fill:#4b2c6d;fill-opacity:1" />
<path
class="st1"
d="M37,4.236l32.764,65.528L37,53.382V4.236 M36,0v54l36,18L36,0L36,0z"
id="path12"
style="fill:#4e005b;fill-opacity:1" />
</g>
<rect
x="22.746561"
y="24.02066"
class="st0"
width="28.493719"
height="27.410166"
id="rect4"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.55064428"
ry="13.705083"
rx="12.432203" /><path
inkscape:connector-curvature="0"
class="st1"
d="M 40.481217,11.731933 36.001273,1.7752157 30.56639,14.31297 c -2.380355,5.491254 -3.980916,6.040006 -6.02939,11.992023 l -6.68916,19.435928 c -1.938321,5.631958 6.119569,7.70955 12.262119,7.69678 l 14.249711,-0.02962 c 6.142548,-0.01277 15.907094,-3.46401 13.095514,-8.720704 L 50.751722,32.154194 C 47.930248,26.967975 41.501216,17.642415 40.481217,11.731937 Z m 4.195168,36.993208 -2.047336,-1.982796 c -1.530884,0.889792 -3.329787,1.389962 -5.243395,1.389962 v 0 c -5.32005,0 -9.721346,-3.910319 -10.256821,-8.932608 h 4.458929 c 0.536033,2.83574 3.234107,4.929625 6.391559,4.633207 0.459377,-0.03685 0.918755,-0.148479 1.339525,-0.296416 l -2.085944,-2.020186 3.138427,-3.039493 2.277304,2.18709 c 0.306066,-0.611799 0.516451,-1.278874 0.593106,-1.982796 0.306065,-3.057916 -1.875558,-5.670937 -4.803041,-6.171649 v -4.318367 c 5.185763,0.519137 9.242945,4.762721 9.242945,9.933489 v 0 c 0,2.094428 -0.669761,4.058799 -1.817926,5.652513 l 1.951656,1.890133 z"
id="path6-4"
style="fill:#4b2c6d;fill-opacity:1;stroke-width:0.55064428"
sodipodi:nodetypes="ccsssssscscccccccccccccccccccc" /><path
inkscape:connector-curvature="0"
class="st2"
d="m 36.256515,25.317959 h -0.07666 C 29.788296,25.85552 24.698214,30.803568 24.124133,36.993643 v 0.07424 0.05582 c 0,0.407506 0.344672,0.722889 0.746418,0.722889 0.401745,0 0.727393,-0.314842 0.746418,-0.685499 v 0 c 0.478402,-5.50404 5.013426,-9.896646 10.678151,-10.378391 v 0 c 0.38272,-0.01842 0.688787,-0.314841 0.70781,-0.685497 v -0.03685 c 0.01903,-0.427014 -0.32509,-0.742397 -0.746418,-0.742397 z"
id="path8"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.55064428"
sodipodi:nodetypes="ccccsscccccccc" /><path
inkscape:connector-curvature="0"
class="st2"
d="m 36.256515,28.190548 h -0.07666 -0.01902 c -4.803042,0.53756 -8.611232,4.318367 -9.070609,8.821518 v 0.09266 c 0,0.407506 0.344672,0.722889 0.746419,0.722889 0.401744,0 0.727394,-0.314842 0.746418,-0.685499 v -0.01842 c 0.478401,-3.928744 3.673902,-7.042477 7.71206,-7.505797 v 0 c 0.382721,-0.01843 0.688787,-0.314842 0.70781,-0.685499 v -0.03685 c 0.01903,-0.389623 -0.325089,-0.705006 -0.746418,-0.705006 z"
id="path10"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.55064428"
sodipodi:nodetypes="ccccsscccccccc" /><path
inkscape:connector-curvature="0"
class="st2"
d="m 36.256515,31.081561 c -0.03805,0 -0.09567,0 -0.133728,0.01842 -3.080796,0.500171 -5.511412,2.872589 -6.027863,5.856266 v 0.01842 c 0,0.03685 -0.01902,0.11109 -0.01902,0.129512 0,0.407506 0.325089,0.72289 0.746419,0.72289 h 0.09567 c 0.344672,-0.03685 0.631714,-0.314841 0.650738,-0.64865 v -0.07424 c 0.440354,-2.316603 2.334376,-4.151461 4.745969,-4.577392 h 0.03805 c 0.363697,-0.03685 0.650739,-0.333808 0.650739,-0.685498 v -0.03685 c 0.01846,-0.38908 -0.325649,-0.722888 -0.746979,-0.722888 z"
id="path12-3"
style="fill:#ffffff;fill-opacity:0.94117647;stroke-width:0.55064428"
sodipodi:nodetypes="cccssscccccsccc" /><path
style="stroke-width:0.07627118"
d=""
id="path3787"
inkscape:connector-curvature="0" /><path
style="fill:#f9f9f9;stroke-width:0.07627118"
d="M 53.932087,62.909526 36.065561,53.97513 v -0.286093 -0.286093 h 0.495125 0.495125 l 16.322672,8.160876 c 8.977469,4.488482 16.322671,8.143734 16.322671,8.122782 0,-0.02095 -2.623661,-5.285326 -5.830358,-11.698612 C 60.074913,50.396352 57.997025,46.159936 57.916026,45.847349 57.764496,45.262578 57.646791,45.027524 56.487074,42.993798 55.068374,40.505904 50.43602,30.787387 49.888293,29.776328 48.941925,28.02941 48.367416,26.879769 47.005323,24.076673 46.196292,22.411741 45.26452,20.776789 42.03838,14.313961 39.818704,9.8673513 37.56677,5.2574683 37.034083,4.0697769 l -0.968522,-2.1594389 0.0042,-0.8151374 0.0042,-0.81513738 17.885612,35.76058178 c 9.837086,19.66832 17.875118,35.770188 17.862295,35.781929 -0.01282,0.01174 -8.063253,-3.99913 -17.889841,-8.913048 z"
id="path3789"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccssscssssscccsccc" /><path
style="fill:#f9f9f9;stroke-width:0.07627118"
d="M 0.14606269,71.803368 C 0.14838922,71.771906 8.2121638,55.63197 18.065561,35.936843 L 35.98083,0.12752085 l 0.0042,0.82931483 0.0042,0.82931482 -0.696473,1.6113631 C 34.873857,4.3668219 28.155843,17.890262 18.432636,37.337254 9.5425965,55.117862 2.2841976,69.680902 2.3028613,69.699566 2.3215249,69.71823 9.6854814,66.059125 18.667209,61.568222 l 16.330414,-8.165278 h 0.495833 0.495834 v 0.286093 0.286093 l -17.885637,8.94272 c -9.8370994,4.918497 -17.90277724,8.942721 -17.92372803,8.942721 -0.0209508,0 -0.0361888,-0.02574 -0.0338623,-0.0572 z"
id="path3791"
inkscape:connector-curvature="0" /></g>
</svg>

Before

Width:  |  Height:  |  Size: 7.1 KiB

@@ -1,30 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 215 215" style="enable-background:new 0 0 215 215;" xml:space="preserve">
<style type="text/css">
.st0{fill:#231F20;}
.st1{fill:#5ECBF1;}
.st2{fill:none;stroke:#231F20;stroke-width:8;stroke-miterlimit:10;}
</style>
<path class="st0" d="M164.063,148.971l-10.179-10.179c5.993-8.679,9.511-19.197,9.511-30.54h-0.044
c0-27.905-21.19-50.857-48.345-53.617v23.318c15.334,2.768,26.72,16.891,25.137,33.349c-0.364,3.787-1.443,7.384-3.088,10.66
l-11.846-11.846l-16.406,16.406l10.812,10.812c-2.239,0.785-4.59,1.32-7.02,1.557c-16.415,1.601-30.514-9.699-33.36-24.959H55.903
c2.84,27.071,25.752,48.171,53.597,48.171v0.044c10.015,0,19.385-2.745,27.417-7.511l10.74,10.74L164.063,148.971z"/>
<path class="st1" d="M103.747,39.064c-0.129,0-0.377,0.018-0.385,0.019c-33.409,2.944-60.044,29.582-62.971,63.031
c-0.002,0.023-0.021,0.329-0.022,0.358c-0.001,0.021-0.009,0.19-0.009,0.264c0,2.159,1.75,3.909,3.909,3.909
c2.097,0,3.808-1.651,3.904-3.723c0,0-0.002-0.001-0.002-0.001c2.546-29.719,26.159-53.412,55.822-56.045l0,0
c1.981-0.125,3.565-1.728,3.658-3.717c0.003-0.062,0.004-0.123,0.004-0.186C107.656,40.814,105.906,39.064,103.747,39.064z"/>
<path class="st1" d="M103.752,54.604c-0.14,0-0.278,0.01-0.414,0.024c-0.002,0-0.056,0.005-0.061,0.006
c-25.063,2.893-45.007,23.272-47.393,47.639c0,0-0.03,0.32-0.03,0.486c0,2.159,1.75,3.909,3.909,3.909
c2.097,0,3.808-1.651,3.904-3.723c0.001-0.021,0.001-0.042,0.001-0.063c2.451-21.156,19.198-37.949,40.325-40.463l0-0.019
c1.982-0.124,3.569-1.709,3.662-3.7c0.003-0.061,0.004-0.123,0.004-0.185C107.66,56.354,105.91,54.604,103.752,54.604z"/>
<path class="st1" d="M103.747,70.208c-0.247,0-0.494,0.024-0.729,0.068C86.917,73.008,74.167,85.81,71.513,101.94
c-0.009,0.043-0.015,0.086-0.023,0.129c-0.042,0.236-0.071,0.562-0.071,0.704c0,2.159,1.75,3.909,3.909,3.909
c0.155,0,0.308-0.009,0.458-0.027c1.826-0.213,3.268-1.686,3.434-3.526c0.005-0.057,0.031-0.316,0.038-0.357
c2.255-12.578,12.164-22.477,24.735-24.752c0,0,0.142-0.013,0.212-0.022c1.882-0.22,3.356-1.777,3.446-3.697
c0.003-0.062,0.004-0.123,0.004-0.186C107.656,71.958,105.906,70.208,103.747,70.208z"/>
<g>
<path class="st2" d="M211.5,151.5c0,33-27,60-60,60h-88c-33,0-60-27-60-60v-88c0-33,27-60,60-60h88c33,0,60,27,60,60V151.5z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

@@ -1,27 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="72px" height="72px" viewBox="0 0 72 72" style="enable-background:new 0 0 72 72;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#4B2C6D;stroke:#FFFFFF;stroke-width:3;stroke-miterlimit:10;}
.st2{fill:#5ECBF1;}
</style>
<rect x="10.555" y="10.213" class="st0" width="50.924" height="50.582"/>
<path class="st1" d="M50.296,1.8H21.704C10.726,1.8,1.8,10.726,1.8,21.704v28.591C1.8,61.274,10.726,70.2,21.704,70.2h28.591
c10.978,0,19.904-8.926,19.904-19.904V21.704C70.2,10.726,61.274,1.8,50.296,1.8z M49.748,55.802l-3.659-3.659
c-2.736,1.642-5.951,2.565-9.371,2.565l0,0c-9.508,0-17.374-7.216-18.331-16.484h7.969c0.958,5.233,5.78,9.097,11.423,8.55
c0.821-0.068,1.642-0.274,2.394-0.547l-3.728-3.728l5.609-5.609l4.07,4.036c0.547-1.129,0.923-2.36,1.06-3.659
c0.547-5.643-3.352-10.465-8.584-11.389v-7.969c9.268,0.958,16.519,8.789,16.519,18.331l0,0c0,3.865-1.197,7.49-3.249,10.431
l3.488,3.488L49.748,55.802z"/>
<path class="st2" d="M34.7,12.607c-0.034,0-0.137,0-0.137,0c-11.423,0.992-20.52,10.123-21.546,21.546c0,0,0,0.103,0,0.137
c0,0,0,0.068,0,0.103c0,0.752,0.616,1.334,1.334,1.334c0.718,0,1.3-0.581,1.334-1.265l0,0c0.855-10.157,8.96-18.263,19.084-19.152
l0,0c0.684-0.034,1.231-0.581,1.265-1.265c0-0.034,0-0.034,0-0.068C36.068,13.189,35.453,12.607,34.7,12.607z"/>
<path class="st2" d="M34.7,17.908c-0.034,0-0.103,0-0.137,0h-0.034c-8.584,0.992-15.39,7.969-16.211,16.279c0,0,0,0.103,0,0.171
c0,0.752,0.616,1.334,1.334,1.334c0.718,0,1.3-0.581,1.334-1.265c0,0,0,0,0-0.034c0.855-7.25,6.566-12.996,13.783-13.851l0,0
c0.684-0.034,1.231-0.581,1.265-1.265c0-0.034,0-0.034,0-0.068C36.068,18.49,35.453,17.908,34.7,17.908z"/>
<path class="st2" d="M34.7,23.243c-0.068,0-0.171,0-0.239,0.034c-5.506,0.923-9.85,5.301-10.773,10.807v0.034
c0,0.068-0.034,0.205-0.034,0.239c0,0.752,0.581,1.334,1.334,1.334c0.068,0,0.103,0,0.171,0c0.616-0.068,1.129-0.581,1.163-1.197
c0-0.034,0-0.103,0-0.137c0.787-4.275,4.172-7.661,8.482-8.447c0,0,0.034,0,0.068,0c0.65-0.068,1.163-0.616,1.163-1.265
c0-0.034,0-0.034,0-0.068C36.068,23.859,35.453,23.243,34.7,23.243z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

@@ -1,30 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 215 215" style="enable-background:new 0 0 215 215;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#5ECBF1;}
.st2{fill:none;stroke:#FFFFFF;stroke-width:8;stroke-miterlimit:10;}
</style>
<path class="st0" d="M164.063,148.971l-10.179-10.179c5.993-8.679,9.511-19.197,9.511-30.54h-0.044
c0-27.905-21.19-50.857-48.345-53.617v23.318c15.334,2.768,26.72,16.891,25.137,33.349c-0.364,3.787-1.443,7.384-3.088,10.66
l-11.846-11.846l-16.406,16.406l10.812,10.812c-2.239,0.785-4.59,1.32-7.02,1.557c-16.415,1.601-30.514-9.699-33.36-24.959H55.903
c2.84,27.071,25.752,48.171,53.597,48.171v0.044c10.015,0,19.385-2.745,27.417-7.511l10.74,10.74L164.063,148.971z"/>
<path class="st1" d="M103.747,39.064c-0.129,0-0.377,0.018-0.385,0.019c-33.409,2.944-60.044,29.582-62.971,63.031
c-0.002,0.023-0.021,0.329-0.022,0.358c-0.001,0.021-0.009,0.19-0.009,0.264c0,2.159,1.75,3.909,3.909,3.909
c2.097,0,3.808-1.651,3.904-3.723c0,0-0.002-0.001-0.002-0.001c2.546-29.719,26.159-53.412,55.822-56.045l0,0
c1.981-0.125,3.565-1.728,3.658-3.717c0.003-0.062,0.004-0.123,0.004-0.186C107.656,40.814,105.906,39.064,103.747,39.064z"/>
<path class="st1" d="M103.752,54.604c-0.14,0-0.278,0.01-0.414,0.024c-0.002,0-0.056,0.005-0.061,0.006
c-25.063,2.893-45.007,23.272-47.393,47.639c0,0-0.03,0.32-0.03,0.486c0,2.159,1.75,3.909,3.909,3.909
c2.097,0,3.808-1.651,3.904-3.723c0.001-0.021,0.001-0.042,0.001-0.063c2.451-21.156,19.198-37.949,40.325-40.463l0-0.019
c1.982-0.124,3.569-1.709,3.662-3.7c0.003-0.061,0.004-0.123,0.004-0.185C107.66,56.354,105.91,54.604,103.752,54.604z"/>
<path class="st1" d="M103.747,70.208c-0.247,0-0.494,0.024-0.729,0.068C86.917,73.008,74.167,85.81,71.513,101.94
c-0.009,0.043-0.015,0.086-0.023,0.129c-0.042,0.236-0.071,0.562-0.071,0.704c0,2.159,1.75,3.909,3.909,3.909
c0.155,0,0.308-0.009,0.458-0.027c1.826-0.213,3.268-1.686,3.434-3.526c0.005-0.057,0.031-0.316,0.038-0.357
c2.255-12.578,12.164-22.477,24.735-24.752c0,0,0.142-0.013,0.212-0.022c1.882-0.22,3.356-1.777,3.446-3.697
c0.003-0.062,0.004-0.123,0.004-0.186C107.656,71.958,105.906,70.208,103.747,70.208z"/>
<g>
<path class="st2" d="M211.5,151.5c0,33-27,60-60,60h-88c-33,0-60-27-60-60v-88c0-33,27-60,60-60h88c33,0,60,27,60,60V151.5z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

@@ -1 +0,0 @@
The driver.msi file is pulled from https://firmware.ardupilot.org/Tools/MissionPlanner/driver.msi
@@ -1,166 +0,0 @@
function Component()
{
if (!installer.isCommandLineInstance())
gui.pageWidgetByObjectName("LicenseAgreementPage").entered.connect(changeLicenseLabels);
}
changeLicenseLabels = function()
{
page = gui.pageWidgetByObjectName("LicenseAgreementPage");
page.AcceptLicenseLabel.setText("Yes I do!");
}
function abortInstaller()
{
installer.setDefaultPageVisible(QInstaller.Introduction, false);
installer.setDefaultPageVisible(QInstaller.TargetDirectory, false);
installer.setDefaultPageVisible(QInstaller.ComponentSelection, false);
installer.setDefaultPageVisible(QInstaller.ReadyForInstallation, false);
installer.setDefaultPageVisible(QInstaller.StartMenuSelection, false);
installer.setDefaultPageVisible(QInstaller.PerformInstallation, false);
installer.setDefaultPageVisible(QInstaller.LicenseCheck, false);
var abortText = "<font color='red' size=3>" + qsTr("Installation failed:") + "</font>";
var error_list = installer.value("component_errors").split(";;;");
abortText += "<ul>";
// ignore the first empty one
for (var i = 0; i < error_list.length; ++i) {
if (error_list[i] !== "") {
console.log(error_list[i]);
abortText += "<li>" + error_list[i] + "</li>"
}
}
abortText += "</ul>";
installer.setValue("FinishedText", abortText);
}
function reactOnAbortInstallerChange()
{
if (installer.value("ComponentError") === "true")
abortInstaller();
}
function Component()
{
installer.finishAllComponentsReset.connect(reactOnAbortInstallerChange);
}
function Component()
{
var result = QMessageBox["question"]("test.quit", "Installer", "Do you want to quit the installer?<br>" +
"This message box was created using JavaScript.", QMessageBox.Ok | QMessageBox.Cancel);
if (result == QMessageBox.Ok) {
abortInstaller();
gui.clickButton(buttons.NextButton);
} else {
installer.setValue("FinishedText",
"<font color='green' size=3>The installer was not quit by JavaScript.</font>");
}
}
Component.prototype.createOperations = function()
{
component.createOperations();
if (systemInfo.productType === "windows") {
component.addOperation("CreateShortcut", "@TargetDir@/README.txt", "@StartMenuDir@/README.lnk",
"workingDirectory=@TargetDir@", "iconPath=%SystemRoot%/system32/SHELL32.dll",
"iconId=2", "description=Open README file");
}
}
function Component()
{
installer.setDefaultPageVisible(QInstaller.ComponentSelection, false);
}
function majorVersion(str)
{
return parseInt(str.split(".", 1));
}
function Component()
{
console.log("OS: " + systemInfo.productType);
console.log("Kernel: " + systemInfo.kernelType + "/" + systemInfo.kernelVersion);
var validOs = false;
if (systemInfo.kernelType === "winnt") {
if (majorVersion(systemInfo.kernelVersion) >= 6)
validOs = true;
} else if (systemInfo.kernelType === "darwin") {
if (majorVersion(systemInfo.kernelVersion) >= 11)
validOs = true;
} else {
if (systemInfo.productType !== "opensuse"
|| systemInfo.productVersion !== "13.2") {
QMessageBox["warning"]("os.warning", "Installer",
"Note that the binaries are only tested on OpenSUSE 13.2.",
QMessageBox.Ok);
}
validOs = true;
}
if (!validOs) {
cancelInstaller("Installation on " + systemInfo.prettyProductName + " is not supported");
return;
}
console.log("CPU Architecture: " + systemInfo.currentCpuArchitecture);
installer.componentByName("root.i386").setValue("Virtual", "true");
installer.componentByName("root.x86_64").setValue("Virtual", "true");
if ( systemInfo.currentCpuArchitecture === "i386") {
installer.componentByName("root.i386").setValue("Virtual", "false");
installer.componentByName("root.i386").setValue("Default", "true");
}
if ( systemInfo.currentCpuArchitecture === "x86_64") {
installer.componentByName("root.x86_64").setValue("Virtual", "false");
installer.componentByName("root.x86_64").setValue("Default", "true");
}
}
function Component()
{
// constructor
component.loaded.connect(this, Component.prototype.loaded);
if (!installer.addWizardPage(component, "Page", QInstaller.TargetDirectory))
console.log("Could not add the dynamic page.");
}
Component.prototype.isDefault = function()
{
// select the component by default
return true;
}
Component.prototype.createOperations = function()
{
try {
// call the base create operations function
component.createOperations();
} catch (e) {
console.log(e);
}
}
Component.prototype.loaded = function ()
{
var page = gui.pageByObjectName("DynamicPage");
if (page != null) {
console.log("Connecting the dynamic page entered signal.");
page.entered.connect(Component.prototype.dynamicPageEntered);
}
}
Component.prototype.dynamicPageEntered = function ()
{
var pageWidget = gui.pageWidgetByObjectName("DynamicPage");
if (pageWidget != null) {
console.log("Setting the widgets label text.")
pageWidget.m_pageLabel.text = "This is a dynamically created page.";
}
}
@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Page</class>
<widget class="QWidget" name="Page">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Dynamic page example</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="m_pageLabel">
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
@@ -1,15 +0,0 @@
# QGroundControl License
QGroundControl (QGC) is dual-licensed as Apache 2.0 and GPLv3. All contributions have to be made under both licenses (see [CONTRIBUTING](CONTRIBUTING.md)).
## Apache 2.0 License
The [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0) License is a permissive license which allows QGC to be built and used in any environment, including proprietary applications. It allows QGC to be built for mobile app stores. When building with Apache 2.0 a commercial Qt license is required.
## GPL v3 License
The [GPL v3 License](http://www.gnu.org/licenses/gpl-3.0.en.html) is a strong copyleft license. When building QGC under this license the open source version of Qt can be used. Our licensing grants the permission to use a later version of the license, however, contributions have to be made under 3.0.
## Contact
If you have questions regarding the licensing, please contact the maintainer Lorenz Meier, [lm@groundcontrol.org].
@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Package>
<DisplayName>Serial Drivers</DisplayName>
<Description>Install Serial Drivers.</Description>
<Version>1.0.0</Version>
<ReleaseDate>2024-02-28</ReleaseDate>
<Name>org.mavlink.drivers</Name>
<Licenses>
<License name="License Agreement" file="license.txt" />
</Licenses>
<Default>true</Default>
<UpdateText>Update!</UpdateText>
</Package>
@@ -1,166 +0,0 @@
function Component()
{
if (!installer.isCommandLineInstance())
gui.pageWidgetByObjectName("LicenseAgreementPage").entered.connect(changeLicenseLabels);
}
changeLicenseLabels = function()
{
page = gui.pageWidgetByObjectName("LicenseAgreementPage");
page.AcceptLicenseLabel.setText("Yes I do!");
}
function abortInstaller()
{
installer.setDefaultPageVisible(QInstaller.Introduction, false);
installer.setDefaultPageVisible(QInstaller.TargetDirectory, false);
installer.setDefaultPageVisible(QInstaller.ComponentSelection, false);
installer.setDefaultPageVisible(QInstaller.ReadyForInstallation, false);
installer.setDefaultPageVisible(QInstaller.StartMenuSelection, false);
installer.setDefaultPageVisible(QInstaller.PerformInstallation, false);
installer.setDefaultPageVisible(QInstaller.LicenseCheck, false);
var abortText = "<font color='red' size=3>" + qsTr("Installation failed:") + "</font>";
var error_list = installer.value("component_errors").split(";;;");
abortText += "<ul>";
// ignore the first empty one
for (var i = 0; i < error_list.length; ++i) {
if (error_list[i] !== "") {
console.log(error_list[i]);
abortText += "<li>" + error_list[i] + "</li>"
}
}
abortText += "</ul>";
installer.setValue("FinishedText", abortText);
}
function reactOnAbortInstallerChange()
{
if (installer.value("ComponentError") === "true")
abortInstaller();
}
function Component()
{
installer.finishAllComponentsReset.connect(reactOnAbortInstallerChange);
}
function Component()
{
var result = QMessageBox["question"]("test.quit", "Installer", "Do you want to quit the installer?<br>" +
"This message box was created using JavaScript.", QMessageBox.Ok | QMessageBox.Cancel);
if (result == QMessageBox.Ok) {
abortInstaller();
gui.clickButton(buttons.NextButton);
} else {
installer.setValue("FinishedText",
"<font color='green' size=3>The installer was not quit by JavaScript.</font>");
}
}
Component.prototype.createOperations = function()
{
component.createOperations();
if (systemInfo.productType === "windows") {
component.addOperation("CreateShortcut", "@TargetDir@/README.txt", "@StartMenuDir@/README.lnk",
"workingDirectory=@TargetDir@", "iconPath=%SystemRoot%/system32/SHELL32.dll",
"iconId=2", "description=Open README file");
}
}
function Component()
{
installer.setDefaultPageVisible(QInstaller.ComponentSelection, false);
}
function majorVersion(str)
{
return parseInt(str.split(".", 1));
}
function Component()
{
console.log("OS: " + systemInfo.productType);
console.log("Kernel: " + systemInfo.kernelType + "/" + systemInfo.kernelVersion);
var validOs = false;
if (systemInfo.kernelType === "winnt") {
if (majorVersion(systemInfo.kernelVersion) >= 6)
validOs = true;
} else if (systemInfo.kernelType === "darwin") {
if (majorVersion(systemInfo.kernelVersion) >= 11)
validOs = true;
} else {
if (systemInfo.productType !== "opensuse"
|| systemInfo.productVersion !== "13.2") {
QMessageBox["warning"]("os.warning", "Installer",
"Note that the binaries are only tested on OpenSUSE 13.2.",
QMessageBox.Ok);
}
validOs = true;
}
if (!validOs) {
cancelInstaller("Installation on " + systemInfo.prettyProductName + " is not supported");
return;
}
console.log("CPU Architecture: " + systemInfo.currentCpuArchitecture);
installer.componentByName("root.i386").setValue("Virtual", "true");
installer.componentByName("root.x86_64").setValue("Virtual", "true");
if ( systemInfo.currentCpuArchitecture === "i386") {
installer.componentByName("root.i386").setValue("Virtual", "false");
installer.componentByName("root.i386").setValue("Default", "true");
}
if ( systemInfo.currentCpuArchitecture === "x86_64") {
installer.componentByName("root.x86_64").setValue("Virtual", "false");
installer.componentByName("root.x86_64").setValue("Default", "true");
}
}
function Component()
{
// constructor
component.loaded.connect(this, Component.prototype.loaded);
if (!installer.addWizardPage(component, "Page", QInstaller.TargetDirectory))
console.log("Could not add the dynamic page.");
}
Component.prototype.isDefault = function()
{
// select the component by default
return true;
}
Component.prototype.createOperations = function()
{
try {
// call the base create operations function
component.createOperations();
} catch (e) {
console.log(e);
}
}
Component.prototype.loaded = function ()
{
var page = gui.pageByObjectName("DynamicPage");
if (page != null) {
console.log("Connecting the dynamic page entered signal.");
page.entered.connect(Component.prototype.dynamicPageEntered);
}
}
Component.prototype.dynamicPageEntered = function ()
{
var pageWidget = gui.pageWidgetByObjectName("DynamicPage");
if (pageWidget != null) {
console.log("Setting the widgets label text.")
pageWidget.m_pageLabel.text = "This is a dynamically created page.";
}
}
@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Page</class>
<widget class="QWidget" name="Page">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Dynamic page example</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="m_pageLabel">
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
@@ -0,0 +1,20 @@
function Component()
{
}
Component.prototype.createOperations = function()
{
try {
component.createOperations();
} catch (e) {
console.log(e);
}
if (systemInfo.productType === "windows") {
component.addElevatedOperation("Execute", "msiexec", ["/i", "@TargetDir@/driver.msi", "/qn"]);
component.addOperation("CreateShortcut", "@TargetDir@/bin/qgroundcontrol.exe", "@StartMenuDir@/QGroundControl.lnk");
component.addOperation("CreateShortcut", "@TargetDir@/bin/qgroundcontrol.exe", "@DesktopDir@/QGroundControl.lnk");
}
}
@@ -1,15 +0,0 @@
# QGroundControl License
QGroundControl (QGC) is dual-licensed as Apache 2.0 and GPLv3. All contributions have to be made under both licenses (see [CONTRIBUTING](CONTRIBUTING.md)).
## Apache 2.0 License
The [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0) License is a permissive license which allows QGC to be built and used in any environment, including proprietary applications. It allows QGC to be built for mobile app stores. When building with Apache 2.0 a commercial Qt license is required.
## GPL v3 License
The [GPL v3 License](http://www.gnu.org/licenses/gpl-3.0.en.html) is a strong copyleft license. When building QGC under this license the open source version of Qt can be used. Our licensing grants the permission to use a later version of the license, however, contributions have to be made under 3.0.
## Contact
If you have questions regarding the licensing, please contact the maintainer Lorenz Meier, [lm@groundcontrol.org].
@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Package>
<DisplayName>QGroundControl Application</DisplayName>
<Description>Install QGroundControl.</Description>
<Version>5.0</Version>
<ReleaseDate>2024-02-28</ReleaseDate>
<Name>org.mavlink.qgroundcontrol</Name>
<Licenses>
<License name="License Agreement" file="license.txt" />
</Licenses>
<Default>true</Default>
<UpdateText>Update!</UpdateText>
</Package>
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<Package>
<DisplayName>@CMAKE_PROJECT_NAME@</DisplayName>
<Description>@CMAKE_PROJECT_DESCRIPTION@</Description>
<Version>@CMAKE_PROJECT_VERSION@</Version>
<ReleaseDate>@QGC_APP_DATE@</ReleaseDate>
<Name>@QGC_ORG_NAME@</Name>
<Licenses>
<License name="License Agreement" file="license.txt" />
</Licenses>
<Default>true</Default>
<Script>installscript.js</Script>
<UpdateText>Update @CMAKE_PROJECT_NAME@</UpdateText>
<Translations>
<!-- <Translation>de.qm</Translation> -->
</Translations>
</Package>
+20 -20
View File
@@ -11,38 +11,38 @@
LANGUAGE LANG_NEUTRAL, 0x8
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
END
2 TEXTINCLUDE
BEGIN
2 TEXTINCLUDE
BEGIN
"\0"
END
END
3 TEXTINCLUDE
BEGIN
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON1 ICON "./WindowsQGC.ico"
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON1 ICON "./WindowsQGC.ico"
#endif // Neutral (Default) (unknown sub-lang: 0x8) resources
/////////////////////////////////////////////////////////////////////////////
Binary file not shown.
+4
View File
@@ -7,6 +7,10 @@ find_package(Qt6 REQUIRED COMPONENTS Core Test)
include(CTest)
enable_testing()
# if(ANDROID)
# include(AndroidTestUtilities)
# endif()
add_custom_target(check
COMMAND ctest --output-on-failure .
USES_TERMINAL