Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-122181

Allow finding qtmultimedia mock plugin in manual tests

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P3: Somewhat important
    • None
    • 6.7
    • None
    • 566b726b8 (dev), cac3d3198 (6.7)

    Description

      Trying to configure qtmultimedia with manual tests ON in-tree, and a tests/manual/CMakeLists.txt that has:

      add_subdirectory(audiodecoder)
      

      shows:

      $ qt-configure-module ~/dev/qtmultimedia -- -DQT_BUILD_MANUAL_TESTS=ON -DQT_BUILD_TESTS=ON
      
      CMake Error at /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:1941 (get_target_property):
        get_target_property() called with non-existent target
        "Qt6::MockMultimediaPlugin_init".
      Call Stack (most recent call first):
        /Users/alex/Dev/qt/worktrees/dev/qtbase/cmake/QtPublicPluginHelpers.cmake:211 (__qt_internal_propagate_object_library)
        /Users/alex/Dev/qt/worktrees/dev/qtbase/cmake/QtPublicPluginHelpers.cmake:555 (__qt_internal_add_static_plugin_import_macro)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Multimedia/Qt6MultimediaPlugins.cmake:10 (__qt_internal_include_plugin_packages)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Multimedia/Qt6MultimediaConfig.cmake:135 (include)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6/Qt6Config.cmake:164 (find_package)
        tests/manual/audiodecoder/CMakeLists.txt:16 (find_package)
      

      This happens after https://codereview.qt-project.org/c/qt/qtmultimedia/+/538625

      The immediate problem is that the Qt6::MockMultimediaPlugin_init alias target is not created.
      Try to fix that by applying this diff in qtbase ends up with a bigger problem:

      diff --git a/cmake/QtPluginHelpers.cmake b/cmake/QtPluginHelpers.cmake
      index bc0f651b99..1135ff918a 100644
      --- a/cmake/QtPluginHelpers.cmake
      +++ b/cmake/QtPluginHelpers.cmake
      @@ -393,6 +393,7 @@ function(qt_internal_add_plugin target)
           get_target_property(target_type "${target}" TYPE)
           if(target_type STREQUAL STATIC_LIBRARY)
               if(qt_module_target)
      +            qt_internal_add_target_aliases("${plugin_init_target}")
                   qt_internal_link_internal_platform_for_object_library("${plugin_init_target}")
               endif()
           endif()
      
      CMake Error at /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:1943 (target_link_libraries):
        target_link_libraries can not be used on an ALIAS target.
      Call Stack (most recent call first):
        /Users/alex/Dev/qt/worktrees/dev/qtbase/cmake/QtPublicPluginHelpers.cmake:211 (__qt_internal_propagate_object_library)
        /Users/alex/Dev/qt/worktrees/dev/qtbase/cmake/QtPublicPluginHelpers.cmake:555 (__qt_internal_add_static_plugin_import_macro)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Multimedia/Qt6MultimediaPlugins.cmake:10 (__qt_internal_include_plugin_packages)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Multimedia/Qt6MultimediaConfig.cmake:135 (include)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6/Qt6Config.cmake:164 (find_package)
        tests/manual/audiodecoder/CMakeLists.txt:16 (find_package)
      
      
      CMake Error at /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:2816 (set_property):
        set_property can not be used on an ALIAS target.
      Call Stack (most recent call first):
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:1944 (_qt_internal_copy_dependency_properties)
        /Users/alex/Dev/qt/worktrees/dev/qtbase/cmake/QtPublicPluginHelpers.cmake:211 (__qt_internal_propagate_object_library)
        /Users/alex/Dev/qt/worktrees/dev/qtbase/cmake/QtPublicPluginHelpers.cmake:555 (__qt_internal_add_static_plugin_import_macro)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Multimedia/Qt6MultimediaPlugins.cmake:10 (__qt_internal_include_plugin_packages)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Multimedia/Qt6MultimediaConfig.cmake:135 (include)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6/Qt6Config.cmake:164 (find_package)
        tests/manual/audiodecoder/CMakeLists.txt:16 (find_package)
      
      
      CMake Error at /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:2816 (set_property):
        set_property can not be used on an ALIAS target.
      Call Stack (most recent call first):
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:1944 (_qt_internal_copy_dependency_properties)
        /Users/alex/Dev/qt/worktrees/dev/qtbase/cmake/QtPublicPluginHelpers.cmake:211 (__qt_internal_propagate_object_library)
        /Users/alex/Dev/qt/worktrees/dev/qtbase/cmake/QtPublicPluginHelpers.cmake:555 (__qt_internal_add_static_plugin_import_macro)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Multimedia/Qt6MultimediaPlugins.cmake:10 (__qt_internal_include_plugin_packages)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Multimedia/Qt6MultimediaConfig.cmake:135 (include)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6/Qt6Config.cmake:164 (find_package)
        tests/manual/audiodecoder/CMakeLists.txt:16 (find_package)
      
      
      CMake Error at /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:2816 (set_property):
        set_property can not be used on an ALIAS target.
      Call Stack (most recent call first):
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:1944 (_qt_internal_copy_dependency_properties)
        /Users/alex/Dev/qt/worktrees/dev/qtbase/cmake/QtPublicPluginHelpers.cmake:211 (__qt_internal_propagate_object_library)
        /Users/alex/Dev/qt/worktrees/dev/qtbase/cmake/QtPublicPluginHelpers.cmake:555 (__qt_internal_add_static_plugin_import_macro)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Multimedia/Qt6MultimediaPlugins.cmake:10 (__qt_internal_include_plugin_packages)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Multimedia/Qt6MultimediaConfig.cmake:135 (include)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6/Qt6Config.cmake:164 (find_package)
        tests/manual/audiodecoder/CMakeLists.txt:16 (find_package)
      
      
      CMake Error at /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:2816 (set_property):
        set_property can not be used on an ALIAS target.
      Call Stack (most recent call first):
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:1944 (_qt_internal_copy_dependency_properties)
        /Users/alex/Dev/qt/worktrees/dev/qtbase/cmake/QtPublicPluginHelpers.cmake:211 (__qt_internal_propagate_object_library)
        /Users/alex/Dev/qt/worktrees/dev/qtbase/cmake/QtPublicPluginHelpers.cmake:555 (__qt_internal_add_static_plugin_import_macro)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Multimedia/Qt6MultimediaPlugins.cmake:10 (__qt_internal_include_plugin_packages)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Multimedia/Qt6MultimediaConfig.cmake:135 (include)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6/Qt6Config.cmake:164 (find_package)
        tests/manual/audiodecoder/CMakeLists.txt:16 (find_package)
      
      
      CMake Error at /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:2816 (set_property):
        set_property can not be used on an ALIAS target.
      Call Stack (most recent call first):
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:1944 (_qt_internal_copy_dependency_properties)
        /Users/alex/Dev/qt/worktrees/dev/qtbase/cmake/QtPublicPluginHelpers.cmake:211 (__qt_internal_propagate_object_library)
        /Users/alex/Dev/qt/worktrees/dev/qtbase/cmake/QtPublicPluginHelpers.cmake:555 (__qt_internal_add_static_plugin_import_macro)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Multimedia/Qt6MultimediaPlugins.cmake:10 (__qt_internal_include_plugin_packages)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Multimedia/Qt6MultimediaConfig.cmake:135 (include)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6/Qt6Config.cmake:164 (find_package)
        tests/manual/audiodecoder/CMakeLists.txt:16 (find_package)
      
      
      CMake Error at /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:1958 (set_property):
        set_property can not be used on an ALIAS target.
      Call Stack (most recent call first):
        /Users/alex/Dev/qt/worktrees/dev/qtbase/cmake/QtPublicPluginHelpers.cmake:211 (__qt_internal_propagate_object_library)
        /Users/alex/Dev/qt/worktrees/dev/qtbase/cmake/QtPublicPluginHelpers.cmake:555 (__qt_internal_add_static_plugin_import_macro)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Multimedia/Qt6MultimediaPlugins.cmake:10 (__qt_internal_include_plugin_packages)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6Multimedia/Qt6MultimediaConfig.cmake:135 (include)
        /Users/alex/Dev/qt/builds/dev-mac-super-mult/qtbase/lib/cmake/Qt6/Qt6Config.cmake:164 (find_package)
        tests/manual/audiodecoder/CMakeLists.txt:16 (find_package)
      

      I don't know yet why the same does not happen for qtbase tests. Probably because QtPlugins.cmake is not loaded.

      Either way this needs some build system plugin infrastructure changes to make it work.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              qtbuildsystem Qt Build System Team
              alexandru.croitor Alexandru Croitor
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes