qt5base-lts/mkspecs/features
Tor Arne Vestbø 9ff1310af5 Distinguish between Objective-C and Objective-C++ sources
Instead of lumping both Objective-C (.m) and Objective-C++ (.mm) sources
into the same pile, passing them on to the same compiler as for C++ (CXX),
with the C++ flags (CXXFLAGS), we follow Apple's lead and treat them as
variants of the C and C++ languages separately, so that Objective-C
sources are built with CC and with CFLAGS, and Objective-C++ sources
with CXX, and CXXFLAGS.

This lets us remove a lot of duplicated flags and definitions from the
QMAKE_OBJECTIVE_CFLAGS variable, which in 99% of the cases just matched
the C++ equivalent. The remaining Objective-C/C++ flags are added to
CFLAGS/CXXFLAGS, as the compiler will just ignore them when running in
C/C++ mode. This matches Xcode, which also doesn't have a separate build
setting for Objective-C/C++ flags.

The Makefile qmake generator has been rewritten to support Objective-C/C++
fully, by not assuming that we're just iterating over the C and C++
extensions when dealing with compilation rules, precompiled headers, etc.
There's some duplicated logic in this code, as inherent by qmake's already
duplicated code paths, but this can be cleaned up when C++11 support is
mandatory and we can use lambda functions.

Task-number: QTBUG-36575
Change-Id: I4f06576d5f49e939333a2e03d965da54119e5e31
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-10-09 15:15:17 +00:00
..
android Merge remote-tracking branch 'origin/5.3' into dev 2014-08-04 09:51:36 +02:00
data cmake: Don't mark header-only frameworks with the FRAMEWORK property. 2015-04-27 13:52:53 +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 Remove unused font deployment feature 2015-09-30 04:57:29 +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.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 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 Distinguish between Objective-C and Objective-C++ sources 2015-10-09 15:15:17 +00:00
default_pre.prf Run license checker in qmake 2015-05-27 10:23:10 +00:00
designer_defines.prf dispose of library-bound feature files 2012-06-19 16:39:52 +02:00
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 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 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 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 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 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 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 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 sanitize qt rpath handling, in particular on mac 2015-09-17 16:36:12 +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 fix quoting and path separators in qtPrepareTool() 2014-05-23 11:39:25 +02:00
qt.prf remove now superfluous QMAKE_*_VERSION_OVERRIDEs 2015-10-02 14:01:30 +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 Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
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 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 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 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 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