qt5base-lts/mkspecs/features
Lars Knoll 60e5a1c8ef Modularize the new configure system (infrastructure part)
This change implements the required infrastructure to modularize the new
configuration system.

This requires a hierarchy of configuration files, both for handling
multiple repositories and for individual modules inside the same
repository.

When configuring, they all need to get loaded first, as command line
processing needs to know about all possible command line options.

When the command line has been processed, the individual configuration
files need to get processed one after the other and independently from
each other.

Configure is now automatically invoked when building the a project
tree's "root" project; this works with both modular and top-level builds
of Qt (the latter with an according change in the super repo). As an
immediate consequence, the -skip option moves to the super repo with a
different implementation, as configuration is now done after the repo
list is determined. The option belongs there anyway.

This commit also adds an optional testDir entry to the json file. Like
this, we can still have all configure tests in qtbase/config.tests and
the configuration file in, e.g., corelib can reference those.

The files section can now be left out as long as a 'module' entry is
present, specifying the module name. The names of the files to generate
can then be deduced from that name. We still need to be able to specify
names directly for the global configuration files.

qtConfig() now also queries features which are module-specific. As it is
sometimes necessary to query the configuration of modules which should
not be actually linked (and cannot in the case of subdirs projects), the
new variable QT_FOR_CONFIG which allows specifying configuration-only
dependencies is introduced.

Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Change-Id: Id1b518a3aa34044748b87fb8fac14d79653f6b18
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-09-10 14:04:01 +00:00
..
android make use of silent error() emission 2016-08-08 09:48:41 +00:00
data Merge remote-tracking branch 'origin/5.6' into dev 2016-02-02 15:57:44 +01:00
mac Make DEVICE_ARCHS and SIMULATOR_ARCHS variables platform independent 2016-09-05 15:24:50 +00:00
qpa Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
uikit Make TARGETED_DEVICE_FAMILY variable platform independent 2016-09-05 15:24:54 +00:00
unix Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
win32 Don't define QT_OPENGL_ES_2* in opengl.prf 2016-08-19 04:28:40 +00:00
winrt Merge remote-tracking branch 'origin/5.7' into 5.8 2016-08-29 15:30:17 +02:00
benchmark.prf mkspecs: Add a benchmark "feature". 2016-03-02 21:24:54 +00:00
build_pass.prf Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
cmake_functions.prf Remove leading '/' from target paths. 2013-11-27 08:24:50 +01:00
configure_base.prf Modularize the new configure system (infrastructure part) 2016-09-10 14:04:01 +00:00
configure.prf Modularize the new configure system (infrastructure part) 2016-09-10 14:04:01 +00:00
create_cmake.prf Get rid of the qt_no_framework setting in the CONFIG variable 2016-07-05 15:48:58 +00:00
ctest_testcase_common.prf Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +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 don't override user-provided dependencies for our extra compilers 2016-06-23 13:25:22 +00: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 Add method to encapsulate dependencies to external libraries 2016-08-19 04:26:26 +00:00
default_pre.prf fix up detection code for compiler defaulting to c++98 2016-08-19 09:25:48 +00:00
designer_defines.prf dispose of library-bound feature files 2012-06-19 16:39:52 +02:00
device_config.prf configure: Separate host and build platform. 2015-10-30 13:14:51 +00:00
egl.prf Adjust egl config.test to pass sysrooted libs 2016-04-08 23:37:07 +00: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 Add qgltf support to qmake 2015-10-26 16:29:25 +00:00
file_copies.prf generalize references to exclusive builds 2016-07-13 14:27:07 +00:00
gcov.prf Distinguish between Objective-C and Objective-C++ sources 2015-10-09 15:15:17 +00:00
include_source_dir.prf Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
incredibuild_xge.prf untangle use of system vs. shell path(-list) semantics 2014-04-30 16:56:54 +02:00
java.prf make use of silent error() emission 2016-08-08 09:48:41 +00:00
lex.prf Restore the missing -P option for lex handling 2016-05-10 13:16:37 +00:00
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 Remove simulator_and_device handling for the Makefile generator 2016-09-03 09:47:56 +00:00
no_debug_info.prf qmake: Remove Windows CE support. 2016-03-10 13:33:44 +00:00
plugin_bundle.prf Ensure that CONFIG += plugin_bundle will create Mach-O bundles on OSX/iOS 2015-05-24 11:46:14 +00: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
qgltf.prf don't override user-provided dependencies for our extra compilers 2016-06-23 13:25:22 +00:00
qlalr.prf don't override user-provided dependencies for our extra compilers 2016-06-23 13:25:22 +00: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 Rename the 'declarative debug support' to 'qml debug support' 2012-03-31 16:33:04 +02:00
qml_module.prf Fix missing plugins.qmltypes in static builds 2016-08-17 15:45:51 +00:00
qml_plugin.prf Merge remote-tracking branch 'origin/5.7' into 5.8 2016-08-29 15:30:17 +02:00
qmltestcase.prf Distinguish between 'mac' and 'macx' qmake scopes 2013-03-05 20:59:45 +01:00
qt_android_deps.prf make use of silent error() emission 2016-08-08 09:48:41 +00:00
qt_app.prf Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
qt_build_config.prf Modularize the new configure system (infrastructure part) 2016-09-10 14:04:01 +00:00
qt_build_extra.prf Merge remote-tracking branch 'origin/5.7' into 5.8 2016-08-29 15:30:17 +02:00
qt_build_paths.prf make force_independent live up to its name 2015-11-30 14:26:23 +00:00
qt_clear_installs.prf disable install targets for non-prefix builds 2016-01-12 15:16:37 +00:00
qt_common.prf Merge remote-tracking branch 'origin/5.7' into 5.8 2016-09-05 18:47:27 +02:00
qt_config.prf support spaces in build and install dirs 2015-02-17 18:28:00 +00:00
qt_configure.prf Modularize the new configure system (infrastructure part) 2016-09-10 14:04:01 +00:00
qt_docs_targets.prf generalize references to exclusive builds 2016-07-13 14:27:07 +00:00
qt_docs.prf Automatically generate code attribution documentation 2016-08-10 06:11:18 +00:00
qt_example_installs.prf complain about examples which don't install themselves properly 2016-05-18 09:07:32 +00:00
qt_functions.prf Modularize the new configure system (infrastructure part) 2016-09-10 14:04:01 +00:00
qt_helper_lib.prf Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
qt_installs.prf install .lib files for static libs again 2014-06-16 12:42:25 +02:00
qt_module_headers.prf Modularize the new configure system (infrastructure part) 2016-09-10 14:04:01 +00:00
qt_module_pris.prf Modularize the new configure system (infrastructure part) 2016-09-10 14:04:01 +00:00
qt_module.prf Remove simulator_and_device handling for the Makefile generator 2016-09-03 09:47:56 +00:00
qt_parts.prf Modularize the new configure system (infrastructure part) 2016-09-10 14:04:01 +00:00
qt_plugin.prf Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
qt_targets.prf Update copyright headers 2015-02-11 06:49:51 +00:00
qt_tool.prf make use of silent error() emission 2016-08-08 09:48:41 +00:00
qt.prf Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
resolve_config.prf Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
resolve_target.prf Fix separate_debug_info with no_plugin_name_prefix 2016-04-14 21:29:00 +00:00
resources.prf make use of silent error() emission 2016-08-08 09:48:41 +00:00
sanitizer.prf Add support for gcc/clang's sanitize features 2014-10-02 19:45:00 +02:00
silent.prf Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
simd.prf configure: Add support for detecting AVX512 instructions 2015-09-25 20:29:22 +00:00
spec_post.prf Add back osx compatibility check in QMAKE_PLATFORM. 2016-06-16 22:44:15 +00:00
spec_pre.prf add support for copying arbitrary files 2016-04-27 21:08:40 +00:00
static_runtime.prf Windows: Add -static-runtime configure option 2015-03-11 09:26:37 +00:00
testcase_targets.prf mkspecs: Add a benchmark "feature". 2016-03-02 21:24:54 +00:00
testcase.prf Add BLACKLIST to builtin_testdata 2016-09-07 04:54:16 +00:00
testcocoon.prf fix host vs. makefile directory separator mess 2012-07-28 00:09:45 +02:00
testlib_defines.prf Fixed compilation of auto tests using vc(x)proj files 2015-05-22 14:13:00 +00:00
uic.prf don't override user-provided dependencies for our extra compilers 2016-06-23 13:25:22 +00:00
use_c_linker.prf Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
vxworks.prf Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
warn_off.prf Distinguish between Objective-C and Objective-C++ sources 2015-10-09 15:15:17 +00:00
warn_on.prf Distinguish between Objective-C and Objective-C++ sources 2015-10-09 15:15:17 +00:00
wayland-scanner.prf don't override user-provided dependencies for our extra compilers 2016-06-23 13:25:22 +00:00
xctest.prf testlib: Don't limit linking to XCTest to Xcode projects 2015-03-30 13:26:58 +00:00
yacc.prf don't override user-provided dependencies for our extra compilers 2016-06-23 13:25:22 +00:00