From 8d6f2e7e157d5778e37e54cd7e90c3185970abff Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 31 Aug 2016 15:39:30 +0200 Subject: Add a QT_REQUIRE_CONFIG(feature) macro This macro expands into a static_assert and can be used to trigger a compile error if a certain feature is not available when trying to compile some code. This is especially useful to protect against accidental inclusion of headers that implement functionality related to a feature. Change-Id: I456c55b989ce5f35f3af0e13c1886a85c23dfe29 Reviewed-by: Edward Welbourne Reviewed-by: Lars Knoll --- mkspecs/features/qt_module_headers.prf | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/qt_module_headers.prf b/mkspecs/features/qt_module_headers.prf index 229760068e..5a45007820 100644 --- a/mkspecs/features/qt_module_headers.prf +++ b/mkspecs/features/qt_module_headers.prf @@ -243,16 +243,23 @@ headersclean:!internal_module { } !isEmpty(hcleanCOMMAND):if(!qtConfig(debug_and_release)|CONFIG(release, debug|release)) { + CLEAN_HEADERS = + for (h, SYNCQT.CLEAN_HEADER_FILES) { + hh = $$split(h, :) + hr = $$member(hh, 1) + isEmpty(hr)|qtConfig($$hr): \ + CLEAN_HEADERS += $$member(hh, 0) + } + CLEAN_HEADERS -= $$HEADERSCLEAN_EXCLUDE header_check.dependency_type = TYPE_C header_check.CONFIG += no_link header_check.output = ${QMAKE_VAR_OBJECTS_DIR}header_${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)} - header_check.input = SYNCQT.CLEAN_HEADER_FILES + header_check.input = CLEAN_HEADERS header_check.variable_out = PRE_TARGETDEPS header_check.name = headercheck ${QMAKE_FILE_IN} header_check.commands = $$hcleanCOMMAND silent:header_check.commands = @echo compiling[header] ${QMAKE_FILE_IN} && $$hcleanCOMMAND QMAKE_EXTRA_COMPILERS += header_check - SYNCQT.CLEAN_HEADER_FILES -= $$HEADERSCLEAN_EXCLUDE } unset(hcleanCOMMAND) unset(hcleanFLAGS) -- cgit v1.2.3