qt5base-lts/mkspecs
Jan Arve Saether 780105f906 Merge ANGLE's libEGL and libGLESv2 into QtANGLE
This is needed in order to be able to specify a custom location of
the ANGLE libs, and enables us to perform a LoadLibrary of ANGLE libs
by just having the absolute path to QtANGLE.dll as the argument to
LoadLibrary().

Previously, we had two ANGLE libraries: libEGL and libGLESv2. libEGL hard
linked against libGLESv2.  If we wanted to load libEGL from a custom
location, we couldn't load libEGL by calling LoadLibrary with the absolute
path to libEGL, because libEGL had problems finding libGLESv2.  One
solution to that could have been to call SetDllDirectory() with the path
to the ANGLE libs before calling LoadLibrary("libEGL.dll"). Since the DLL
directory would point to both ANGLE libs, this would ensure that the libGLESv2
was also found.  Unfortunately, this approach is not thread safe
(SetDllDirectory will affect all subsequent LoadLibrary(Ex) from the same
process). Therefore, we chose to merge the two libraries into one to
circumvent the whole problem.

At the same time, this patch also enables loading of two different ANGLE
libraries into the same process at once without renaming them: This was
not possible before because libEGL hard linked to libGLESv2.dll.  When
libGLESv2.dll was already loaded, the second instance of libEGL would
simply link against the already loaded version of libGLESv2.dll.

This behavior is documented in the LoadLibraryEx documentation on MSDN:
"If the string specifies a module name without a path and more than one
loaded module has the same base name and extension, the function returns a
handle to the module that was loaded first."

