CMake: Add New Installers
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
|
||||
@@ -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}
|
||||
)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
# QGroundControl Ground Control Station
|
||||
|
||||
[](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)
|
||||
|
Before Width: | Height: | Size: 50 KiB |
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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%));
|
||||
}
|
||||
|
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 |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 361 KiB |
|
Before Width: | Height: | Size: 5.7 KiB |
|
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>
|
||||
@@ -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
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -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
|
||||
|
||||