diff options
Diffstat (limited to 'tests/auto/cmake/test_qt_manual_moc/VerifyDefines.cmake')
-rw-r--r-- | tests/auto/cmake/test_qt_manual_moc/VerifyDefines.cmake | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/auto/cmake/test_qt_manual_moc/VerifyDefines.cmake b/tests/auto/cmake/test_qt_manual_moc/VerifyDefines.cmake new file mode 100644 index 0000000000..b3acedb014 --- /dev/null +++ b/tests/auto/cmake/test_qt_manual_moc/VerifyDefines.cmake @@ -0,0 +1,30 @@ +# Copyright (C) 2024 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +cmake_minimum_required(VERSION 3.16) + +if(NOT DEFINITIONS) + message(FATAL_ERROR "No definitions are provided to test") +endif() + +if(NOT MOC_ARGS) + message(FATAL_ERROR "The moc RSP file is not specified") +endif() + +file(READ "${MOC_ARGS}" moc_args_data) + +string(REPLACE "\n" ";" moc_args_data "${moc_args_data}") + +foreach(def IN LISTS DEFINITIONS) + set(found FALSE) + foreach(data IN LISTS moc_args_data) + if(data MATCHES "^(-D)?${def}") + set(found TRUE) + break() + endif() + endforeach() + if(NOT found) + message(FATAL_ERROR "The ${def} is missing in the moc argument list:\n${moc_args_data}") + endif() +endforeach() + |