Not all platforms you want to support even give you the ability to just cross-compile just like that.
Apple, in particular, wants to ensure that it knows every developer which produces code for MacOS and/or iOS and thus you can only, officially, build stuff for MacOS and/or iOS on MacOS.
Unofficially you may do that on Linux but you would still need to grab the appropriate keys from apple (and become a developer and pay a license fee if you want to create binaries which are usable not just on your particular device but more widely).