Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-77376 CMake Port: Upstream CMake issues
  3. QTBUG-77377

Add CMake feature for a function to be called when a target is "closed"

    XMLWordPrintable

    Details

    • Type: Technical task
    • Status: Reported
    • Priority: P2: Important
    • Resolution: Unresolved
    • Fix Version/s: None
    • Component/s: Build System

      Description

      This would providing cleaner CMake API inside the Qt CMake files.

      For example for qml, without this feature, you could have a hypothetical API as follows.

      add_qml_module(Foo)
      qml_target_sources(Foo a.qml)
      if(APPLE)
        qml_target_sources(Foo b.qml)
      endif()
      
      more qml_target_source calls .....
      
      qml_run_quick_compiler(Foo)
      

      qml_run_quick_compiler needs to be called manually by a user after all qml_target_sources have been called.

      With proposed feature, we could have a cleaner API where the user does not have to specify the qml_run_quick_compiler call, it would be called automatically by CMake.

      add_qml_module(Foo)
      qml_target_sources(Foo a.qml)
      if(APPLE)
        qml_target_sources(Foo b.qml)
      endif()
      
      more qml_target_source calls .....
      

      and inside add_qml_module you would have something like:

      function(qml_run_quick_compiler target)
      ...
      set_property(TARGET ${target} PROPERTY CALL_ON_TARGET_FINALIZE "qml_run_quick_compiler")
      ...
      endfunction()
      

      Thus the user can't accidentally forget to call qml_run_quick_compiler(), CMake would do it for them.

      Upstream issue https://gitlab.kitware.com/cmake/cmake/issues/19575

        Attachments

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

          Activity

            People

            • Assignee:
              alexandru.croitor Alexandru Croitor
              Reporter:
              alexandru.croitor Alexandru Croitor
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:

                Gerrit Reviews

                There are no open Gerrit changes