qt6-bb10/mkspecs/features
Thiago Macieira 6668f5becf Implement a more direct headersclean check
Test each include file directly, instead of doing a large #include. This
verifies that each header is compilable on its own. One big advantage of
doing it via a special compiler in qmake is that we skip pre-compiled
headers, which has hidden build errors in the past.

This solution is implemented by making syncqt produce a second list of
headers.  This list is the same as the list of headers in the source
code to be installed, minus the headers that declare themselves to be
unclean, via the pragma:
  #pragma qt_sync_skip_header_check

This mechanism is applied only for public libraries (skipping
QtPlatformSupport, an internal_module).

This test is enabled only for -developer-builds of Qt because it
increases the compilation time.

On QtTest: the library only links to QtCore, but it has two headers that
provide inline-only functionality by including QtGui and QtWidgets
headers (namely, qtest_gui.h and qtest_widget.h). If those two modules
aren't getting compiled due to -no-gui or -no-widgets to configure, we
need to remove the respective headers from the list of headers to be
checked. If they are being built, then we need to make QtTest's build
wait for the headers to be generated and that happens when qmake is
first run inside the src/gui and src/widgets directories.

Change-Id: I57d64bd697a92367c8464c073a42e4d142a9a15f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-17 00:54:45 +00:00
..
android Merge remote-tracking branch 'origin/5.3' into dev 2014-08-04 09:51:36 +02:00
data Implement a more direct headersclean check 2015-04-17 00:54:45 +00:00
mac qmake: Expose iOS/OS X SDK platform path as QMAKE_MAC_SDK_PLATFORM_PATH 2015-03-06 19:01:42 +00:00
qpa
unix Fix separate_debug_info silent builds 2015-03-13 23:26:54 +00:00
win32 Merge remote-tracking branch 'origin/5.4' into 5.5 2015-04-15 09:09:24 +02:00
winrt qmake winrt package_manifest: Abort when uuidgen is not found 2015-03-12 09:55:29 +00:00
build_pass.prf
c++11.prf
c++14.prf Add support for CONFIG += c++14 2014-07-20 04:32:44 +02:00
cmake_functions.prf
configure.prf Merge remote-tracking branch 'origin/5.3' into 5.4 2014-10-28 18:21:45 +01:00
create_cmake.prf cmake: Generate INTERFACE targets for include-only modules. 2015-04-15 11:11:51 +00:00
ctest_testcase.prf
ctest_testcase_common.prf cmake: Generate INTERFACE targets for include-only modules. 2015-04-15 11:11:51 +00:00
ctest_testcase_installed.prf
dbusadaptors.prf
dbuscommon.pri
dbusinterfaces.prf
declarative_debug.prf
default_post.prf make -force-debug-info work for objective C 2014-09-26 15:35:57 +02:00
default_pre.prf
designer_defines.prf
device_config.prf avoid that CROSS_COMPILE affects host builds 2014-08-01 14:36:51 +02:00
egl.prf
exceptions.prf
exceptions_off.prf
exclusive_builds.prf
exclusive_builds_post.prf
gcov.prf
include_source_dir.prf
incredibuild_xge.prf
java.prf actually use DIRLIST_SEPARATOR 2014-10-01 10:56:13 +02:00
lex.prf
link_ltcg.prf Clean up ltcg.prf with variables, including a new static mode 2015-01-11 03:41:48 +01:00
link_pkgconfig.prf
ltcg.prf Clean up ltcg.prf with variables, including a new static mode 2015-01-11 03:41:48 +01:00
moc.prf
no_debug_info.prf Make no_debug_info also strip out -gstabs 2014-12-05 14:51:33 +01:00
precompile_header.prf
qfeatures.prf
qlalr.prf
qml1_module.prf
qml1_plugin.prf
qml_debug.prf
qml_module.prf copy qml files only once in debug-and-release builds 2014-09-17 11:40:04 +02:00
qml_plugin.prf restore qt4's qtLibraryTarget() behavior 2015-03-05 12:52:33 +00:00
qmltestcase.prf
qt.prf qmake: Rework dll deployment 2015-04-07 12:55:24 +00:00
qt_android_deps.prf
qt_app.prf
qt_build_config.prf Revert "Build Qt for OS X and iOS with relative rpath" 2014-11-17 20:03:01 +01:00
qt_build_paths.prf
qt_common.prf make the installed meta files play nicely with sysroots 2015-02-05 14:26:44 +00:00
qt_config.prf support spaces in build and install dirs 2015-02-17 18:28:00 +00:00
qt_docs.prf
qt_docs_targets.prf
qt_example_installs.prf
qt_functions.prf Merge remote-tracking branch 'origin/5.4' into 5.5 2015-03-31 10:03:31 +02:00
qt_helper_lib.prf restore qt4's qtLibraryTarget() behavior 2015-03-05 12:52:33 +00:00
qt_installs.prf
qt_module.prf Implement a more direct headersclean check 2015-04-17 00:54:45 +00:00
qt_module_headers.prf Implement a more direct headersclean check 2015-04-17 00:54:45 +00:00
qt_module_pris.prf make it possible to suppress the creation of a private module 2015-03-27 13:29:45 +00:00
qt_parts.prf
qt_plugin.prf restore qt4's qtLibraryTarget() behavior 2015-03-05 12:52:33 +00:00
qt_targets.prf Update copyright headers 2015-02-11 06:49:51 +00:00
qt_tool.prf
resolve_config.prf Don't make Info.plist for debug framework bundles 2014-10-01 10:56:37 +02:00
resolve_target.prf
resources.prf rcc: Change two-pass feature from opt-out to opt-in 2014-11-15 08:47:10 +01:00
sanitizer.prf Add support for gcc/clang's sanitize features 2014-10-02 19:45:00 +02:00
silent.prf
simd.prf Fix leaking ISA extensions in LTCG builds 2015-03-04 16:45:05 +00:00
spec_post.prf centralize setup of shell-related variables in spec_post.prf 2015-03-06 19:08:40 +00:00
spec_pre.prf
static_runtime.prf Windows: Add -static-runtime configure option 2015-03-11 09:26:37 +00:00
testcase.prf Only run tests for the default exclusive builds target 2015-03-12 10:11:35 +00:00
testcase_targets.prf
testcocoon.prf
testlib_defines.prf support spaces in build and install dirs 2015-02-17 18:28:00 +00:00
uic.prf
use_c_linker.prf
vxworks.prf
warn_off.prf
warn_on.prf
wayland-scanner.prf Fix installation of private headers generated by wayland-scanner 2014-06-23 10:40:21 +02:00
xctest.prf testlib: Don't limit linking to XCTest to Xcode projects 2015-03-30 13:26:58 +00:00
yacc.prf