summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QtBaseGlobalTargets.cmake2
-rw-r--r--cmake/QtQmakeHelpers.cmake32
2 files changed, 18 insertions, 16 deletions
diff --git a/cmake/QtBaseGlobalTargets.cmake b/cmake/QtBaseGlobalTargets.cmake
index b165914938..7d2f95de3e 100644
--- a/cmake/QtBaseGlobalTargets.cmake
+++ b/cmake/QtBaseGlobalTargets.cmake
@@ -110,7 +110,7 @@ qt_feature_module_end(GlobalConfig OUT_VAR_PREFIX "__GlobalConfig_")
qt_generate_global_config_pri_file()
qt_generate_global_module_pri_file()
qt_generate_global_device_pri_file()
-qt_generate_qmake_wrapper_for_target()
+qt_generate_qmake_and_qtpaths_wrapper_for_target()
add_library(Qt::GlobalConfig ALIAS GlobalConfig)
diff --git a/cmake/QtQmakeHelpers.cmake b/cmake/QtQmakeHelpers.cmake
index 7c5d21ce78..930d5318db 100644
--- a/cmake/QtQmakeHelpers.cmake
+++ b/cmake/QtQmakeHelpers.cmake
@@ -81,10 +81,10 @@ function(qt_generate_qconfig_cpp in_file out_file)
endfunction()
# In the cross-compiling case, creates a wrapper around the host Qt's
-# qmake executable. Also creates a qmake configuration file that sets
+# qmake and qtpaths executables. Also creates a qmake configuration file that sets
# up the host qmake's properties for cross-compiling with this Qt
# build.
-function(qt_generate_qmake_wrapper_for_target)
+function(qt_generate_qmake_and_qtpaths_wrapper_for_target)
if(NOT CMAKE_CROSSCOMPILING)
return()
endif()
@@ -140,27 +140,29 @@ TargetSpec=${QT_QMAKE_TARGET_MKSPEC}
HostSpec=${QT_QMAKE_HOST_MKSPEC}
")
file(GENERATE OUTPUT "${qt_conf_path}" CONTENT "${content}")
+ qt_install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${qt_conf_path}"
+ DESTINATION "${INSTALL_BINDIR}")
- qt_path_join(qmake_wrapper_in_file "${CMAKE_CURRENT_SOURCE_DIR}/bin/qmake-wrapper-for-target")
- set(qmake_wrapper "qmake")
+ set(wrapper_prefix)
+ set(wrapper_extension)
if(QT_BUILD_TOOLS_WHEN_CROSSCOMPILING)
- # Avoid collisions with the cross-compiled qmake binary.
- string(PREPEND qmake_wrapper "host-")
+ # Avoid collisions with the cross-compiled qmake/qtpaths binaries.
+ set(wrapper_prefix "host-")
endif()
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
- string(APPEND qmake_wrapper_in_file ".bat")
- string(APPEND qmake_wrapper ".bat")
+ set(wrapper_extension ".bat")
endif()
- string(APPEND qmake_wrapper_in_file ".in")
+ set(wrapper_in_file
+ "${CMAKE_CURRENT_SOURCE_DIR}/bin/qmake-and-qtpaths-wrapper${wrapper_extension}.in")
set(host_qt_bindir "${host_prefix}/${QT${PROJECT_VERSION_MAJOR}_HOST_INFO_BINDIR}")
- qt_path_join(qmake_wrapper "preliminary" "${qmake_wrapper}")
- configure_file("${qmake_wrapper_in_file}" "${qmake_wrapper}" @ONLY)
- qt_install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${qt_conf_path}"
- DESTINATION "${INSTALL_BINDIR}")
- qt_copy_or_install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/${qmake_wrapper}"
- DESTINATION "${INSTALL_BINDIR}")
+ foreach(tool_name qmake qtpaths)
+ set(wrapper "preliminary/${wrapper_prefix}${tool_name}${wrapper_extension}")
+ configure_file("${wrapper_in_file}" "${wrapper}" @ONLY)
+ qt_copy_or_install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/${wrapper}"
+ DESTINATION "${INSTALL_BINDIR}")
+ endforeach()
endfunction()
# Transforms a CMake Qt module name to a qmake Qt module name.