Files
qgroundcontrol/cmake/CreateWinInstaller.cmake
2025-01-17 19:44:13 -05:00

44 lines
1.8 KiB
CMake

message(STATUS "Creating Win Installer")
include(CMakePrintHelpers)
file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/deploy/windows" QGC_INSTALLER_SOURCE)
file(TO_NATIVE_PATH "${QGC_INSTALLER_SOURCE}/WindowsQGC.ico" QGC_INSTALLER_ICON)
file(TO_NATIVE_PATH "${QGC_INSTALLER_SOURCE}/installheader.bmp" QGC_INSTALLER_HEADER_BITMAP)
file(TO_NATIVE_PATH "${QGC_INSTALLER_SOURCE}/driver.msi" QGC_INSTALLER_DRIVER_MSI)
file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/QGroundControl-installer.exe" QGC_INSTALLER_OUT)
cmake_print_variables(QGC_INSTALLER_SOURCE QGC_INSTALLER_ICON QGC_INSTALLER_HEADER_BITMAP QGC_INSTALLER_DRIVER_MSI)
file(TO_NATIVE_PATH "${QGC_INSTALLER_SOURCE}/nullsoft_installer.nsi" QGC_NSIS_INSTALLER_SCRIPT)
set(_PF86 "PROGRAMFILES(x86)")
find_program(QGC_NSIS_INSTALLER_CMD makensis
PATHS "$ENV{PROGRAMFILES}/NSIS" "$ENV{${_PF86}}/NSIS" "$ENV{PROGRAMW6432}/NSIS"
DOC "Path to the makensis utility."
)
cmake_print_variables(QGC_NSIS_INSTALLER_SCRIPT QGC_NSIS_INSTALLER_CMD)
set(QGC_NSIS_INSTALLER_PARAMETERS
/DDRIVER_MSI=${QGC_INSTALLER_DRIVER_MSI}
/DINSTALLER_ICON=${QGC_INSTALLER_ICON}
/DHEADER_BITMAP=${QGC_INSTALLER_HEADER_BITMAP}
/DAPPNAME=QGroundControl
/DEXENAME=QGroundControl
/DORGNAME=org.mavlink.qgroundcontrol
/DDESTDIR=${CMAKE_BINARY_DIR}/staging
/NOCD
"/XOutFile ${QGC_INSTALLER_OUT}"
${QGC_NSIS_INSTALLER_SCRIPT}
)
cmake_print_variables(QGC_NSIS_INSTALLER_PARAMETERS)
message(STATUS "Win Installer Command: \"${QGC_NSIS_INSTALLER_CMD} ${QGC_NSIS_INSTALLER_PARAMETERS}\"")
execute_process(
COMMAND ${QGC_NSIS_INSTALLER_CMD} ${QGC_NSIS_INSTALLER_PARAMETERS}
RESULT_VARIABLE NSIS_RESULT
OUTPUT_VARIABLE NSIS_OUTPUT
ERROR_VARIABLE NSIS_ERROR
OUTPUT_STRIP_TRAILING_WHITESPACE
)
cmake_print_variables(NSIS_RESULT NSIS_OUTPUT NSIS_ERROR)