qt5base-lts/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 Hide Harfbuzz from the outer world 2013-03-13 14:46:26 +01:00
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 Enable C++11 on OSX when using Clang 2013-04-05 14:23:23 +02:00
c++14.prf Add support for CONFIG += c++14 2014-07-20 04:32:44 +02:00
cmake_functions.prf Remove leading '/' from target paths. 2013-11-27 08:24:50 +01:00
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_common.prf cmake: Generate INTERFACE targets for include-only modules. 2015-04-15 11:11:51 +00:00
ctest_testcase_installed.prf Only run the cmake test in the install location if not already done. 2013-07-15 21:56:51 +02:00
ctest_testcase.prf Always use forward slashes in paths passed to cmake. 2013-07-10 13:05:01 +02:00
dbusadaptors.prf de-duplicate dbusadaptors.prf vs. dbusinterfaces.prf 2012-08-04 00:52:38 +02:00
dbuscommon.pri dbuscommon.pri: Fix source file dependency 2013-10-30 14:50:02 +01:00
dbusinterfaces.prf de-duplicate dbusadaptors.prf vs. dbusinterfaces.prf 2012-08-04 00:52:38 +02:00
declarative_debug.prf Rename quick1_debug back to declarative_debug 2012-10-04 03:03:00 +02:00
default_post.prf make -force-debug-info work for objective C 2014-09-26 15:35:57 +02:00
default_pre.prf remove some unnecessary CONFIG additions 2012-12-17 14:08:17 +01:00
designer_defines.prf dispose of library-bound feature files 2012-06-19 16:39:52 +02:00
device_config.prf avoid that CROSS_COMPILE affects host builds 2014-08-01 14:36:51 +02:00
egl.prf purge vestiges of opengl es 1 support 2014-04-04 19:32:21 +02:00
exceptions_off.prf turn off exceptions by default where they aren't required 2012-05-17 05:14:26 +02:00
exceptions.prf turn off exceptions by default where they aren't required 2012-05-17 05:14:26 +02:00
exclusive_builds_post.prf Rewrite qmake's exclusive-build feature 2013-10-25 20:50:51 +02:00
exclusive_builds.prf Rewrite qmake's exclusive-build feature 2013-10-25 20:50:51 +02:00
gcov.prf Integrate gcov support into Qt build system. 2013-08-07 13:38:07 +02:00
include_source_dir.prf
incredibuild_xge.prf untangle use of system vs. shell path(-list) semantics 2014-04-30 16:56:54 +02:00
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 make the pkg-config error message more precise 2014-01-07 19:45:15 +01:00
ltcg.prf Clean up ltcg.prf with variables, including a new static mode 2015-01-11 03:41:48 +01:00
moc.prf Fix compilation when including files created in shadow dirs 2014-02-10 20:41:22 +01:00
no_debug_info.prf Make no_debug_info also strip out -gstabs 2014-12-05 14:51:33 +01:00
precompile_header.prf Fix build with precompile headers 2014-01-14 10:38:29 +01:00
qfeatures.prf export QT_NO_<foo> equivalents to the build system 2013-10-31 19:49:15 +01:00
qlalr.prf introduce qlalr feature 2014-01-20 09:26:54 +01:00
qml1_module.prf mark a bunch of features as internal 2012-12-12 21:48:02 +01:00
qml1_plugin.prf mark a bunch of features as internal 2012-12-12 21:48:02 +01:00
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 Distinguish between 'mac' and 'macx' qmake scopes 2013-03-05 20:59:45 +01:00
qt_android_deps.prf Android: Allow modules to specify permissions/features 2013-11-07 16:37:37 +01:00
qt_app.prf Strip bootstrapped binaries of unused sections 2014-05-19 19:33:15 +02:00
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 reshuffle path setup 2013-06-10 21:12:24 +02:00
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_targets.prf mark a bunch of features as internal 2012-12-12 21:48:02 +01:00
qt_docs.prf pass (some) index dirs also during -prepare phase 2014-06-05 17:11:42 +02:00
qt_example_installs.prf clear OBJECTIVE_SOURCES as well 2014-01-20 14:58:48 +01:00
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 install .lib files for static libs again 2014-06-16 12:42:25 +02: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_module.prf Implement a more direct headersclean check 2015-04-17 00:54:45 +00:00
qt_parts.prf iOS: Enable building of basic tests 2014-01-22 12:35:17 +01:00
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 fix quoting and path separators in qtPrepareTool() 2014-05-23 11:39:25 +02:00
qt.prf qmake: Rework dll deployment 2015-04-07 12:55:24 +00:00
resolve_config.prf Don't make Info.plist for debug framework bundles 2014-10-01 10:56:37 +02:00
resolve_target.prf Rewrite qmake's exclusive-build feature 2013-10-25 20:50:51 +02:00
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 add some docu about the project loading sequence 2012-12-13 09:10:45 +01:00
static_runtime.prf Windows: Add -static-runtime configure option 2015-03-11 09:26:37 +00:00
testcase_targets.prf factor out testcase_targets.prf 2012-12-03 15:56:28 +01:00
testcase.prf Only run tests for the default exclusive builds target 2015-03-12 10:11:35 +00:00
testcocoon.prf fix host vs. makefile directory separator mess 2012-07-28 00:09:45 +02:00
testlib_defines.prf support spaces in build and install dirs 2015-02-17 18:28:00 +00:00
uic.prf fix rcc & uic .depend_commands 2013-06-15 21:39:34 +02:00
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