Mac Command line
-
Part of the DeepSkyStacker open-source package is a command line tool (DeepSkyStackerCL - I'll use DSSCL from now on) . It is written using Qt.
Does DSSCL have to be built into a macOS .app (which is what I am doing at present)? I think it does, but confirmation would be great :).
If it does, I imagine that I can't drag the command out of the .app folder structure, so would I be correct in thinking that I need to create a symlink to it in /usr/local/bin? Is there any way to "automagically" do that when an app is installed, or must that be done manually?
-
Hi,
You don't have to however it gets a bit more complicated to distribute it with its dependencies.
However, since that tool seems to be one part of DeepSkyStacker, you can do it without any problem since all the libraries will be bundled with your main application.As for your users, there are two options:
- Explain to them how to create an alias that will point to your executable
- Explain to them how to modify their PATH environment variable to include the folder where that binary will be found
-
Sorry, I really should have been clearer - I currently have a separate CMakelists.txt in the DSSCL source directory to generate DSSCL.app. What I'd prefer is to build it NOT as an app but as just another executable in DeepSkyStacker.app?
If you can give guidance on how to achieve that I'd be most interested.
DSSLive is another part of the project, but that is a GUI application so probably should be its own .app
Thanks
DavidDoes that make sense?
-
Yes, you have one single project that has multiple subprojects one of which is your main application that is in a bundle and the other which is the command line tool which you would like to build "unbundled" so you can then copy it into the main application's bundle.
For your cli application, there's this example in the Qt Documentation.
However, the part for integrating that binary into your bundle I don't currently know. You might be able to use a custom command that does that for you or maybe cmake already provides something.