qt5base-lts/mkspecs/features
Tor Arne Vestbø c760d2dbfd Rewrite qmake's exclusive-build feature
We used to compute the default exclusive build directory, eg 'debug', at
configure time, and then set OBJECTS_DIR, MOC_DIR, etc to include this
hard-coded default exclusive build directory. We then had to run a post-
process step where we replaced the 'debug' part with the current actual
exclusive build pass, eg 'release', resulting in long-standing bugs such
as QTBUG-491 where we end up replacing parts of the build output dirs
that were not part of the original exclusive build directory.

We now set the OBJECTS_DIR, MOC_DIR, etc defaults in configure like
before, but they do not include any exclusive-build information. The
exclusive build directory is handled as a separate step in default_post
where we adjust all entries in QMAKE_DIR_REPLACE to be exclusive
directories.

For backwards compatibility the new exclusive build behavior is only
enabled for variables named by QMAKE_DIR_REPLACE_SANE, which for Qt
itself applies globally to everything but DESTDIR, and for libs and
tools also applies to DESTDIR. The reason for leaving out DESTDIR in
the general case is because many tests and examples assume the old
behavior for DESTDIR. A side effect of including all the other
variables for Qt libs and tools is that the PCH output dir will be
uniformly set, which has been an issue on Windows in the past.

The addExclusiveBuilds function now takes two or more arguments,
each argument being the key for an exclusive build, which can be
customized eg. using $$key.{name,target,dir_affix}. Passing more
than two arguments results in three/four/etc-way exclusive builds,
eg debug/release/profile. Exclusive builds can also be combined, eg
static/shared + debug/release by making two calls to the function.

We also handle individual targets of combined exclusive builds,
eg static/shared + debug/release, meaning it is possible to run
'make debug' to build both static-debug and shared-debug.

