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

Remove reliance on CMake-internal autogen files for cmake_automoc_parser

    XMLWordPrintable

Details

    • Task
    • Resolution: Unresolved
    • P2: Important
    • None
    • 6.0.0, 6.1.0 Alpha
    • Build System: CMake
    • None

    Description

      Background for this is in CMake's issue tracker here:

      https://gitlab.kitware.com/cmake/cmake/-/issues/21823

      As part of generating the meta types json files for Qt modules, the cmake_automoc_parser tool was added for Qt6. It reads files AutogenInfo.json and ParseCache.txt files generated by CMake's AUTOMOC functionality, but those files are internal to CMake and subject to change. The above issue highlights where these files were in fact changed before the CMake 3.20.0 release in a way that broke cmake_automoc_parser. While the breakage created by that particular change may ultimately be addressed in CMake, it demonstrates that we shouldn't be relying on something in CMake that isn't part of its public API.

      We need to identify the information that cmake_automoc_parser is generating and what details it needs from CMake to do that. Note that it was written with the assumption that all sources and headers are not config-specific, but CMake now supports that. We need to take this into account in determining what cmake_automoc_parser needs going forward.

      Once we can define what details are needed, we then need to work with the CMake developers to come up with a way to make that available through a public CMake API. This may consist of target properties, files that autogen writes out, etc. It will likely require changes on both the CMake and Qt sides. We would tentatively want to target CMake 3.21 for such a change, and likely Qt 6.2.

      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
              crscott Craig Scott
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes