summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2021-12-07 15:49:50 +0100
committerJoerg Bornemann <joerg.bornemann@qt.io>2021-12-13 14:22:28 +0000
commit35c083fa1b66e9ba543adb7bd65dc53fd4300880 (patch)
tree41b11ff4c9039355fdc177cc6470770910df3f44 /cmake
parent81a31beeb25eaf14d5c5f42fe26aa49d6ef29bf8 (diff)
CMake: Fix build on Windows with CMake 3.19
qt_setup_tool_path.bat did not have proper line endings on Windows with CMake 3.19, breaking the invocation of tools that use the wrapper, for example qmltyperegistrar. The reason was that file(CONFIGURE) doesn't properly write line endings with CMake 3.19. See upstream issue #21769. Use configure_file with a proper input file to work around this issue. Fixes: QTBUG-98843 Change-Id: I2a4da15f306dc844cf83ca9721a77196c42af2ad Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 0bea727cac6b22af05e0ae68b02de6684c98667b)
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QtBuild.cmake13
-rw-r--r--cmake/qt_setup_tool_path.bat.in3
2 files changed, 6 insertions, 10 deletions
diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake
index a4d8c49ad1..8c4c12d593 100644
--- a/cmake/QtBuild.cmake
+++ b/cmake/QtBuild.cmake
@@ -273,16 +273,9 @@ function(qt_internal_generate_tool_command_wrapper)
set(bindir "${QT_BUILD_INTERNALS_RELOCATABLE_INSTALL_PREFIX}/${INSTALL_BINDIR}")
file(TO_NATIVE_PATH "${bindir}" bindir)
set(tool_command_wrapper_path "${QT_BUILD_DIR}/${INSTALL_LIBEXECDIR}/qt_setup_tool_path.bat")
- if(CMAKE_VERSION VERSION_LESS 3.18)
- # TODO: It doesn't make sense to generate wrapper at generator stage. Since file(CONFIGURE
- # was added in CMake 3.18, keep file(GENERATE for compatibility, until the minimum required
- # version is raised to 3.18.
- file(GENERATE OUTPUT "${tool_command_wrapper_path}" CONTENT
- "@echo off\r\nset PATH=${bindir}$<SEMICOLON>%PATH%\r\n%*")
- else()
- file(CONFIGURE OUTPUT "${tool_command_wrapper_path}" CONTENT
- "@echo off\r\nset PATH=${bindir};%PATH%\r\n%*")
- endif()
+ configure_file("${QT_CMAKE_DIR}/qt_setup_tool_path.bat.in"
+ "${tool_command_wrapper_path}" @ONLY
+ NEWLINE_STYLE WIN32)
set(QT_TOOL_COMMAND_WRAPPER_PATH "${tool_command_wrapper_path}"
CACHE INTERNAL "Path to the wrapper of the tool commands")
set_property(GLOBAL PROPERTY _qt_internal_generate_tool_command_wrapper_called TRUE)
diff --git a/cmake/qt_setup_tool_path.bat.in b/cmake/qt_setup_tool_path.bat.in
new file mode 100644
index 0000000000..a9cea5ad42
--- /dev/null
+++ b/cmake/qt_setup_tool_path.bat.in
@@ -0,0 +1,3 @@
+@echo off
+set PATH=@bindir@;%PATH%
+%*