xcb issues on update from 6.0.0 to 6.2.0-beta3
-
@SGaist a shared build is a last resort. I know you're asking for testing purposes but it will take some work for me to create one.
@JKSH I had a look at a diff between the two files and the difference was negligible.
I am beginning to think that the issue lies in cmake/QtPluginHelpers.cmake. I have found that with 6.0.0 the generated cpp files with the Q_IMPORT_PLUGIN macro are created where my final binary is but the equivalent files in 6.2.0-beta3 go to src/plugins/... directory. I have since found that my 6.0.0 binary incorporates these files but the 6.2.0-beta3 binary does not. There have been a lot of changes around this area of the source between 6.0.0 and 6.2.0 and the way things are done is completely different. Still trying to get my head around it
-
@ltmdum said in xcb issues on update from 6.0.0 to 6.2.0-beta3:
@SGaist a shared build is a last resort. I know you're asking for testing purposes but it will take some work for me to create one
Maybe less than you think, build only qtbase with the same configuration you have now just dropping the static option. It will be faster.
-
-
I'm finally up and running, just as an FYI I had to make these changes to firstly get past a "target_sources can not be used on an ALIAS target" error and secondly to get past "cmake objects of target <blah> referenced but no such target exists"
diff --git a/cmake/QtPublicPluginHelpers.cmake b/cmake/QtPublicPluginHelpers.cmake index 5023498b..1750cf63 100644 --- a/cmake/QtPublicPluginHelpers.cmake +++ b/cmake/QtPublicPluginHelpers.cmake @@ -193,12 +193,18 @@ function(__qt_internal_add_static_plugin_import_macro qt_module_unprefixed) __qt_internal_get_static_plugin_init_target_name("${plugin_target}" plugin_init_target) - set(objs_genex "$<TARGET_OBJECTS:${QT_CMAKE_EXPORT_NAMESPACE}::${plugin_init_target}>") + set(objs_genex "$<TARGET_OBJECTS:${plugin_init_target}>") + + set(_plugin_target "${plugin_target}") + get_target_property(__aliased_target ${_plugin_target} ALIASED_TARGET) + if(__aliased_target) + set(_plugin_target ${__aliased_target}) + endif() # TODO: Replace the target_sources call here with the more generalized approach that will be # added to __qt_propagate_generated_resource (the one that determines whether to use # target_sources or target_link_libraries depending on the CMake version). - target_sources(${QT_CMAKE_EXPORT_NAMESPACE}::${plugin_target} INTERFACE + target_sources(${_plugin_target} INTERFACE "${objs_genex}") endfunction()
-
Did you consider submitting this patch for inclusion ?
-
So a completely clean build ?