Change-Id: Ic1d886ba802be72ddcf01235bafaedcef662762e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
2016-10-28 11:02:43 +00:00
..
aix-g++ Updated license headers 2016-01-15 12:25:24 +00:00
aix-g++-64 Updated license headers 2016-01-15 12:25:24 +00:00
aix-xlc Updated license headers 2016-01-15 12:25:24 +00:00
aix-xlc-64 Updated license headers 2016-01-15 12:25:24 +00:00
android-clang Merge remote-tracking branch 'origin/5.7' into 5.8 2016-10-11 07:40:32 +02:00
android-g++ Merge remote-tracking branch 'origin/5.7' into 5.8 2016-10-11 07:40:32 +02:00
common Merge ANGLE's libEGL and libGLESv2 into QtANGLE 2016-10-28 11:02:43 +00:00
cygwin-g++ Updated license headers 2016-01-15 12:25:24 +00:00
darwin-g++ Fix warning about headerpad_max_install_names ignored when using bitcode 2016-08-31 22:42:04 +00:00
devices mkspec: Add cross-compilation support for FreeBSD 2016-10-12 22:04:46 +00:00
features macOS: Don't build auto-tests as application bundles unless explicitly requested 2016-10-23 10:39:56 +00:00
freebsd-clang Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-20 08:00:26 +02:00
freebsd-g++ Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-20 08:00:26 +02:00
haiku-g++ Clean up QT_QPA_DEFAULT_PLATFORM handling 2016-10-05 19:07:30 +00:00
hpux-acc Updated license headers 2016-01-15 12:25:24 +00:00
hpux-acc-64 Updated license headers 2016-01-15 12:25:24 +00:00
hpux-acc-o64 Updated license headers 2016-01-15 12:25:24 +00:00
hpux-g++ Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-23 10:29:37 +02:00
hpux-g++-64 Updated license headers 2016-01-15 12:25:24 +00:00
hpuxi-acc-32 Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-23 10:29:37 +02:00
hpuxi-acc-64 Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-23 10:29:37 +02:00
hpuxi-g++-64 Updated license headers 2016-01-15 12:25:24 +00:00
hurd-g++ Clean up some unused variables in the qmake.conf files 2016-06-23 19:43:04 +00:00
integrity-armv7 Convert the old feature system 2016-09-15 08:24:10 +00:00
integrity-armv7-imx6 Convert the old feature system 2016-09-15 08:24:10 +00:00
integrity-x86 Convert the old feature system 2016-09-15 08:24:10 +00:00
irix-cc Updated license headers 2016-01-15 12:25:24 +00:00
irix-cc-64 Updated license headers 2016-01-15 12:25:24 +00:00
irix-g++ Updated license headers 2016-01-15 12:25:24 +00:00
irix-g++-64 Updated license headers 2016-01-15 12:25:24 +00:00
linux-arm-gnueabi-g++ Updated license headers 2016-01-15 12:25:24 +00:00
linux-clang Updated license headers 2016-01-15 12:25:24 +00:00
linux-clang-libc++ Updated license headers 2016-01-15 12:25:24 +00:00
linux-cxx Updated license headers 2016-01-15 12:25:24 +00:00
linux-g++ Updated license headers 2016-01-15 12:25:24 +00:00
linux-g++-32 Updated license headers 2016-01-15 12:25:24 +00:00
linux-g++-64 Updated license headers 2016-01-15 12:25:24 +00:00
linux-icc Updated license headers 2016-01-15 12:25:24 +00:00
linux-icc-32 Updated license headers 2016-01-15 12:25:24 +00:00
linux-icc-64 Updated license headers 2016-01-15 12:25:24 +00:00
linux-kcc Updated license headers 2016-01-15 12:25:24 +00:00
linux-llvm Updated license headers 2016-01-15 12:25:24 +00:00
linux-lsb-g++ Updated license headers 2016-01-15 12:25:24 +00:00
linux-pgcc Updated license headers 2016-01-15 12:25:24 +00:00
lynxos-g++ Updated license headers 2016-01-15 12:25:24 +00:00
macx-clang Share the multi-arch infrastructure between UIKit and macOS 2016-09-29 21:51:18 +00:00
macx-g++ Share the multi-arch infrastructure between UIKit and macOS 2016-09-29 21:51:18 +00:00
macx-icc Fix warning about headerpad_max_install_names ignored when using bitcode 2016-08-31 22:42:04 +00:00
macx-ios-clang Merge remote-tracking branch 'origin/5.6' into 5.7 2016-10-01 22:15:55 +02:00
macx-tvos-clang Merge remote-tracking branch 'origin/5.8' into dev 2016-09-15 19:47:57 +02:00
macx-watchos-clang Merge remote-tracking branch 'origin/5.8' into dev 2016-09-15 19:47:57 +02:00
macx-xcode Merge remote-tracking branch 'origin/5.6' into 5.7 2016-08-25 16:12:11 +02:00
modules Adjust wiki links to the new redirect 2015-03-04 15:36:12 +00:00
netbsd-g++ Merge remote-tracking branch 'origin/5.6' into 5.7 2016-07-04 15:58:39 +02:00
openbsd-g++ Merge remote-tracking branch 'origin/5.6' into 5.7 2016-07-15 20:47:57 +02:00
qnx-aarch64le-qcc Convert the old feature system 2016-09-15 08:24:10 +00:00
qnx-armle-v7-qcc Convert the old feature system 2016-09-15 08:24:10 +00:00
qnx-x86-64-qcc Convert the old feature system 2016-09-15 08:24:10 +00:00
qnx-x86-qcc Convert the old feature system 2016-09-15 08:24:10 +00:00
sco-cc Updated license headers 2016-01-15 12:25:24 +00:00
sco-g++ Updated license headers 2016-01-15 12:25:24 +00:00
solaris-cc Updated license headers 2016-01-15 12:25:24 +00:00
solaris-cc-64 Updated license headers 2016-01-15 12:25:24 +00:00
solaris-cc-64-stlport Updated license headers 2016-01-15 12:25:24 +00:00
solaris-cc-stlport Updated license headers 2016-01-15 12:25:24 +00:00
solaris-g++ Updated license headers 2016-01-15 12:25:24 +00:00
solaris-g++-64 Updated license headers 2016-01-15 12:25:24 +00:00
tru64-cxx Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-23 10:29:37 +02:00
tru64-g++ Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-23 10:29:37 +02:00
unixware-cc Updated license headers 2016-01-15 12:25:24 +00:00
unixware-g++ Updated license headers 2016-01-15 12:25:24 +00:00
unsupported Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-10 23:27:10 +02:00
win32-clang-msvc2015 Add initial clang-cl support to Qt 2016-02-11 12:54:06 +00:00
win32-g++ Merge ANGLE's libEGL and libGLESv2 into QtANGLE 2016-10-28 11:02:43 +00:00
win32-icc Merge ANGLE's libEGL and libGLESv2 into QtANGLE 2016-10-28 11:02:43 +00:00
win32-msvc2005 Updated license headers 2016-01-15 12:25:24 +00:00
win32-msvc2008 Updated license headers 2016-01-15 12:25:24 +00:00
win32-msvc2010 Updated license headers 2016-01-15 12:25:24 +00:00
win32-msvc2012 Updated license headers 2016-01-15 12:25:24 +00:00
win32-msvc2013 Updated license headers 2016-01-15 12:25:24 +00:00
win32-msvc2015 Updated license headers 2016-01-15 12:25:24 +00:00
winphone-arm-msvc2013 Updated license headers 2016-01-15 12:25:24 +00:00
winphone-x86-msvc2013 Updated license headers 2016-01-15 12:25:24 +00:00
winrt-arm-msvc2013 Updated license headers 2016-01-15 12:25:24 +00:00
winrt-arm-msvc2015 Updated license headers 2016-01-15 12:25:24 +00:00
winrt-x64-msvc2013 Updated license headers 2016-01-15 12:25:24 +00:00
winrt-x64-msvc2015 Updated license headers 2016-01-15 12:25:24 +00:00
winrt-x86-msvc2013 Updated license headers 2016-01-15 12:25:24 +00:00
winrt-x86-msvc2015 Updated license headers 2016-01-15 12:25:24 +00:00