Task-number: QTBUG-491
Change-Id: I02841dbbd065ac07d413dfb45cfcfe4c013674ac
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-25 20:50:51 +02:00
..
android Android: Remove support for QMAKE_SUPPORTED_ORIENTATIONS 2013-10-18 20:04:24 +02:00
data CMake: Ensure that the EXECUTABLE_COMPILE_FLAGS list exists 2013-10-24 20:20:59 +02:00
mac xcode: Set QMAKE_XCODE_LIBRARY_SUFFIX from default_post 2013-10-25 20:50:51 +02:00
qpa Hide Harfbuzz from the outer world 2013-03-13 14:46:26 +01:00
unix don't load wayland-scanner for all projects on linux 2013-10-22 12:15:57 +02:00
win32 ANGLE: Fix static build. 2013-02-25 10:34:11 +01:00
build_pass.prf Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
c++11.prf Enable C++11 on OSX when using Clang 2013-04-05 14:23:23 +02:00
cmake_functions.prf Move the cmakeRelativePath function to cmake_functions. 2013-07-24 11:54:18 +02:00
configure.prf iOS: Wrap Xcode projects in Makefile for convenience and subdirs support 2013-08-13 01:38:54 +02:00
create_cmake.prf make better use of $$MODULE_PLUGIN_TYPES 2013-10-24 20:20:59 +02:00
ctest_testcase_common.prf Use the compilers used by Qt for the CMake tests. 2013-07-19 12:32:14 +02: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 Give the extra compiler a unique name for the vcproj generation 2013-08-20 06:35:04 +02: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 Rewrite qmake's exclusive-build feature 2013-10-25 20:50:51 +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 add some docu about the project loading sequence 2012-12-13 09:10:45 +01:00
egl.prf use pkg-config supplied CFLAGS when building with EGL 2013-10-16 17:10:15 +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 Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
incredibuild_xge.prf remove pointless conditionals+branches 2012-09-19 19:54:44 +02:00
java.prf Android: Build against new build tools revisions 2013-10-04 14:46:16 +02:00
lex.prf Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
link_pkgconfig.prf add support for PKGCONFIG_PRIVATE 2012-08-07 16:40:07 +02:00
moc.prf Fix whitespace issues in *.prf 2013-03-22 19:52:26 +01:00
no_debug_info.prf Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
opengles1.prf Add a new qmake feature to support OpenGL ES 1 apps 2012-02-28 22:35:24 +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 Rename the 'declarative debug support' to 'qml debug support' 2012-03-31 16:33:04 +02:00
qml_module.prf broaden the effect of CONFIG+=force_independent somewhat 2013-03-15 18:02:09 +01:00
qml_plugin.prf qml_plugin.prf: moc plugin with -Muri=$$TARGETPATH 2013-10-11 21:01:27 +02:00
qmltestcase.prf Distinguish between 'mac' and 'macx' qmake scopes 2013-03-05 20:59:45 +01:00
qt_android_deps.prf use correct variable for library base path 2013-06-10 21:12:20 +02:00
qt_app.prf split qt_app.prf out of qt_tool.prf 2013-04-26 19:15:25 +02:00
qt_build_config.prf Rewrite qmake's exclusive-build feature 2013-10-25 20:50:51 +02:00
qt_build_paths.prf reshuffle path setup 2013-06-10 21:12:24 +02:00
qt_common.prf Rewrite qmake's exclusive-build feature 2013-10-25 20:50:51 +02:00
qt_config.prf de-duplicate QT_MODULES 2013-10-23 13:43:27 +02:00
qt_docs_targets.prf mark a bunch of features as internal 2012-12-12 21:48:02 +01:00
qt_docs.prf Merge branch 'stable' into dev 2013-07-11 16:42:01 +02:00
qt_example_installs.prf add -compile-examples configure option 2013-05-26 10:09:58 +02:00
qt_functions.prf support cleanly querying private modules in qtHaveModule() 2013-10-25 14:51:30 +02:00
qt_headersclean.prf headersclean: process private modules correctly 2013-07-03 15:31:13 +02:00
qt_installs.prf rewrite handling of private modules 2013-10-24 20:20:59 +02:00
qt_module_headers.prf reshuffle path setup 2013-06-10 21:12:24 +02:00
qt_module_pris.prf make better use of $$MODULE_PLUGIN_TYPES 2013-10-24 20:20:59 +02:00
qt_module.prf rewrite handling of private modules 2013-10-24 20:20:59 +02:00
qt_parts.prf make src/ subdir optional 2013-04-26 19:15:21 +02:00
qt_plugin.prf Teach CMake about Qt 5 plugins. 2013-09-10 14:38:18 +02:00
qt_targets.prf Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
qt_tool.prf rewrite handling of private modules 2013-10-24 20:20:59 +02:00
qt.prf iOS (OSX): rework how to bundle QML import folders 2013-10-25 12:32:31 +02:00
resolve_config.prf Rewrite qmake's exclusive-build feature 2013-10-25 20:50:51 +02:00
resolve_target.prf Rewrite qmake's exclusive-build feature 2013-10-25 20:50:51 +02:00
resources.prf fix rcc & uic .depend_commands 2013-06-15 21:39:34 +02:00
silent.prf Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
simd.prf WinRT: Basic global support 2013-09-20 13:53:59 +02:00
spec_post.prf Add osx and darwin scopes to qmake. 2013-07-11 18:26:45 +02:00
spec_pre.prf add some docu about the project loading sequence 2012-12-13 09:10:45 +01:00
testcase_targets.prf factor out testcase_targets.prf 2012-12-03 15:56:28 +01:00
testcase.prf qmake: Centralize TARGET sanitization in default_post.prf 2013-10-11 18:47:27 +02:00
testcocoon.prf fix host vs. makefile directory separator mess 2012-07-28 00:09:45 +02:00
testlib_defines.prf auto-generate module pris 2012-06-19 16:40:06 +02:00
uic.prf fix rcc & uic .depend_commands 2013-06-15 21:39:34 +02: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 Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
warn_on.prf Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
wayland-scanner.prf Fix wayland-scanner to work with CONFIG+=silent 2013-07-20 15:54:27 +02:00
yacc.prf Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00