macOS: Use tool environment to ensure tests load matching Qt libraries

Linking with a framework suffix to pick up the debug version of
libraries doesn't work as long as the dependencies picked up from prl
files are not rewritten to also include the suffix. The result is that
we end up loading both release and debug versions of the Qt libraries.

Use the target environment (target_wrapper.sh) to set the image suffix
instead, which means 'make check' will automatically work.

Change-Id: I60b0840760f68e579c270245d394e1dd609a0ebb
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
bb10
Tor Arne Vestbø 2019-01-11 12:12:11 +01:00
parent 911da982df
commit 7044409c87
2 changed files with 7 additions and 11 deletions

View File

@ -209,14 +209,6 @@ for(ever) {
!isEmpty(MODULE_MODULE) {
contains(MODULE_CONFIG, lib_bundle) {
framework = $$MODULE_MODULE
qtConfig(debug_and_release):qt_link_suffixed_framework:!macx-xcode {
platform_target_suffix = $$qtPlatformTargetSuffix()
!isEmpty(platform_target_suffix): \
# The -framework linker argument supports a name[,suffix] version,
# where if the suffix is specified the framework is first searched
# for the library with the suffix and then without.
framework = $$framework,$$platform_target_suffix
}
LIBS$$var_sfx += -framework $$framework
} else {
!isEmpty(MODULE_LIBS_ADD): \

View File

@ -21,15 +21,19 @@ testcase_lowdpi {
}
}
# Make sure we explicitly link to the debug version of the Qt libraries if needed
macos: CONFIG += qt_link_suffixed_framework
benchmark: type = benchmark
else: type = check
$${type}.files =
$${type}.path = .
# Make sure we explicitly load the debug version of the Qt libraries if needed
macos {
dyld_image_suffix.name = DYLD_IMAGE_SUFFIX
dyld_image_suffix.value = $$qtPlatformTargetSuffix()
QT_TOOL_ENV += dyld_image_suffix
}
# Add environment for non-installed builds. Do this first, so the
# 'make' variable expansions don't end up in a batch file/script.
QT_TOOL_NAME = target