diff --git a/CMakeLists.txt b/CMakeLists.txt index 58527d43a1e..c6e10b474ee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,14 +76,17 @@ else() set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/staging) endif() -if(UNIX) +if(CMAKE_HOST_UNIX) find_program(CCACHE_PROGRAM ccache) if(CCACHE_PROGRAM) message(STATUS "Using CCache") set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_PROGRAM}) set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_PROGRAM}) + if(APPLE) + set(CMAKE_OBJC_COMPILER_LAUNCHER ${CCACHE_PROGRAM}) + endif() endif() -elseif(WIN32) +elseif(CMAKE_HOST_WIN32) find_program(SCCACHE_PROGRAM sccache) if(SCCACHE_PROGRAM) message(STATUS "Using SCCache") @@ -119,10 +122,20 @@ if(POLICY CMP0168) set(CMAKE_POLICY_DEFAULT_CMP0168 NEW) endif() +if(WIN32) + add_compile_options(/w44265 /we44265) +else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wswitch -Werror=switch") +endif() + ####################################################### # Qt6 Configuration ####################################################### +if(CMAKE_CROSSCOMPILING AND NOT IS_DIRECTORY ${QT_HOST_PATH}) + message(FATAL_ERROR "You need to set QT_HOST_PATH to cross compile Qt.") +endif() + set(QT_SILENCE_MISSING_DEPENDENCY_TARGET_WARNING ON) set(QT_MINIMUM_VERSION 6.8.1) @@ -551,12 +564,4 @@ elseif(MACOS) install(SCRIPT "${CMAKE_SOURCE_DIR}/cmake/CreateMacDMG.cmake") endif() -## Enforce Handling of All Enum Cases - -if(WIN32) - add_compile_options(/w44265 /we44265) -else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wswitch -Werror=switch") -endif() - include(printSummary) diff --git a/cmake/CreateCPackNSIS.cmake b/cmake/CreateCPackNSIS.cmake index c4009f25b42..80999b59e88 100644 --- a/cmake/CreateCPackNSIS.cmake +++ b/cmake/CreateCPackNSIS.cmake @@ -11,9 +11,19 @@ set(CPACK_NSIS_MUI_UNIICON "${QGC_INSTALLER_SOURCE}/WindowsQGC.ico") # 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_EXTRA_INSTALL_COMMANDS " + CreateDirectory \"\$SMPROGRAMS\\${CMAKE_PROJECT_NAME}\" + CreateShortCut \"\$SMPROGRAMS\\${CMAKE_PROJECT_NAME}\\${CMAKE_PROJECT_NAME}.lnk\" \"\$INSTDIR\\bin\\${EXENAME}.exe\" \"\" \"\$INSTDIR\\bin\\${EXENAME}.exe\" 0 + CreateShortCut \"\$SMPROGRAMS\\${CMAKE_PROJECT_NAME}\\${CMAKE_PROJECT_NAME} (GPU Compatibility Mode).lnk\" \"\$INSTDIR\\bin\\${EXENAME}.exe\" \"-desktop\" \"\$INSTDIR\\bin\\${EXENAME}.exe\" 0 + CreateShortCut \"\$SMPROGRAMS\\${CMAKE_PROJECT_NAME}\\${CMAKE_PROJECT_NAME} (GPU Safe Mode).lnk\" \"\$INSTDIR\\bin\\${EXENAME}.exe\" \"-swrast\" \"\$INSTDIR\\bin\\${EXENAME}.exe\" 0 +") +set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS " + Delete \"\$SMPROGRAMS\\${CMAKE_PROJECT_NAME}\\${CMAKE_PROJECT_NAME}.lnk\" + Delete \"\$SMPROGRAMS\\${CMAKE_PROJECT_NAME}\\${CMAKE_PROJECT_NAME} (GPU Compatibility Mode).lnk\" + Delete \"\$SMPROGRAMS\\${CMAKE_PROJECT_NAME}\\${CMAKE_PROJECT_NAME} (GPU Safe Mode).lnk\" + RMDir /r /REBOOTOK \"\$SMPROGRAMS\\${CMAKE_PROJECT_NAME}\" +") +set(CPACK_NSIS_COMPRESSOR "/SOLID /FINAL lzma") set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON) set(CPACK_NSIS_MODIFY_PATH ON) set(CPACK_NSIS_DISPLAY_NAME "${CMAKE_PROJECT_NAME}") @@ -28,7 +38,7 @@ set(CPACK_NSIS_URL_INFO_ABOUT ${CPACK_PACKAGE_HOMEPAGE_URL}) # set(CPACK_NSIS_EXECUTABLES_DIRECTORY "") # set(CPACK_NSIS_MUI_FINISHPAGE_RUN "") # set(CPACK_NSIS_MENU_LINKS "") -# set(CPACK_NSIS_UNINSTALL_NAME "") +set(CPACK_NSIS_UNINSTALL_NAME "${CMAKE_PROJECT_NAME}-Uninstall") # set(CPACK_NSIS_WELCOME_TITLE "") # set(CPACK_NSIS_WELCOME_TITLE_3LINES "") # set(CPACK_NSIS_FINISH_TITLE "") diff --git a/cmake/CreateWinInstaller.cmake b/cmake/CreateWinInstaller.cmake index a2f50b243d3..ec5f09cb471 100644 --- a/cmake/CreateWinInstaller.cmake +++ b/cmake/CreateWinInstaller.cmake @@ -2,7 +2,6 @@ message(STATUS "Creating Win Installer") include(CMakePrintHelpers) -# cmake_path(CONVERT "${CMAKE_BINARY_DIR}/../deploy/windows" TO_CMAKE_PATH_LIST QGC_INSTALLER_SOURCE) 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) @@ -41,5 +40,4 @@ execute_process( ERROR_VARIABLE NSIS_ERROR OUTPUT_STRIP_TRAILING_WHITESPACE ) - cmake_print_variables(NSIS_RESULT NSIS_OUTPUT NSIS_ERROR)