summaryrefslogtreecommitdiffstats
path: root/cmake/QtLalrHelpers.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/QtLalrHelpers.cmake')
-rw-r--r--cmake/QtLalrHelpers.cmake20
1 files changed, 17 insertions, 3 deletions
diff --git a/cmake/QtLalrHelpers.cmake b/cmake/QtLalrHelpers.cmake
index 7c147b0597..a63d8e9504 100644
--- a/cmake/QtLalrHelpers.cmake
+++ b/cmake/QtLalrHelpers.cmake
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
# Match the pattern 'regex' in 'input_line', replace the match with 'replacement'
# and set that result in 'out_var' in the parent scope.
function(qt_regex_match_and_get input_line regex replacement out_var)
@@ -32,6 +35,15 @@ function(qt_process_qlalr consuming_target input_file_list flags)
return()
endif()
+ qt_internal_is_skipped_test(skipped ${consuming_target})
+ if(skipped)
+ return()
+ endif()
+ qt_internal_is_in_test_batch(in_batch ${consuming_target})
+ if(in_batch)
+ _qt_internal_test_batch_target_name(consuming_target)
+ endif()
+
foreach(input_file ${input_file_list})
file(STRINGS ${input_file} input_file_lines)
qt_qlalr_find_option_in_list("${input_file_lines}" "^%parser(.+)" "parser")
@@ -49,15 +61,17 @@ function(qt_process_qlalr consuming_target input_file_list flags)
"${absolute_input_file}")
set(cpp_file "${parser}.cpp")
- set(private_file "${parser}_p.h")
- set(decl_file "${decl}")
+ set(private_file "${CMAKE_CURRENT_BINARY_DIR}/${parser}_p.h")
+ set(decl_file "${CMAKE_CURRENT_BINARY_DIR}/${decl}")
set(impl_file "${impl}")
add_custom_command(
OUTPUT ${cpp_file} ${private_file} ${decl_file} ${impl_file}
COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::qlalr ${flags} ${relative_input_file}
DEPENDS ${QT_CMAKE_EXPORT_NAMESPACE}::qlalr
MAIN_DEPENDENCY ${input_file}
+ VERBATIM
)
- target_sources(${consuming_target} PRIVATE ${cpp_file} ${impl_file})
+ target_sources(${consuming_target} PRIVATE ${cpp_file} ${impl_file}
+ ${private_file} ${decl_file})
endforeach()
endfunction()