It will be clearer if I start with why this could be useful first:
I have been integrating the Qt Installer Framework into the build process of my program, and it automatically generates installer executables (online and offline) and repository directory (which is to be put on server where online installer requests data from). It was actually easier than I expected, with InstallPackage product doing half the work for me already by archiving program files producing an archive ready to be used by QtIFW.
There is one little problem however. I have organised the output of build process (the one that goes into the install-root directory) the following way:
- install-root/Program where the program itself and all its dependencies go;
- install-root/Installer where all the output of QtIFW, like installers, goes.
And the problem is that Archiver adds this “Program” directory into the archive. So there are paths like “Program/myexe.exe” or “Program/mydll.dll” now within the archive. Inside the archive I do not want these files to be stored in this directory, I want their paths to be simply “myexe.exe” and “mydll.dll” (so when the user installs the program its path will not be “C:/Program files/MyProgramName/Program/...” but rather just “C:/Program files/MyProgramName” as intended)
How do I solve it? I take the artifact of the Archiver (tagged “archiver.input-list”), extract paths, remove the “Program/“ part and rename files within the archive with this prefix removed. It works, and works solid, but is not really an elegant solution.
And now to the suggestion: if I had access to this list of files to be archived in advance, say, as property of Archiver or InstallPackage, I could have edited it before it is written to file. Thus eliminating the need of this cumbersome procedure of creating a rule, reading the archiver.input-list, etc.