This is a very general question and also maybe stupid question: How should I build / structure my software if it depends on some other software to work? I know that package managers exist, but what if I just want to ship my app as a .exe file or something similar?
For example, when working on a rust app (e.g. Tauri or something), I can only include software into my app that is written in rust and belongs to the cargo ecosystem. But what if my app needs for example some sort of command line tool like ffmpeg or Latex to work, which doesn't have a good rust implementation?
For me, it seems like there are two options to handle this case:
- The app requires the specific command line tool / whatever to be installed on the PC, or you ship an installer for the software which installs both the software itself and the required tools (but then you'd be forced to write an installer)
- The required software is included as a binary into the app. So when building the app, you not only compile the app itself but also the required software. But this might not make sense if the required software is very big, and it could also lead to duplicates with other software (if everyone uses this approach). However, for lightweight stuff it could be ok. But I don't know how much of the app you could pre-compile for the different platforms, and how much of the app should only be compiled on the user's machine when installing the app.
This might be a dumb question, but I'm quite new to developing software for other users and I didn't find anything useful to this topic on the web.
Thanks everyone!