mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-15 14:56:42 +00:00
GODT-1942: Use qmake to find the QT6DIR
This commit is contained in:
8
internal/frontend/bridge-gui/FindQt.cmake
Normal file
8
internal/frontend/bridge-gui/FindQt.cmake
Normal file
@ -0,0 +1,8 @@
|
||||
find_program(QMAKE_EXE "qmake")
|
||||
if (NOT QMAKE_EXE)
|
||||
message(FATAL_ERROR "Could not locate qmake executable, make sur you have Qt 6 installed in that qmake is in your PATH environment variable.")
|
||||
endif()
|
||||
message(STATUS "Found qmake at ${QMAKE_EXE}")
|
||||
execute_process(COMMAND "${QMAKE_EXE}" -query QT_INSTALL_PREFIX OUTPUT_VARIABLE QT_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
set(CMAKE_PREFIX_PATH ${QT_DIR} ${CMAKE_PREFIX_PATH})
|
||||
@ -43,13 +43,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
#*****************************************************************************************************************************************************
|
||||
# Qt
|
||||
#*****************************************************************************************************************************************************
|
||||
|
||||
|
||||
if (NOT DEFINED ENV{QT6DIR})
|
||||
message(FATAL_ERROR "QT6DIR needs to be defined and point to the root of your Qt 6 folder (e.g. /Users/MyName/Qt/6.3.1/clang_64).")
|
||||
endif()
|
||||
|
||||
set(CMAKE_PREFIX_PATH $ENV{QT6DIR} ${CMAKE_PREFIX_PATH})
|
||||
include(../FindQt.cmake)
|
||||
find_package(Qt6 COMPONENTS Core Gui Widgets Qml REQUIRED)
|
||||
qt_standard_project_setup()
|
||||
message(STATUS "Using Qt ${Qt6_VERSION}")
|
||||
|
||||
@ -61,13 +61,7 @@ endif()
|
||||
#*****************************************************************************************************************************************************
|
||||
# Qt
|
||||
#*****************************************************************************************************************************************************
|
||||
|
||||
|
||||
if (NOT DEFINED ENV{QT6DIR})
|
||||
message(FATAL_ERROR "QT6DIR needs to be defined and point to the root of your Qt 6 folder (e.g. /Users/MyName/Qt/6.3.1/clang_64).")
|
||||
endif()
|
||||
|
||||
set(CMAKE_PREFIX_PATH $ENV{QT6DIR} ${CMAKE_PREFIX_PATH})
|
||||
include(../FindQt.cmake)
|
||||
|
||||
# Use CMAKE_INSTALL_PREFIX that is also used internally by CMake
|
||||
if (DEFINED ENV{BRIDGE_INSTALL_PATH})
|
||||
|
||||
@ -24,26 +24,26 @@ cmake_minimum_required(VERSION 3.22)
|
||||
install(SCRIPT ${deploy_script})
|
||||
|
||||
# QML
|
||||
install(DIRECTORY "$ENV{QT6DIR}/qml/Qt"
|
||||
install(DIRECTORY "${QT_DIR}/qml/Qt"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/bridge-gui.app/Contents/MacOS")
|
||||
install(DIRECTORY "$ENV{QT6DIR}/qml/QtQml"
|
||||
install(DIRECTORY "${QT_DIR}/qml/QtQml"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/bridge-gui.app/Contents/MacOS")
|
||||
install(DIRECTORY "$ENV{QT6DIR}/qml/QtQuick"
|
||||
install(DIRECTORY "${QT_DIR}/qml/QtQuick"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/bridge-gui.app/Contents/MacOS")
|
||||
# FRAMEWORKS
|
||||
install(DIRECTORY "$ENV{QT6DIR}/lib/QtQmlWorkerScript.framework"
|
||||
install(DIRECTORY "${QT_DIR}/lib/QtQmlWorkerScript.framework"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/bridge-gui.app/Contents/Frameworks")
|
||||
install(DIRECTORY "$ENV{QT6DIR}/lib/QtQuickControls2Impl.framework"
|
||||
install(DIRECTORY "${QT_DIR}/lib/QtQuickControls2Impl.framework"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/bridge-gui.app/Contents/Frameworks")
|
||||
install(DIRECTORY "$ENV{QT6DIR}/lib/QtQuickLayouts.framework"
|
||||
install(DIRECTORY "${QT_DIR}/lib/QtQuickLayouts.framework"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/bridge-gui.app/Contents/Frameworks")
|
||||
install(DIRECTORY "$ENV{QT6DIR}/lib/QtQuickDialogs2.framework"
|
||||
install(DIRECTORY "${QT_DIR}/lib/QtQuickDialogs2.framework"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/bridge-gui.app/Contents/Frameworks")
|
||||
install(DIRECTORY "$ENV{QT6DIR}/lib/QtQuickDialogs2QuickImpl.framework"
|
||||
install(DIRECTORY "${QT_DIR}/lib/QtQuickDialogs2QuickImpl.framework"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/bridge-gui.app/Contents/Frameworks")
|
||||
install(DIRECTORY "$ENV{QT6DIR}/lib/QtQuickDialogs2Utils.framework"
|
||||
install(DIRECTORY "${QT_DIR}/lib/QtQuickDialogs2Utils.framework"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/bridge-gui.app/Contents/Frameworks")
|
||||
# PLUGINS
|
||||
install(FILES "$ENV{QT6DIR}/plugins/imageformats/libqsvg.dylib"
|
||||
install(FILES "${QT_DIR}/plugins/imageformats/libqsvg.dylib"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/bridge-gui.app/Contents/PlugIns/imageformats")
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ cmake_minimum_required(VERSION 3.22)
|
||||
#*****************************************************************************************************************************************************
|
||||
|
||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_BINDIR}" "${CMAKE_INSTALL_LIBDIR}" "." "../lib")
|
||||
install(DIRECTORY "$ENV{QT6DIR}/qml" "$ENV{QT6DIR}/plugins"
|
||||
install(DIRECTORY "${QT_DIR}/qml" "${QT_DIR}/plugins"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
|
||||
macro( AppendLib LIB_NAME HINT_PATH)
|
||||
@ -40,7 +40,7 @@ macro( AppendLib LIB_NAME HINT_PATH)
|
||||
endmacro()
|
||||
|
||||
macro( AppendQt6Lib LIB_NAME)
|
||||
AppendLib("${LIB_NAME}" "$ENV{QT6DIR}/lib/")
|
||||
AppendLib("${LIB_NAME}" "${QT_DIR}/lib/")
|
||||
endmacro()
|
||||
|
||||
#Qt6
|
||||
|
||||
@ -39,9 +39,9 @@ macro( AppendVCPKGLib LIB_NAME)
|
||||
AppendLib("${LIB_NAME}" "${VCPKG_ROOT}/installed/x64-windows/bin")
|
||||
endmacro()
|
||||
|
||||
cmake_path(CONVERT $ENV{QT6DIR} TO_CMAKE_PATH_LIST QT6DIR)
|
||||
cmake_path(CONVERT "${QT_DIR}/bin" TO_CMAKE_PATH_LIST QT_DIR_LIB)
|
||||
macro( AppendQt6Lib LIB_NAME)
|
||||
AppendLib("${LIB_NAME}" "${QT6DIR}/bin")
|
||||
AppendLib("${LIB_NAME}" "${QT_DIR_LIB}")
|
||||
endmacro()
|
||||
|
||||
# Force plugins to be installed near the exe.
|
||||
@ -67,9 +67,9 @@ AppendQt6Lib("Qt6QuickDialogs2Utils.dll")
|
||||
install(FILES ${DEPLOY_LIBS} DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
|
||||
# QML PlugIns
|
||||
install(DIRECTORY ${QT6DIR}/qml/Qt/labs/platform DESTINATION "${CMAKE_INSTALL_PREFIX}/Qt/labs/")
|
||||
install(DIRECTORY ${QT6DIR}/qml/QtQml DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
install(DIRECTORY ${QT6DIR}/qml/QtQuick DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
install(DIRECTORY ${QT_DIR}/qml/Qt/labs/platform DESTINATION "${CMAKE_INSTALL_PREFIX}/Qt/labs/")
|
||||
install(DIRECTORY ${QT_DIR}/qml/QtQml DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
install(DIRECTORY ${QT_DIR}/qml/QtQuick DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
|
||||
# Runtime system libs
|
||||
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
|
||||
|
||||
@ -40,10 +40,7 @@ endif()
|
||||
#****************************************************************************************************************************************************
|
||||
# Qt
|
||||
#****************************************************************************************************************************************************
|
||||
if (NOT DEFINED ENV{QT6DIR})
|
||||
message(FATAL_ERROR "QT6DIR needs to be defined and point to the root of your Qt 6 folder (e.g. /Users/MyName/Qt/6.3.1/clang_64).")
|
||||
endif ()
|
||||
set(CMAKE_PREFIX_PATH $ENV{QT6DIR} ${CMAKE_PREFIX_PATH})
|
||||
include(../FindQt.cmake)
|
||||
find_package(Qt6 COMPONENTS Core REQUIRED)
|
||||
qt_standard_project_setup()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user