qt5base-lts/mkspecs/features
Thiago Macieira fff3101bc6 Place classes from private headers in the Qt_5_PRIVATE_API ELF version
This way, it's possible to tell which applications and libraries depend
on the Qt private API and of which Qt library. Linux distributions can
use this information to decide which applications need to be recompiled
every time Qt itself is rebuilt.

This is done by scanning all class and struct definitions in the private
headers (we've already got the list from syncqt). I opted to add a new
script instead of modifying syncqt because then this can run in parallel
with the rest of the compilation, as opposed to during qmake
time. Another advantage is that it catches modifications to the headers
in between qmake executions.

Since this is already Unix specific, it should be no problem to use Perl.

This solution is limited to use of non-inline symbols of classes
declared in private headers. It will not catch free variables (such as
qsimd_p.h's qt_cpu_features), use of inlined functions or just plain use
of a class/struct for accessing its data members. However, this is
already better than nothing and should help Linux distributions quite a
lot. And there's no way to catch the latter issue anyway.

Change-Id: I049a653beeb5454c9539ffff13e3fff36400ebbd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-10-20 19:19:34 +00:00
..
android Merge remote-tracking branch 'origin/5.3' into dev 2014-08-04 09:51:36 +02:00
data Place classes from private headers in the Qt_5_PRIVATE_API ELF version 2015-10-20 19:19:34 +00:00
mac Distinguish between Objective-C and Objective-C++ sources 2015-10-09 15:15:17 +00:00
qpa Hide Harfbuzz from the outer world 2013-03-13 14:46:26 +01:00
unix Distinguish between Objective-C and Objective-C++ sources 2015-10-09 15:15:17 +00:00
win32 Merge remote-tracking branch 'origin/5.4' into 5.5 2015-04-15 09:09:24 +02:00
winrt winrt: Avoid empty <Dependencies> section in manifest files 2015-10-20 15:01:45 +00:00
build_pass.prf
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 don't overengineer DESTDIR calculation 2015-04-23 09:49:23 +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
dbuscommon.pri dbuscommon.pri: Fix source file dependency 2013-10-30 14:50:02 +01:00
dbusinterfaces.prf
declarative_debug.prf
default_post.prf Distinguish between Objective-C and Objective-C++ sources 2015-10-09 15:15:17 +00:00
default_pre.prf Turn C++11 on by default if the compiler supports C++11 2015-10-16 07:25:21 +00:00
designer_defines.prf
device_config.prf Fix QMAKE_CXX/CROSS_COMPILE verification with ccache 2015-09-14 09:42:25 +00:00
egl.prf purge vestiges of opengl es 1 support 2014-04-04 19:32:21 +02:00
exceptions_off.prf
exceptions.prf
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 Distinguish between Objective-C and Objective-C++ sources 2015-10-09 15:15:17 +00: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 Use QMAKE_MOD_LEX/QMAKE_MOD_YACC in lex/yacc features 2015-09-24 13:49:29 +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 Windows: Change the mocinclude extension to .opt 2015-09-29 09:16:00 +00:00
no_debug_info.prf Make no_debug_info also strip out -gstabs 2014-12-05 14:51:33 +01: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
qlalr.prf introduce qlalr feature 2014-01-20 09:26:54 +01:00
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 embed a VERSIONINFO resource into QML plugins 2015-06-05 13:08:41 +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 sanitize qt rpath handling, in particular on mac 2015-09-17 16:36:12 +00:00
qt_build_config.prf Build Qt for OS X and iOS with relative rpath. 2015-05-13 04:09:47 +00:00
qt_build_paths.prf reshuffle path setup 2013-06-10 21:12:24 +02:00
qt_common.prf Update the list of compilers we are free of warnings with 2015-09-22 06:21:20 +00:00
qt_config.prf support spaces in build and install dirs 2015-02-17 18:28:00 +00:00
qt_docs_targets.prf
qt_docs.prf pass (some) index dirs also during -prepare phase 2014-06-05 17:11:42 +02:00
qt_example_installs.prf sanitize qt rpath handling, in particular on mac 2015-09-17 16:36:12 +00:00
qt_functions.prf inline qtAddModules() and dependencies 2015-09-17 16:36:23 +00: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 fix distclean targets 2015-04-23 19:16:57 +00:00
qt_module_pris.prf simplify qt rpath code 2015-09-17 16:36:08 +00:00
qt_module.prf Place classes from private headers in the Qt_5_PRIVATE_API ELF version 2015-10-20 19:19:34 +00:00
qt_parts.prf fix distclean targets 2015-04-23 19:16:57 +00:00
qt_plugin.prf sanitize qt rpath handling, in particular on mac 2015-09-17 16:36:12 +00:00
qt_targets.prf Update copyright headers 2015-02-11 06:49:51 +00:00
qt_tool.prf tools: use QStringBuilder 2015-10-15 22:26:28 +00:00
qt.prf don't try to use relative rpaths on platforms that don't support it 2015-10-20 17:18:29 +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 unify handling of library prefixes and extensions 2015-10-01 16:19:30 +00:00
resources.prf Allow RESOURCES to contain standalone files and collections of files 2015-05-18 15:49:56 +00: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 fix installing unix dll symlinks on windows hosts 2015-06-01 13:26:57 +00:00
spec_pre.prf Distinguish between Objective-C and Objective-C++ sources 2015-10-09 15:15:17 +00:00
static_runtime.prf Windows: Add -static-runtime configure option 2015-03-11 09:26:37 +00:00
testcase_targets.prf
testcase.prf Only run tests for the default exclusive builds target 2015-03-12 10:11:35 +00:00
testcocoon.prf
testlib_defines.prf Fixed compilation of auto tests using vc(x)proj files 2015-05-22 14:13: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 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 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 Use QMAKE_MOD_LEX/QMAKE_MOD_YACC in lex/yacc features 2015-09-24 13:49:29 +00:00