From 7f2ff4ffce8da68669855b16f5e2ecd9954aa33d Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 19 Jun 2020 14:45:35 +0200 Subject: CMake: Do not file(GENERATE) illegal genexes in .pri file generation We must filter out expressions of the form $, because 1. They cannot be used in file(GENERATE) content. 2. They refer to the consuming target we have no access to here. The CMake error Error evaluating generator expression: $ was triggered when building the UiPlugin module of qttools. Change-Id: Idf639be50120b94d68a70965604e6f1ef72edc9b Reviewed-by: Cristian Adam Reviewed-by: Maurice Kalinowski Reviewed-by: Alexandru Croitor --- cmake/QtBuild.cmake | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index d5e00e4c94..ff6e72eff2 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -835,6 +835,11 @@ function(qt_generate_module_pri_file target) # will compute the transitive list of all defines for a module (so Gui would get Core #defines too). Instead query just the public defines on the target. get_target_property(target_defines "${target}" INTERFACE_COMPILE_DEFINITIONS) + + # We must filter out expressions of the form $, because + # 1. They cannot be used in file(GENERATE) content. + # 2. They refer to the consuming target we have no access to here. + list(FILTER target_defines EXCLUDE REGEX "\\$]+>") list(JOIN target_defines " " joined_target_defines) file(GENERATE -- cgit v1.2.3