Details
-
Technical task
-
Resolution: Done
-
P2: Important
-
None
-
-
Qt6 Installer Sprint 3, Qt6 Installer Sprint 4
Description
The basics have already been studied on QTBUG-80378 and QTBUG-80620. It should be further investigated if existing installer operations would be sufficient for this use case.
Notes:
- What if the conan command names/arguments change over time? This would break all marketplace extension install scripts that use exact conan commands via component.addOperation("Execute", ...).
Alternatives for using the current installer execute operation as-is:
(WIP) Was thinking about an operation-pair that could be something like this, the register part would be run when installing the conan component and run part when installing a marketplace extension. This could also help with env variable correctness in QTIFW-1561:
RegisterCommandTemplateOp
- Arguments:
- name - "conan-export"
- path_to_executable - "home/user/installdir/conan"
- version - "version of the executable"
- do_step_commands - "export, " ."
- undo_step_commands - "remove", -f"
- env_variables (optional) - "name:value, ..."
- DO-step: save/map operation values to installer
- UNDO-step: remove values from installer
RunCommandTemplateOp
- Arguments:
- name - "conan_export" <- check if exists
- version (maybe optional) <- also check if specific version exists
- working_dir - "/home/user/installdir/componentX"
- args_for_do_step (optional) - "qtcharts/5.12.3@qt/final"
- args_for_undo_step (optional) - "qtcharts/5.12.3@qt/final"
- DO-step: set env variables & execute do step command with extra args
- UNDO-step (if defined): set env variables & execute undo step command with extra args
See https://codereview.qt-project.org/c/installer-framework/installer-framework/+/287506.