Docker is probably not an option, when distributing desktop apps to end-users.
So, if cross compilation, what is your toolset and language of choice? I realized I can cross-compile Go with xgo (which supports all three major platforms), and Rust with cross (which does not support macOS). I have no idea how to do C/C++ directly.
Not sure if Python, how do you link for the different platforms you are not using?
Don’t expect that you can build app for all platforms on one platform.
Another safe way is to use Java or JVM, but how many (non-dev) people actually installed JRE these days?
Lastly, if you use native compilation, how often do you have to open other OS's. I can open Windows in VirtualBox, but I yet to have access to Hackintosh (i.e. macOS).
And yes, I do realize that I can compile on CI with both Windows (which has Visual Studio) and macOS (which has Xcode) as well; but I don't have much experience on that.