Thanks, I'm shy.
I'll start with this
Code: Select all
Windows Packaging
Because windows doesn't have a consistent package manager, the biggest challenge to packaging FreeCAD, is maintaining and distributing the FreeCAD dependency stack. And then building FreeCAD against these dependencies. There are a few methods to do this, I think they fall into 3 categories;
1. Use the Libpack 12.x versions from apeltauer and then build with some tool (Cmake/VS2015+ for ex., but other build chains are possible)
2. Use Conda/MiniConda as a package manager/dependency solver (substitute to the Libpack), then external tools. Here you will need to utilize CMake
3. Use Conda/MiniConda as an environment, then use Conda's native build tools.
On Windows, it can not be assumed that the dependencies are available, very similar to AppImage, So all the relevant .dll's and pyd's (.so's on Linux) must be included in the bundle.
There is some utility in packaging FreeCAD from the build directory rather than the install directory (this is mostly for people who compile themselves without installation).
Beginning in 0.19 there are some CMake switches that allow to copy specific stuff and not everything from Libpack/bin to build/bin or install/bin. At the moment you just need to know what has to be copied. Help here is requested, whitelist/blacklist seems hard to maintain.
After the structure is set up its just a matter of .7z that directory or compiling with NSIS(more details required)