aboutsummaryrefslogtreecommitdiff
path: root/xT/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'xT/CMakeLists.txt')
-rw-r--r--xT/CMakeLists.txt39
1 files changed, 16 insertions, 23 deletions
diff --git a/xT/CMakeLists.txt b/xT/CMakeLists.txt
index 8f27be3..812bca4 100644
--- a/xT/CMakeLists.txt
+++ b/xT/CMakeLists.txt
@@ -1,4 +1,5 @@
# As per Qt 6.8 documentation, at least 3.16 is necessary
+# CMake 3.21 has RUNTIME_DEPENDENCY_SET.
cmake_minimum_required (VERSION 3.21.1)
file (READ ../xK-version project_version)
@@ -68,8 +69,9 @@ else ()
set (resource_file "${PROJECT_BINARY_DIR}/xT.rc")
list (APPEND project_sources "${resource_file}")
+ # Qt specifically looks up IDI_ICON1 and nothing else.
add_custom_command (OUTPUT "${resource_file}"
- COMMAND ${CMAKE_COMMAND} -E echo "1 ICON \"xT.ico\""
+ COMMAND ${CMAKE_COMMAND} -E echo "IDI_ICON1 ICON \"xT.ico\""
> ${resource_file} VERBATIM)
set_property (SOURCE "${resource_file}"
APPEND PROPERTY OBJECT_DEPENDS ${icon_ico})
@@ -110,13 +112,24 @@ if (ANDROID)
install (TARGETS xT DESTINATION .)
elseif (APPLE OR WIN32)
install (TARGETS xT
+ RUNTIME_DEPENDENCY_SET dependencies_xT
BUNDLE DESTINATION .
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- # XXX: QTBUG-127075, which can be circumvented by manually running
- # macdeployqt on xT.app before the install.
+ if (WIN32)
+ install (RUNTIME_DEPENDENCY_SET dependencies_xT DIRECTORIES $ENV{PATH}
+ PRE_EXCLUDE_REGEXES "api-ms-win-.*"
+ POST_EXCLUDE_REGEXES ".*[/\\]system32[/\\].*")
+ endif ()
+
qt_generate_deploy_app_script (TARGET xT OUTPUT_SCRIPT deploy_xT)
install (SCRIPT "${deploy_xT}")
+
+ # At least with Homebrew Qt, you will get QTBUG-127075,
+ # which can be circumvented by running macdeployqt twice.
+ if (APPLE)
+ install (SCRIPT "${deploy_xT}")
+ endif ()
else ()
install (TARGETS xT DESTINATION ${CMAKE_INSTALL_BINDIR})
install (FILES ../LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR})
@@ -129,26 +142,6 @@ else ()
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
endif ()
-# Within MSYS2, windeployqt doesn't copy the compiler runtime,
-# which is always linked dynamically by the Qt binaries.
-# TODO(p): Consider whether or not to use MSYS2 to cross-compile, and how.
-if (WIN32)
- install (CODE [=[
- set (bindir "${CMAKE_INSTALL_PREFIX}/bin")
- execute_process (COMMAND cygpath -m /
- OUTPUT_VARIABLE cygroot OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (cygroot)
- execute_process (COMMAND ldd "${bindir}/xT.exe"
- OUTPUT_VARIABLE ldd_output OUTPUT_STRIP_TRAILING_WHITESPACE)
- string (REGEX MATCHALL " /mingw64/bin/[^ ]+ " libs "${ldd_output}")
- foreach (lib ${libs})
- string (STRIP "${lib}" lib)
- file (COPY "${cygroot}${lib}" DESTINATION "${bindir}")
- endforeach()
- endif ()
- ]=])
-endif ()
-
# CPack
set (CPACK_PACKAGE_VENDOR "Premysl Eric Janouch")
set (CPACK_PACKAGE_CONTACT "Přemysl Eric Janouch <p@janouch.name>")