From 4ee762cf25e4aa0801297d1a8152ecbb598a02b5 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 4 Sep 2019 15:47:11 +0200 Subject: [PATCH] Fix qmlcachegen invocation on Windows, part 2 Fix up the previous commit and use separate COMMAND parameters for add_custom_command to ensure the expansion of the PATH. The injection via -E env "/some/dir;%PATH%" does not work as the dollar expansion is not applied when the ninja command uses cmd /C. This relies now on undocumented behavior of cmake ;( Change-Id: I5b5fc88e4c13f8fb6c6bba3131204c2eb35404d6 Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor --- cmake/QtBuild.cmake | 4 +--- cmake/QtResource.cmake.in | 12 ++++++------ 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index dcbe7646432..c8788872549 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -69,9 +69,7 @@ function(qt_setup_tool_path_command) endif() set(bindir "${CMAKE_INSTALL_PREFIX}/${INSTALL_BINDIR}") file(TO_NATIVE_PATH "${bindir}" bindir) - list(APPEND command "${CMAKE_COMMAND}") - list(APPEND command -E) - list(APPEND command env) + list(APPEND command COMMAND) list(APPEND command set \"PATH=${bindir}$%PATH%\") set(QT_TOOL_PATH_SETUP_COMMAND "${command}" CACHE INTERNAL "internal command prefix for tool invocations" FORCE) endfunction() diff --git a/cmake/QtResource.cmake.in b/cmake/QtResource.cmake.in index 3f33ba50e56..7d90d6be204 100644 --- a/cmake/QtResource.cmake.in +++ b/cmake/QtResource.cmake.in @@ -98,10 +98,10 @@ function(__qt_quick_compiler_process_resources target resource_name) set(compiled_file "${CMAKE_CURRENT_BINARY_DIR}/qmlcache/${resource_name}/${compiled_file}.cpp") add_custom_command( OUTPUT ${compiled_file} - DEPENDS ${file_absolute} @QT_CMAKE_EXPORT_NAMESPACE@::qmlcachegen + DEPENDS ${file_absolute} + ${QT_TOOL_PATH_SETUP_COMMAND} COMMAND - ${QT_TOOL_PATH_SETUP_COMMAND} - $ + @QT_CMAKE_EXPORT_NAMESPACE@::qmlcachegen --resource-path ${file_resource_path} -o ${compiled_file} ${file_absolute} @@ -132,10 +132,10 @@ function(__qt_quick_compiler_process_resources target resource_name) add_custom_command( OUTPUT ${qmlcache_loader_file} - DEPENDS ${qmlcache_loader_list} @QT_CMAKE_EXPORT_NAMESPACE@::qmlcachegen + DEPENDS ${qmlcache_loader_list} + ${QT_TOOL_PATH_SETUP_COMMAND} COMMAND - ${QT_TOOL_PATH_SETUP_COMMAND} - $ + @QT_CMAKE_EXPORT_NAMESPACE@::qmlcachegen ${retained_args} --resource-name "${resource_name_arg}" -o ${qmlcache_loader_file}