From c7f9592f9b063750b39b986d849d3bc9e328670c Mon Sep 17 00:00:00 2001 From: Ivan Solovev Date: Mon, 9 Aug 2021 18:03:50 +0200 Subject: Fix static build This patch fixes the "Bundled_Clip2Tri not found" error during static QtPositioning build. Fix backend plugins so that they get automatically linked in static build. Fixes: QTBUG-95582 Change-Id: Iea31c23a055689d9b8f6471345558b330795f597 Reviewed-by: Qt CI Bot Reviewed-by: Alexandru Croitor (cherry picked from commit 5c91b37a5b592c4c062f4386d83653c2170d1c07) Reviewed-by: Qt Cherry-pick Bot --- src/3rdparty/clip2tri/CMakeLists.txt | 22 +++------------------- src/3rdparty/clipper/CMakeLists.txt | 1 + src/3rdparty/poly2tri/CMakeLists.txt | 1 + src/plugins/position/android/src/CMakeLists.txt | 3 ++- src/plugins/position/corelocation/CMakeLists.txt | 5 +++-- src/plugins/position/geoclue2/CMakeLists.txt | 3 ++- src/plugins/position/gypsy/CMakeLists.txt | 3 ++- src/plugins/position/nmea/CMakeLists.txt | 3 ++- src/plugins/position/positionpoll/CMakeLists.txt | 3 ++- src/plugins/position/winrt/CMakeLists.txt | 5 +++-- src/positioning/CMakeLists.txt | 3 +-- src/positioningquick/CMakeLists.txt | 1 + tests/auto/dummypositionplugin/CMakeLists.txt | 3 ++- tests/auto/positionplugin/CMakeLists.txt | 3 ++- 14 files changed, 27 insertions(+), 32 deletions(-) diff --git a/src/3rdparty/clip2tri/CMakeLists.txt b/src/3rdparty/clip2tri/CMakeLists.txt index 4e84ee71..9b5a56b3 100644 --- a/src/3rdparty/clip2tri/CMakeLists.txt +++ b/src/3rdparty/clip2tri/CMakeLists.txt @@ -15,27 +15,11 @@ qt_internal_add_3rdparty_library(Bundled_Clip2Tri ../clipper ../poly2tri LIBRARIES - # Remove: L/lib - Bundled_Clipper # special case - Bundled_Poly2Tri # special case + Qt::Bundled_Clipper # special case + Qt::Bundled_Poly2Tri # special case ) qt_disable_warnings(Bundled_Clip2Tri) - -# special case begin - -# Generating an alias target, so that the unneeded include dependency is not -# generated in STATIC build. -# Otherwise the Bundled_Clip2Tri target will match to one of the -# ${known_modules}, and will be added to generate a wierd -# #include -# in the QtPositioning/QtPositioningDepends. -# The root cause for such behavior are -# function(qt_internal_create_module_depends_file target) -# and -# function(qt_internal_write_depends_file module) -add_library(Clip2Tri::Clip2Tri ALIAS Bundled_Clip2Tri) - -# special case end +qt_set_symbol_visibility_hidden(Bundled_Clip2Tri) ## Scopes: ##################################################################### diff --git a/src/3rdparty/clipper/CMakeLists.txt b/src/3rdparty/clipper/CMakeLists.txt index c85d27b2..08f2fada 100644 --- a/src/3rdparty/clipper/CMakeLists.txt +++ b/src/3rdparty/clipper/CMakeLists.txt @@ -13,6 +13,7 @@ qt_internal_add_3rdparty_library(Bundled_Clipper clipper.cpp clipper.h ) qt_disable_warnings(Bundled_Clipper) +qt_set_symbol_visibility_hidden(Bundled_Clipper) ## Scopes: ##################################################################### diff --git a/src/3rdparty/poly2tri/CMakeLists.txt b/src/3rdparty/poly2tri/CMakeLists.txt index 083a98cd..167485db 100644 --- a/src/3rdparty/poly2tri/CMakeLists.txt +++ b/src/3rdparty/poly2tri/CMakeLists.txt @@ -18,6 +18,7 @@ qt_internal_add_3rdparty_library(Bundled_Poly2Tri sweep/sweep_context.cpp sweep/sweep_context.h ) qt_disable_warnings(Bundled_Poly2Tri) +qt_set_symbol_visibility_hidden(Bundled_Poly2Tri) ## Scopes: ##################################################################### diff --git a/src/plugins/position/android/src/CMakeLists.txt b/src/plugins/position/android/src/CMakeLists.txt index 91d437ed..b91181f4 100644 --- a/src/plugins/position/android/src/CMakeLists.txt +++ b/src/plugins/position/android/src/CMakeLists.txt @@ -4,8 +4,9 @@ ## QGeoPositionInfoSourceFactoryAndroid Plugin: ##################################################################### -qt_internal_add_plugin(QGeoPositionInfoSourceFactoryAndroid +qt_internal_add_plugin(QGeoPositionInfoSourceFactoryAndroidPlugin OUTPUT_NAME qtposition_android + CLASS_NAME QGeoPositionInfoSourceFactoryAndroid PLUGIN_TYPE position SOURCES jnipositioning.cpp jnipositioning.h diff --git a/src/plugins/position/corelocation/CMakeLists.txt b/src/plugins/position/corelocation/CMakeLists.txt index a3278358..0126aa65 100644 --- a/src/plugins/position/corelocation/CMakeLists.txt +++ b/src/plugins/position/corelocation/CMakeLists.txt @@ -4,8 +4,9 @@ ## QGeoPositionInfoSourceFactoryCL Plugin: ##################################################################### -qt_internal_add_plugin(QGeoPositionInfoSourceFactoryCL +qt_internal_add_plugin(QGeoPositionInfoSourceFactoryCLPlugin OUTPUT_NAME qtposition_cl + CLASS_NAME QGeoPositionInfoSourceFactoryCL PLUGIN_TYPE position SOURCES qgeopositioninfosource_cl.mm qgeopositioninfosource_cl_p.h @@ -19,7 +20,7 @@ qt_internal_add_plugin(QGeoPositionInfoSourceFactoryCL ) # special case begin -set_target_properties(QGeoPositionInfoSourceFactoryCL +set_target_properties(QGeoPositionInfoSourceFactoryCLPlugin PROPERTIES DISABLE_PRECOMPILE_HEADERS ON ) diff --git a/src/plugins/position/geoclue2/CMakeLists.txt b/src/plugins/position/geoclue2/CMakeLists.txt index 0ba49a63..c573ee1d 100644 --- a/src/plugins/position/geoclue2/CMakeLists.txt +++ b/src/plugins/position/geoclue2/CMakeLists.txt @@ -4,8 +4,9 @@ ## QGeoPositionInfoSourceFactoryGeoclue2 Plugin: ##################################################################### -qt_internal_add_plugin(QGeoPositionInfoSourceFactoryGeoclue2 +qt_internal_add_plugin(QGeoPositionInfoSourceFactoryGeoclue2Plugin OUTPUT_NAME qtposition_geoclue2 + CLASS_NAME QGeoPositionInfoSourceFactoryGeoclue2 PLUGIN_TYPE position SOURCES geocluetypes.cpp geocluetypes.h diff --git a/src/plugins/position/gypsy/CMakeLists.txt b/src/plugins/position/gypsy/CMakeLists.txt index 451c453e..1791bdcc 100644 --- a/src/plugins/position/gypsy/CMakeLists.txt +++ b/src/plugins/position/gypsy/CMakeLists.txt @@ -4,8 +4,9 @@ ## QGeoPositionInfoSourceFactoryGypsy Plugin: ##################################################################### -qt_internal_add_plugin(QGeoPositionInfoSourceFactoryGypsy +qt_internal_add_plugin(QGeoPositionInfoSourceFactoryGypsyPlugin OUTPUT_NAME qtposition_gypsy + CLASS_NAME QGeoPositionInfoSourceFactoryGypsy PLUGIN_TYPE position SOURCES qgeopositioninfosourcefactory_gypsy.cpp qgeopositioninfosourcefactory_gypsy.h diff --git a/src/plugins/position/nmea/CMakeLists.txt b/src/plugins/position/nmea/CMakeLists.txt index f348d0a2..73c5a3b1 100644 --- a/src/plugins/position/nmea/CMakeLists.txt +++ b/src/plugins/position/nmea/CMakeLists.txt @@ -4,8 +4,9 @@ ## QGeoPositionInfoSourceFactoryNmea Plugin: ##################################################################### -qt_internal_add_plugin(QGeoPositionInfoSourceFactoryNmea +qt_internal_add_plugin(QGeoPositionInfoSourceFactoryNmeaPlugin OUTPUT_NAME qtposition_nmea + CLASS_NAME QGeoPositionInfoSourceFactoryNmea PLUGIN_TYPE position SOURCES qgeopositioninfosourcefactory_nmea.cpp qgeopositioninfosourcefactory_nmea.h diff --git a/src/plugins/position/positionpoll/CMakeLists.txt b/src/plugins/position/positionpoll/CMakeLists.txt index 35f76e01..59810be1 100644 --- a/src/plugins/position/positionpoll/CMakeLists.txt +++ b/src/plugins/position/positionpoll/CMakeLists.txt @@ -4,8 +4,9 @@ ## QGeoPositionInfoSourceFactoryPoll Plugin: ##################################################################### -qt_internal_add_plugin(QGeoPositionInfoSourceFactoryPoll +qt_internal_add_plugin(QGeoPositionInfoSourceFactoryPollPlugin OUTPUT_NAME qtposition_positionpoll + CLASS_NAME QGeoPositionInfoSourceFactoryPoll PLUGIN_TYPE position SOURCES positionpollfactory.cpp positionpollfactory.h diff --git a/src/plugins/position/winrt/CMakeLists.txt b/src/plugins/position/winrt/CMakeLists.txt index 211b44c8..44de9655 100644 --- a/src/plugins/position/winrt/CMakeLists.txt +++ b/src/plugins/position/winrt/CMakeLists.txt @@ -4,8 +4,9 @@ ## QGeoPositionInfoSourceFactoryWinRT Plugin: ##################################################################### -qt_internal_add_plugin(QGeoPositionInfoSourceFactoryWinRT +qt_internal_add_plugin(QGeoPositionInfoSourceFactoryWinRTPlugin OUTPUT_NAME qtposition_winrt + CLASS_NAME QGeoPositionInfoSourceFactoryWinRT PLUGIN_TYPE position SOURCES qgeopositioninfosource_winrt.cpp qgeopositioninfosource_winrt_p.h @@ -22,7 +23,7 @@ qt_internal_add_plugin(QGeoPositionInfoSourceFactoryWinRT ## Scopes: ##################################################################### -qt_internal_extend_target(QGeoPositionInfoSourceFactoryWinRT CONDITION MSVC AND NOT WINRT +qt_internal_extend_target(QGeoPositionInfoSourceFactoryWinRTPlugin CONDITION MSVC AND NOT WINRT LIBRARIES runtimeobject.lib ) diff --git a/src/positioning/CMakeLists.txt b/src/positioning/CMakeLists.txt index a16cf8e4..5e976735 100644 --- a/src/positioning/CMakeLists.txt +++ b/src/positioning/CMakeLists.txt @@ -36,9 +36,8 @@ qt_internal_add_module(Positioning ../3rdparty/clip2tri ../3rdparty/clipper LIBRARIES - # Remove: L/lib Qt::CorePrivate - Clip2Tri::Clip2Tri # special case + Qt::Bundled_Clip2Tri PUBLIC_LIBRARIES Qt::Core PRIVATE_MODULE_INTERFACE diff --git a/src/positioningquick/CMakeLists.txt b/src/positioningquick/CMakeLists.txt index 060f2ff9..28375160 100644 --- a/src/positioningquick/CMakeLists.txt +++ b/src/positioningquick/CMakeLists.txt @@ -10,6 +10,7 @@ qt_internal_add_qml_module(PositioningQuick PLUGIN_TARGET positioningquickplugin NO_GENERATE_PLUGIN_SOURCE NO_PLUGIN_OPTIONAL + CLASS_NAME QtPositioningDeclarativeModule SOURCES qdeclarativegeoaddress_p.h qdeclarativegeoaddress.cpp qdeclarativegeolocation_p.h qdeclarativegeolocation.cpp diff --git a/tests/auto/dummypositionplugin/CMakeLists.txt b/tests/auto/dummypositionplugin/CMakeLists.txt index c5806df4..9c196f0e 100644 --- a/tests/auto/dummypositionplugin/CMakeLists.txt +++ b/tests/auto/dummypositionplugin/CMakeLists.txt @@ -4,8 +4,9 @@ ## QGeoPositionInfoSourceFactoryTest Plugin: ##################################################################### -qt_internal_add_plugin(DummyPluginForTests +qt_internal_add_plugin(DummyPluginForTestsFactoryPlugin OUTPUT_NAME qtposition_testplugin2 + CLASS_NAME DummyPluginForTestsFactory PLUGIN_TYPE position DEFAULT_IF FALSE SOURCES diff --git a/tests/auto/positionplugin/CMakeLists.txt b/tests/auto/positionplugin/CMakeLists.txt index ed310874..7e1f2ed8 100644 --- a/tests/auto/positionplugin/CMakeLists.txt +++ b/tests/auto/positionplugin/CMakeLists.txt @@ -4,8 +4,9 @@ ## QGeoPositionInfoSourceFactoryTest Plugin: ##################################################################### -qt_internal_add_plugin(QGeoPositionInfoSourceFactoryTest +qt_internal_add_plugin(QGeoPositionInfoSourceFactoryTestPlugin OUTPUT_NAME qtposition_testplugin + CLASS_NAME QGeoPositionInfoSourceFactoryTest PLUGIN_TYPE position DEFAULT_IF FALSE SOURCES -- cgit v1.2.3