Files
qgroundcontrol/cmake/CreateQGCInstaller.cmake
2024-09-06 01:08:14 -04:00

70 lines
2.9 KiB
CMake

message(STATUS "Creating QGC Installer")
include(CMakePrintHelpers)
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}
)