70 lines
2.9 KiB
CMake
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}
|
|
)
|