indygreg / PyOxidizer

A modern Python application packaging and distribution tool
Mozilla Public License 2.0
5.5k stars 238 forks source link

Cross-compilation #95

Open sztomi opened 5 years ago

sztomi commented 5 years ago

Would it be feasible to build pyoxidizer builds on a platform that's other than the target platform? This could also help with the question of the official build environment (it could be the same docker image for all targets).

indygreg commented 5 years ago

This should be feasible. It's on the feature backlog. I would very much like to get to a point where one could build Windows and macOS binaries on Linux or BSDs. It should be possible.

It's relatively low priority at this time because I believe features related to core functionality are more important. But I do want to get there eventually.

It's worth noting that Windows will require us to produce a Python distribution compiled without MSVC. And we won't be able to provide a self-contained build environment for macOS because the license of various SDKs prohibits distribution. But we can attempt to make things as turn-key as possible.

luser commented 5 years ago

It's worth noting that Windows will require us to produce a Python distribution compiled without MSVC

Given the existence of clang-cl these days I don't think this is a real problem.

And we won't be able to provide a self-contained build environment for macOS because the license of various SDKs prohibits distribution.

Yeah, this is a pain, but if you punted on that step and required developers to provide the SDK path in an environment variable it should be reasonable to make everything else work. (I wonder how much of the SDK building Python actually requires, and if you could create a redistributable mini-SDK using only Apple open source components?)

jmetz commented 1 year ago

Is this issue still active? Would love to be able to cross-compile to windows-gnu target from my linux box, but there doesn't seem to have been any activity on this feature?