qt5base-lts/mkspecs
hjk 5395180fcb Make RCC handle bigger binaries
Traditionally, RCC in "C mode" was meant to bundle small resources into
a binary, like help texts or an occasional icon. RCC produces a .cpp
file containing the actual data in a char array which is then passed
to the compiler and linker as a normal source file. Larger resources
should be compiled in RCC's binary mode and loaded at run time.

Current Qt Quick use tries to deploy large hunks of data in "C mode",
causing heavy compiler/system load.

This patch works around the issue by splitting the process into
three parts:

1. Create a C++ skeleton, as usual, but use a placeholder array
   with "easily compilable" (mostly NULs) data instead.
2. Compile the skeleton file.
3. Replace the placeholder data with the real binary data.

time (qmake5 ; make clean ; make) takes 1.3 s real time for a
100 MB resource here, and there is still room for improving patching
performance if really needed.

Change-Id: I10a1645fd86a95a7d5663c89e19b05cb3b43ed1b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-06 15:41:00 +02:00
..
aix-g++ Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
aix-g++-64 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
aix-xlc Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
aix-xlc-64 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
android-g++ Merge remote-tracking branch 'origin/release' into stable 2014-05-01 13:08:42 +02:00
blackberry-armle-v7-qcc Rename QNX arm mkspecs to be aligned with SDP structure 2014-04-04 10:53:38 +02:00
blackberry-armv7le-qcc Rename BlackBerry arm mkspecs to be aligned with NDK structure 2013-10-23 19:09:54 +02:00
blackberry-x86-qcc BlackBerry,QNX: Switch to QMAKE_PLATFORM from CONFIG 2014-04-03 14:19:15 +02:00
common Merge remote-tracking branch 'origin/stable' into dev 2014-05-22 07:46:17 +02:00
cygwin-g++ expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
darwin-g++ expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
devices Merge remote-tracking branch 'origin/stable' into dev 2014-02-17 11:39:16 +01:00
features Make RCC handle bigger binaries 2014-06-06 15:41:00 +02:00
freebsd-g++ Merge remote-tracking branch 'origin/stable' into dev 2014-02-17 11:39:16 +01:00
freebsd-g++46 Remove automated generation of dwarf index 2014-02-16 15:41:30 +01:00
freebsd-icc Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hpux-acc Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hpux-acc-64 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hpux-acc-o64 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hpux-g++ Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hpux-g++-64 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hpuxi-acc-32 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hpuxi-acc-64 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hpuxi-g++-64 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hurd-g++ purge vestiges of opengl es 1 support 2014-04-04 19:32:21 +02:00
irix-cc expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
irix-cc-64 expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
irix-g++ expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
irix-g++-64 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
linux-arm-gnueabi-g++ Remove automated generation of dwarf index 2014-02-16 15:41:30 +01:00
linux-clang expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
linux-clang-libc++ Add mkspec for clang using libc++ on Linux. 2013-12-09 22:23:59 +01:00
linux-cxx expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
linux-g++ Merge remote-tracking branch 'origin/stable' into dev 2014-02-17 11:39:16 +01:00
linux-g++-32 Remove automated generation of dwarf index 2014-02-16 15:41:30 +01:00
linux-g++-64 Remove automated generation of dwarf index 2014-02-16 15:41:30 +01:00
linux-g++-maemo Remove automated generation of dwarf index 2014-02-16 15:41:30 +01:00
linux-icc Make the use of -ffunction-sections more generic in Qt 2014-05-19 19:33:15 +02:00
linux-icc-32 Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
linux-icc-64 Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00
linux-kcc expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
linux-llvm Merge remote-tracking branch 'origin/stable' into dev 2014-02-17 11:39:16 +01:00
linux-lsb-g++ Merge remote-tracking branch 'origin/stable' into dev 2014-02-17 11:39:16 +01:00
linux-pgcc expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
lynxos-g++ expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
macx-clang qmake: Pick up default bundle prefix from Xcode preferences 2013-10-31 12:33:55 +01:00
macx-clang-32 qmake: Pick up default bundle prefix from Xcode preferences 2013-10-31 12:33:55 +01:00
macx-g++ qmake: Pick up default bundle prefix from Xcode preferences 2013-10-31 12:33:55 +01:00
macx-g++40 qmake: Pick up default bundle prefix from Xcode preferences 2013-10-31 12:33:55 +01:00
macx-g++42 qmake: Pick up default bundle prefix from Xcode preferences 2013-10-31 12:33:55 +01:00
macx-g++-32 qmake: Pick up default bundle prefix from Xcode preferences 2013-10-31 12:33:55 +01:00
macx-icc Make the use of -ffunction-sections more generic in Qt 2014-05-19 19:33:15 +02:00
macx-ios-clang Merge remote-tracking branch 'origin/release' into stable 2014-05-03 00:56:41 +02:00
macx-llvm qmake: Pick up default bundle prefix from Xcode preferences 2013-10-31 12:33:55 +01:00
macx-xcode macx-xcode: Change wrapper to write to QMAKESPEC to change mkspec 2013-10-14 12:07:53 +02:00
modules update readme to current reality 2012-01-27 13:55:27 +01:00
netbsd-g++ Merge remote-tracking branch 'origin/stable' into dev 2014-02-17 11:39:16 +01:00
openbsd-g++ Merge remote-tracking branch 'origin/stable' into dev 2014-02-17 11:39:16 +01:00
qnx-armle-v7-qcc QNX: Fix QDir::entryInfoList() 2014-04-14 16:47:51 +02:00
qnx-armv7le-qcc Merge remote-tracking branch 'origin/stable' into dev 2014-04-11 14:36:55 +02:00
qnx-x86-qcc QNX: Fix QDir::entryInfoList() 2014-04-14 16:47:51 +02:00
sco-cc expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
sco-g++ expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
solaris-cc expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
solaris-cc-64 expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
solaris-cc-64-stlport Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00
solaris-cc-stlport Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00
solaris-g++ expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
solaris-g++-64 expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
tru64-cxx expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
tru64-g++ expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
unixware-cc expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
unixware-g++ expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
unsupported purge vestiges of opengl es 1 support 2014-04-04 19:32:21 +02:00
win32-g++ Strip bootstrapped binaries of unused sections 2014-05-19 19:33:15 +02:00
win32-icc Fix building of Qt with icc on Windows 2014-03-06 17:22:55 +01:00
win32-msvc2005 encode the MSVC version in our mkspecs 2014-03-20 10:36:34 +01:00
win32-msvc2008 encode the MSVC version in our mkspecs 2014-03-20 10:36:34 +01:00
win32-msvc2010 encode the MSVC version in our mkspecs 2014-03-20 10:36:34 +01:00
win32-msvc2012 Windows XP target support for MSVC >= 2012 2014-04-03 18:31:45 +02:00
win32-msvc2013 Windows XP target support for MSVC >= 2012 2014-04-03 18:31:45 +02:00
wince60standard-armv4i-msvc2005 Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00
wince60standard-x86-msvc2005 Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00
wince70embedded-armv4i-msvc2008 Remove not supported mkspecs for Windows CE. 2013-08-15 11:37:27 +02:00
wince70embedded-x86-msvc2008 Remove not supported mkspecs for Windows CE. 2013-08-15 11:37:27 +02:00
winphone-arm-msvc2012 winphone: deploy default font files as DirectWrite is not supported 2014-03-25 08:05:21 +01:00
winphone-x86-msvc2012 winphone: deploy default font files as DirectWrite is not supported 2014-03-25 08:05:21 +01:00
winrt-arm-msvc2012 WinRT: Use correct architecture values in manifests and vs 2014-02-07 15:29:53 +01:00
winrt-arm-msvc2013 WinRT: Use correct architecture values in manifests and vs 2014-02-07 15:29:53 +01:00
winrt-x64-msvc2012 WinRT: Use correct architecture values in manifests and vs 2014-02-07 15:29:53 +01:00
winrt-x64-msvc2013 WinRT: Use correct architecture values in manifests and vs 2014-02-07 15:29:53 +01:00
winrt-x86-msvc2012 WinRT: Use correct architecture values in manifests and vs 2014-02-07 15:29:53 +01:00
winrt-x86-msvc2013 WinRT: Use correct architecture values in manifests and vs 2014-02-07 15:29:53 +01:00