diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2020-05-27 14:42:35 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2020-05-28 15:13:27 +0200 |
commit | e189126f1ae1d2fa2ad0f95ee2c4aa72c770a97b (patch) | |
tree | 8d9b5207e69fb3745534545e313c6859b41968cf /cmake | |
parent | f20f0b03d57b9517ac34043b873665bd41c098d2 (diff) |
CMake: Use -fapplication-extension when building Qt libraries on macOS
Needed to avoid linker warnings transformed into errors, when linking
QtWebEngine with qmake mixing.
ld: warning: linking against a dylib which is not safe for use in
application extensions:
The flag is added to libraries and plugins, unless opted out.
CMake equivalent of 944110089d4cb1c229dba422989e154db65a67fd
Task-number: QTBUG-83929
Task-number: QTBUG-75666
Change-Id: I3e9acca4712c9a266bf54c6e35e2fd2c0096692b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/QtInternalTargets.cmake | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/cmake/QtInternalTargets.cmake b/cmake/QtInternalTargets.cmake index c570771202..bf4d33126c 100644 --- a/cmake/QtInternalTargets.cmake +++ b/cmake/QtInternalTargets.cmake @@ -204,3 +204,22 @@ function(qt_auto_detect_fpmath) endif() endfunction() qt_auto_detect_fpmath() + +function(qt_handle_apple_app_extension_api_only) + if(APPLE) + # Build Qt libraries with -fapplication-extension. Needed to avoid linker warnings + # transformed into errors on darwin platforms. + set(flags "-fapplication-extension") + set(genex_condition "$<NOT:$<BOOL:$<TARGET_PROPERTY:QT_NO_APP_EXTENSION_ONLY_API>>>") + set(flags "$<${genex_condition}:${flags}>") + target_compile_options(PlatformModuleInternal INTERFACE ${flags}) + target_link_options(PlatformModuleInternal INTERFACE ${flags}) + target_compile_options(PlatformPluginInternal INTERFACE ${flags}) + target_link_options(PlatformPluginInternal INTERFACE ${flags}) + endif() +endfunction() +function(qt_disable_apple_app_extension_api_only target) + set_target_properties("${target}" PROPERTIES QT_NO_APP_EXTENSION_ONLY_API TRUE) +endfunction() + +qt_handle_apple_app_extension_api_only() |