forked from Silverfish/proton-bridge
GODT-1942: Use qmake to find the QT6DIR
This commit is contained in:
5
Makefile
5
Makefile
@ -197,7 +197,7 @@ check-has-go:
|
||||
|
||||
|
||||
check_is_installed=if ! which $(1) > /dev/null; then echo "Please install $(1)"; exit 1; fi
|
||||
check-build-essentials: check-qt-dir
|
||||
check-build-essentials:
|
||||
@$(call check_is_installed,zip)
|
||||
@$(call check_is_installed,unzip)
|
||||
@$(call check_is_installed,tar)
|
||||
@ -207,9 +207,6 @@ ifneq "${GOOS}" "windows"
|
||||
@$(call check_is_installed,ninja)
|
||||
endif
|
||||
|
||||
check-qt-dir:
|
||||
@if ! ls "${QT6DIR}/bin/qt.conf" > /dev/null; then echo "Please set QT6DIR"; exit 1; fi
|
||||
|
||||
add-license:
|
||||
./utils/missing_license.sh add
|
||||
|
||||
|
||||
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