libvips / build-win64-mxe

76 stars 15 forks source link

Proposal: Split up distribution and provide static executables #4

Open kleisauke opened 5 years ago

kleisauke commented 5 years ago

So far we have released these Windows binaries with libvips:

vips-dev-w64-web-x.y.z.zip
vips-dev-w64-all-x.y.z.zip

These ZIP files includes the pre-compiled binaries for Windows 64-bit. It also includes the necessary headers and def files.

Since most Windows users only use the executable / DLL files, I think it would be a good idea to split this distribution to:

vips-shared-w64-web-x.y.z.zip
vips-shared-w64-all-x.y.z.zip
vips-dev-w64-web-x.y.z.zip
vips-dev-w64-all-x.y.z.zip

The -shared variant will only include the executables (vips.exe, vipsedit.exe, vipsheader.exe and vipsthumbnail.exe) with the dependent DLL files and a copy of the GTK-Doc files. The -dev variant will only include the necessary headers and all .lib, .def, .a files for the -shared variant. Perhaps we could also include some C / C++ code examples in this build: https://libvips.github.io/libvips/API/current/using-from-c.html#id-1.2.4.10.3 https://libvips.github.io/libvips/API/current/using-from-cpp.html#using-cpp

We could also add a third variant containing the statically linked executable files without relying on external DLL files:

vips-static-w64-web-x.y.z.zip

Note that this is only possible for -web distribution of libvips. Because distributing statically linked binaries against GPL libraries, violates the GPL license.

Finally, I think it would be useful to release the 32-bit version as well. This will then be the entire list of Windows builds:

vips-static-w64-web-x.y.z.zip
vips-shared-w64-web-x.y.z.zip
vips-shared-w64-all-x.y.z.zip
vips-dev-w64-web-x.y.z.zip
vips-dev-w64-all-x.y.z.zip
vips-static-w32-web-x.y.z.zip
vips-shared-w32-web-x.y.z.zip
vips-shared-w32-all-x.y.z.zip
vips-dev-w32-web-x.y.z.zip
vips-dev-w32-all-x.y.z.zip

Pheww.. that's a lot of files! This brings us to the next proposal: #5

reregaga commented 1 year ago

It would be helpful to include this description on the release page. Or provide a link to this issue.