Fix the unescaped path MATCH condition in QtHeadersClean
Use plain string find instead since paths containing special regex symbols, give either the invalid MATCH results or lead to regex compilation error. Pick-to: 6.5 6.7 6.8 Fixes: QTBUG-116042 Change-Id: I9deb2fe760843c9be1e622cf2216c6dc81d73e71 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
parent
5d8f2b7cd2
commit
41b72465d8
@ -237,12 +237,14 @@ function(qt_internal_add_headersclean_target module_target module_headers)
|
||||
get_filename_component(input_file_name ${input_path} NAME)
|
||||
set(artifact_path "${CMAKE_CURRENT_BINARY_DIR}/header_check/${input_file_name}.o")
|
||||
|
||||
unset(input_base_dir)
|
||||
if(input_path MATCHES "${CMAKE_BINARY_DIR}")
|
||||
set(input_base_dir "${CMAKE_BINARY_DIR}")
|
||||
elseif(input_path MATCHES "${CMAKE_SOURCE_DIR}")
|
||||
set(input_base_dir "${CMAKE_SOURCE_DIR}")
|
||||
endif()
|
||||
set(possible_base_dirs "${CMAKE_BINARY_DIR}" "${CMAKE_SOURCE_DIR}")
|
||||
foreach(dir IN LISTS possible_base_dirs)
|
||||
string(FIND "${input_path}" "${dir}" idx)
|
||||
if(idx EQUAL "0")
|
||||
set(input_base_dir "${dir}")
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(input_base_dir AND IS_ABSOLUTE "${input_base_dir}" AND IS_ABSOLUTE "${input_path}")
|
||||
file(RELATIVE_PATH comment_header_path "${input_base_dir}" "${input_path}")
|
||||
|
Loading…
x
Reference in New Issue
Block a user