Package Control does not provide a way to specify dependencies, however it would certainly be awesome if it did. Relevant discussion here, and some here.
I think there is currently 2 solutions to the problem:
-
Provide 4 packages, one ST base and one core for each platform. The first package would tell you to download the corresponding package from package control if it does not exist (or even do it automatically, I think you can install arbitrary plugins using package control from within a plugin if you call the functions directly). The others would then do the same.
Maybe you can even download arbitrary repositories that are not even listed in package control? That would surely be awesome. -
Provide 1 package with 3 releases. You can either mirror the ST base code in each repo/branch or provide 3 manually created archives that you specify directly (using “url”).