I’m working on creating CPack installers for an audio plugin. We distribute several different formats - on Windows, AAX, VST3, and a standalone GUI app. These all need to be installed to different directories - by default, the AAX goes in
Program Files/Common Files/Avid/Audio/Plug-Ins, the VST3 goes in
Program Files/Common Files/VST3, and the standalone app goes in
I was able to get an installer building using all relative paths in my install commands, with all the destination paths being relative to
Program Files. I set
C:/Program Files, and it works, everything gets installed to the correct locations.
However, this results in the NSIS installer displaying the “install folder” as
C:/Program Files, but my boss insists that the install folder presented to the user should be
C:/Program Files/<companyName>/<productName>, the folder where the standalone app gets installed. I’m now facing a conundrum about how best to work around this – if I make the install root
Program Files/<companyName>/<productName>, I could possibly install the VST3 with a relative path such as
../../Common Files/VST3, but the issue there is that if the user selects a custom folder for the standalone app, then the VST3/AAX paths will likely not be correct.
I think I have two options here:
- Find a way to install the AAX/VST3 components with absolute paths, so that the user can choose a custom install folder for the app and they’ll still end up in the correct directories. Is there a way in CMake to install something “outside” of the install root?
- I’ve seen some NSIS installers that present the user a page for every install component, asking them to select a location. This seems like a possible solution, but may require providing my own NSIS template script, which I’m not super keen on…
Based on some asking around, it seems that NSIS does support the end goals of
- Presenting the “install folder” to the user as the directory where the standalone app will be installed
- Allowing the user to change this install root
- Without that messing up the AAX/VST3 standard install locations
but I’m not sure of the best way to achieve this with CMake/CPack’s model of installing. Thoughts welcome!