QtCS2017 Qt Deployment Story

From Qt Wiki
Jump to navigation Jump to search

Breakout session from Build System BOF

  • Qt Quick deployment
  • Differentiation between release and deployment to device
  • Making Qt installations movable
    • QLibraryInfo is horrible (Ossi)
    • Not working for bundles
  • Asset access: Developer shouldn't need to care about source of asset (qrc, bundle, file ...)
    • Apple e.g. defines pretty clearly App Bundle structure
    • Linux has also some standards
    • Android : Everything is in a zip file
  • Arguments for using native format
    • If we use the system specific locations, we can use native API to access it
      • Allows e.g. streaming of video file to external player
    • qrc has limitations regarding large assets
      • Andre fixed this a while ago (?) by merging asset in a post-compilation step
      • Solution is a tad hacky though
    • What's needed?
      • Build System?
      • asset:// accessor?
  • Asset Conditioning
    • Preparation of assets at compile time
    • Requires support in build system
    • Should be integrated in IDE, too (e.g. to specify converting png resource into bitmap)
    • Build System and IDE also needs to watch for file changes , e.g. if external app changes assets
    • Can we limit recompilation of resource files to the files that actually changed?
    • For QRC: We have to store metadata about the file format / conditioning
  • Qt resources in Qbs
    • QMake has RESOURCES, actual files are in .qrc
      • Historical reason: Qt Designer had to edit them
    • Qbs could make it easier
      • Runtime mapping of qrc:// to file should be transparent. The mapping could be tweaked by developer, but doesn't have to.
  • Can we extend QRC path for identifier to native asset system?
    • Exact location / backend can be transparent
    • Therefore no need for an additional system
    • Proposal for rcc extensions: RCCExtensions
  • What about non-file assets, like colors?
    • say "qt-green" being loaded from runtime resource
    • Are there any other examples of resources that aren't files?