examples: add convenient script to deploy qt libraries
Currently only functional on Windows. macOS and Linux to do. Signed-off-by: Yuhang Zhao <2546789017@qq.com>
This commit is contained in:
parent
2806cc811b
commit
389c8ad6d6
|
@ -0,0 +1,61 @@
|
||||||
|
#[[
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (C) 2022 by wangwenx190 (Yuhang Zhao)
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
]]
|
||||||
|
|
||||||
|
function(deploy_qt_libraries arg_target)
|
||||||
|
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
|
||||||
|
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core)
|
||||||
|
if(NOT DEFINED QT_QMAKE_EXECUTABLE)
|
||||||
|
get_target_property(QT_QMAKE_EXECUTABLE Qt::qmake IMPORTED_LOCATION)
|
||||||
|
endif()
|
||||||
|
if(NOT EXISTS "${QT_QMAKE_EXECUTABLE}")
|
||||||
|
message("Cannot find the QMake executable.")
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
get_filename_component(QT_BIN_DIRECTORY "${QT_QMAKE_EXECUTABLE}" DIRECTORY)
|
||||||
|
find_program(QT_DEPLOY_EXECUTABLE NAMES windeployqt macdeployqt HINTS "${QT_BIN_DIRECTORY}")
|
||||||
|
if(NOT EXISTS "${QT_DEPLOY_EXECUTABLE}")
|
||||||
|
message("Cannot find the deployqt tool.")
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
if(WIN32)
|
||||||
|
add_custom_command(TARGET ${arg_target} POST_BUILD COMMAND
|
||||||
|
"${QT_DEPLOY_EXECUTABLE}"
|
||||||
|
--dir "$<TARGET_FILE_DIR:${arg_target}>/qml"
|
||||||
|
--libdir "$<TARGET_FILE_DIR:${arg_target}>"
|
||||||
|
--plugindir "$<TARGET_FILE_DIR:${arg_target}>/plugins"
|
||||||
|
--qmldir "$<TARGET_PROPERTY:${arg_target},SOURCE_DIR>"
|
||||||
|
--qmlimport "${PROJECT_BINARY_DIR}/imports"
|
||||||
|
--no-translations
|
||||||
|
--no-system-d3d-compiler
|
||||||
|
--no-virtualkeyboard
|
||||||
|
--no-compiler-runtime
|
||||||
|
--no-opengl-sw
|
||||||
|
"$<TARGET_FILE:${arg_target}>"
|
||||||
|
)
|
||||||
|
elseif(APPLE)
|
||||||
|
add_custom_command(TARGET ${arg_target} POST_BUILD COMMAND
|
||||||
|
"${QT_DEPLOY_EXECUTABLE}" "$<TARGET_BUNDLE_DIR:${arg_target}>"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
endfunction()
|
|
@ -57,3 +57,6 @@ target_compile_definitions(MainWindow PRIVATE
|
||||||
QT_DEPRECATED_WARNINGS
|
QT_DEPRECATED_WARNINGS
|
||||||
QT_DISABLE_DEPRECATED_BEFORE=0x060500
|
QT_DISABLE_DEPRECATED_BEFORE=0x060500
|
||||||
)
|
)
|
||||||
|
|
||||||
|
include(../deployqt.cmake)
|
||||||
|
deploy_qt_libraries(MainWindow)
|
||||||
|
|
|
@ -76,3 +76,6 @@ target_compile_definitions(OpenGLWidget PRIVATE
|
||||||
QT_DEPRECATED_WARNINGS
|
QT_DEPRECATED_WARNINGS
|
||||||
QT_DISABLE_DEPRECATED_BEFORE=0x060500
|
QT_DISABLE_DEPRECATED_BEFORE=0x060500
|
||||||
)
|
)
|
||||||
|
|
||||||
|
include(../deployqt.cmake)
|
||||||
|
deploy_qt_libraries(OpenGLWidget)
|
||||||
|
|
|
@ -82,3 +82,6 @@ target_compile_definitions(QuickBlur PRIVATE
|
||||||
QT_DISABLE_DEPRECATED_BEFORE=0x060500
|
QT_DISABLE_DEPRECATED_BEFORE=0x060500
|
||||||
$<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>
|
$<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
include(../deployqt.cmake)
|
||||||
|
deploy_qt_libraries(QuickBlur)
|
||||||
|
|
|
@ -25,4 +25,4 @@ setlocal
|
||||||
set QSG_RHI_BACKEND=d3d11
|
set QSG_RHI_BACKEND=d3d11
|
||||||
"%~dp0QuickBlur.exe"
|
"%~dp0QuickBlur.exe"
|
||||||
endlocal
|
endlocal
|
||||||
exit /b
|
exit /b 0
|
||||||
|
|
|
@ -25,4 +25,4 @@ setlocal
|
||||||
set QSG_RHI_BACKEND=opengl
|
set QSG_RHI_BACKEND=opengl
|
||||||
"%~dp0QuickBlur.exe"
|
"%~dp0QuickBlur.exe"
|
||||||
endlocal
|
endlocal
|
||||||
exit /b
|
exit /b 0
|
||||||
|
|
|
@ -25,4 +25,4 @@ setlocal
|
||||||
set QSG_RHI_BACKEND=vulkan
|
set QSG_RHI_BACKEND=vulkan
|
||||||
"%~dp0QuickBlur.exe"
|
"%~dp0QuickBlur.exe"
|
||||||
endlocal
|
endlocal
|
||||||
exit /b
|
exit /b 0
|
||||||
|
|
|
@ -82,3 +82,6 @@ target_compile_definitions(Quick PRIVATE
|
||||||
QT_DISABLE_DEPRECATED_BEFORE=0x060500
|
QT_DISABLE_DEPRECATED_BEFORE=0x060500
|
||||||
$<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>
|
$<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
include(../deployqt.cmake)
|
||||||
|
deploy_qt_libraries(Quick)
|
||||||
|
|
|
@ -25,4 +25,4 @@ setlocal
|
||||||
set QSG_RHI_BACKEND=d3d11
|
set QSG_RHI_BACKEND=d3d11
|
||||||
"%~dp0Quick.exe"
|
"%~dp0Quick.exe"
|
||||||
endlocal
|
endlocal
|
||||||
exit /b
|
exit /b 0
|
||||||
|
|
|
@ -25,4 +25,4 @@ setlocal
|
||||||
set QSG_RHI_BACKEND=opengl
|
set QSG_RHI_BACKEND=opengl
|
||||||
"%~dp0Quick.exe"
|
"%~dp0Quick.exe"
|
||||||
endlocal
|
endlocal
|
||||||
exit /b
|
exit /b 0
|
||||||
|
|
|
@ -25,4 +25,4 @@ setlocal
|
||||||
set QSG_RHI_BACKEND=vulkan
|
set QSG_RHI_BACKEND=vulkan
|
||||||
"%~dp0Quick.exe"
|
"%~dp0Quick.exe"
|
||||||
endlocal
|
endlocal
|
||||||
exit /b
|
exit /b 0
|
||||||
|
|
|
@ -56,3 +56,6 @@ target_compile_definitions(WidgetBlur PRIVATE
|
||||||
QT_DEPRECATED_WARNINGS
|
QT_DEPRECATED_WARNINGS
|
||||||
QT_DISABLE_DEPRECATED_BEFORE=0x060500
|
QT_DISABLE_DEPRECATED_BEFORE=0x060500
|
||||||
)
|
)
|
||||||
|
|
||||||
|
include(../deployqt.cmake)
|
||||||
|
deploy_qt_libraries(WidgetBlur)
|
||||||
|
|
|
@ -56,3 +56,6 @@ target_compile_definitions(Widget PRIVATE
|
||||||
QT_DEPRECATED_WARNINGS
|
QT_DEPRECATED_WARNINGS
|
||||||
QT_DISABLE_DEPRECATED_BEFORE=0x060500
|
QT_DISABLE_DEPRECATED_BEFORE=0x060500
|
||||||
)
|
)
|
||||||
|
|
||||||
|
include(../deployqt.cmake)
|
||||||
|
deploy_qt_libraries(Widget)
|
||||||
|
|
Loading…
Reference in New Issue