Giter Club home page Giter Club logo

build-win64-mxe's Introduction

build-win64-mxe

Experiment with building a libvips binary for 64-bit Windows with MXE.

Dependencies updates

Name MXE version build-win64 version New version 🔺/🔷/🔻 Notes
expat 2.2.5 2.2.5 2.2.5 🔷 -
fftw 3.3.6-pl1 3.3.7 3.3.8 🔺 -
giflib 5.1.4 5.1.4 5.1.4 🔷 -
glib 2.50.2 2.54.2 2.54.2 🔷 -
imagemagick 6.9.0-0 6.8.9 6.9.10-4 🔺 -
lcms 2.9 2.9 2.9 🔷 -
libexif - 0.6.21 0.6.21 🔷 + shutter speed math exception patch.
libgsf 1.14.30 1.14.42 1.14.42 🔷 -
libjpeg-turbo 1.5.3 1.5.3 1.5.3 🔷 Replaced this patch with this one.
libpng 1.6.34 1.6.30 1.6.34 🔺 -
librsvg 2.40.5 2.40.19 2.43.1 🔺 Requires the Rust toolchain + added patch for 'librsvg_internals' linking.
libwebp 0.4.4 0.6.1 1.0.0 🔺 -
matio 1.5.2 1.5.6 1.5.12 🔺 -
openslide - 3.4.1 3.4.1 🔷 Added some MXE specific patches.
pango 1.37.4 1.40.14 1.42.1 🔺 -
poppler 0.51.0 0.46.0 0.66.0 🔺 Switched to CMake.
tiff 4.0.9 4.0.9 4.0.9 🔷 -

Sub-dependencies updates

Name MXE version build-win64 version New version 🔺/🔷/🔻 Notes
cairo 1.15.4 1.14.12 1.15.12 🔺 -
fontconfig 2.12.6 2.12.6 2.12.6 🔷 -
freetype 2.9.1 2.9 2.9.1 🔺 -
fribidi 0.19.6 - 0.19.7 🔺 (new) -
gdk-pixbuf 2.32.3 2.36.0 2.36.12 🔺 Thumbnailer cross-compile failure patch added.
gettext 0.19.8.1 0.19.8 0.19.8.1 🔺 -
harfbuzz 1.7.6 1.7.6 1.7.6 🔷 -
hdf5 1.8.12 - 1.8.12 🔺 (new) -
libcroco 0.6.2 0.6.12 0.6.12 🔷 -
libffi 3.2.1 3.2.1 3.2.1 🔷 -
libiconv 1.15 1.15 1.15 🔷 -
libxml2 2.9.4 2.9.8 2.9.8 🔷 -
openjpeg 2.3.0 2.1 2.3.0 🔺 -
pixman 0.33.6 0.34.0 0.33.6 🔻 Couldn't find a tarball for version 0.34.0 here.
sqlite 3.24.0 3.22.0 3.24.0 🔺 -
zlib 1.2.11 1.2.11 1.2.11 🔷 + libz.dll naming patch & switched to CMake.

Dependencies overview

libvips-web
libvips-42.dll
└───libcairo-2.dll
│   └───libgcc_s_seh-1.dll
│   └───libfontconfig-1.dll
│   │   └───libgcc_s_seh-1.dll
│   │   └───libexpat-1.dll
│   │   └───libfreetype-6.dll
│   │   └───libpng16-16.dll
│   │   └───libz1.dll
│   └───libfreetype-6.dll
│   │   └───libharfbuzz-0.dll  
│   │   └───libpng16-16.dll
│   │   └───libz1.dll
│   └───libpixman-1-0.dll
│   │   └───libgcc_s_seh-1.dll
│   └───libpng16-16.dll
│   │   └───libz1.dll
│   └───libz1.dll
└───libexif-12.dll
│   └───libintl-8.dll
│       └───libiconv-2.dll
└───libexpat-1.dll
└───libfftw3-3.dll
└───libgif-7.dll
└───libglib-2.0-0.dll
│   └───libintl-8.dll
│       └───libiconv-2.dll
└───libgmodule-2.0-0.dll
│   └───libglib-2.0-0.dll
│       └───libintl-8.dll
└───libgobject-2.0-0.dll
│   └───libglib-2.0-0.dll
│   │   └───libintl-8.dll
│   └───libffi-6.dll
└───libgsf-1-114.dll
│   └───libgio-2.0-0.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libgmodule-2.0-0.dll
│   │   └───libgobject-2.0-0.dll
│   │   └───libz1.dll
│   └───libglib-2.0-0.dll
│   │   └───libintl-8.dll
│   └───libgobject-2.0-0.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libffi-6.dll
│   └───libintl-8.dll
│   │   └───libiconv-2.dll
│   └───libxml2-2.dll
│   │   └───libz1.dll
│   │   └───libiconv-2.dll
│   └───libz1.dll
└───libintl-8.dll
│   └───libiconv-2.dll
└───libjpeg-62.dll
└───liblcms2-2.dll
└───libpango-1.0-0.dll
│   └───libfribidi-0.dll
│   │   └───libglib-2.0-0.dll
│   └───libglib-2.0-0.dll
│   │   └───libintl-8.dll
│   └───libgobject-2.0-0.dll
│       └───libglib-2.0-0.dll
│       └───libffi-6.dll
└───libpangoft2-1.0-0.dll
│   └───libpango-1.0-0.dll
│   │   └───libfribidi-0.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libgobject-2.0-0.dll
│   └───libfontconfig-1.dll
│   │   └───libgcc_s_seh-1.dll
│   │   └───libexpat-1.dll
│   │   └───libfreetype-6.dll
│   │   └───libpng16-16.dll
│   │   └───libz1.dll
│   └───libfreetype-6.dll
│   │   └───libharfbuzz-0.dll  
│   │   └───libpng16-16.dll
│   │   └───libz1.dll
│   └───libglib-2.0-0.dll
│   │   └───libintl-8.dll
│   └───libgobject-2.0-0.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libffi-6.dll
│   └───libharfbuzz-0.dll 
│       └───libgcc_s_seh-1.dll
│       └───libfreetype-6.dll
│       └───libglib-2.0-0.dll
└───libpng16-16.dll
│   └───libz1.dll
└───librsvg-2-2.dll
│   └───libcairo-2.dll
│   │   └───libgcc_s_seh-1.dll
│   │   └───libfontconfig-1.dll
│   │   └───libfreetype-6.dll
│   │   └───libpixman-1-0.dll
│   │   └───libpng16-16.dll
│   │   └───libz1.dll
│   └───libcroco-0.6-3.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libxml2-2.dll
│   └───libfontconfig-1.dll
│   │   └───libgcc_s_seh-1.dll
│   │   └───libexpat-1.dll
│   │   └───libfreetype-6.dll
│   │   └───libpng16-16.dll
│   │   └───libz1.dll
│   └───libgdk_pixbuf-2.0-0.dll
│   │   └───libgio-2.0-0.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libgobject-2.0-0.dll
│   │   └───libintl-8.dll
│   │   └───libjpeg-62.dll
│   │   └───libpng16-16.dll
│   │   └───libtiff-5.dll
│   └───libgio-2.0-0.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libgmodule-2.0-0.dll
│   │   └───libgobject-2.0-0.dll
│   │   └───libz1.dll
│   └───libglib-2.0-0.dll
│   │   └───libintl-8.dll
│   └───libgobject-2.0-0.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libffi-6.dll
│   └───libpango-1.0-0.dll
│   │   └───libfribidi-0.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libgobject-2.0-0.dll
│   └───libpangocairo-1.0-0.dll
│   │   └───libpango-1.0-0.dll
│   │   └───libpangoft2-1.0-0.dll
│   │   └───libpangowin32-1.0-0.dll
│   │   └───libcairo-2.dll
│   │   └───libfontconfig-1.dll
│   │   └───libfreetype-6.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libgobject-2.0-0.dll
│   └───libpangoft2-1.0-0.dll
│   │   └───libpango-1.0-0.dll
│   │   └───libfontconfig-1.dll
│   │   └───libfreetype-6.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libgobject-2.0-0.dll
│   │   └───libharfbuzz-0.dll 
│   └───libxml2-2.dll
│       └───libz1.dll
│       └───libiconv-2.dll
└───libtiff-5.dll
│   └───libz1.dll
│   └───libjpeg-62.dll
└───libwebp-7.dll
└───libwebpmux-3.dll
│   └───libwebp-7.dll
└───libz1.dll
libvips-all Same as libvips-web + these extra dependencies:
libvips-42.dll
└───libMagickCore-6.Q16-6.dll
│   └───libcairo-2.dll
│   │   └───libgcc_s_seh-1.dll
│   │   └───libfontconfig-1.dll
│   │   └───libfreetype-6.dll
│   │   └───libpixman-1-0.dll
│   │   └───libpng16-16.dll
│   │   └───libz1.dll
│   └───libfftw3-3.dll
│   └───libfontconfig-1.dll
│   │   └───libgcc_s_seh-1.dll
│   │   └───libexpat-1.dll
│   │   └───libfreetype-6.dll
│   │   └───libpng16-16.dll
│   │   └───libz1.dll
│   └───libgobject-2.0-0.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libffi-6.dll
│   └───libjpeg-62.dll
│   └───liblcms2-2.dll
│   └───libopenjp2.dll
│   └───libpango-1.0-0.dll
│   │   └───libfribidi-0.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libgobject-2.0-0.dll
│   └───libpangocairo-1.0-0.dll
│   │   └───libpango-1.0-0.dll
│   │   └───libpangoft2-1.0-0.dll
│   │   └───libpangowin32-1.0-0.dll
│   │   └───libcairo-2.dll
│   │   └───libfontconfig-1.dll
│   │   └───libfreetype-6.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libgobject-2.0-0.dll
│   └───libpng16-16.dll
│   └───libtiff-5.dll
│   │   └───libz1.dll
│   │   └───libjpeg-62.dll
│   └───libwebp-7.dll
│   └───libwebpmux-3.dll
│   │   └───libwebp-7.dll
│   └───libxml2-2.dll
│   │   └───libz1.dll
│   │   └───libiconv-2.dll
│   └───libz1.dll
└───libmatio-4.dll
│   └───libz1.dll
│   └───libhdf5-8.dll
│       └───libz1.dll
└───libopenslide-0.dll
│   └───libcairo-2.dll
│   │   └───libgcc_s_seh-1.dll
│   │   └───libfontconfig-1.dll
│   │   └───libfreetype-6.dll
│   │   └───libpixman-1-0.dll
│   │   └───libpng16-16.dll
│   │   └───libz1.dll
│   └───libgdk_pixbuf-2.0-0.dll
│   │   └───libgio-2.0-0.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libgobject-2.0-0.dll
│   │   └───libintl-8.dll
│   │   └───libjpeg-62.dll
│   │   └───libpng16-16.dll
│   │   └───libtiff-5.dll
│   └───libgio-2.0-0.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libgmodule-2.0-0.dll
│   │   └───libgobject-2.0-0.dll
│   │   └───libz1.dll
│   └───libglib-2.0-0.dll
│   │   └───libintl-8.dll
│   └───libgobject-2.0-0.dll
│   │   └───libglib-2.0-0.dll
│   │   └───libffi-6.dll
│   └───libjpeg-62.dll
│   └───libopenjp2.dll
│   └───libpng16-16.dll
│   │   └───libz1.dll
│   └───libsqlite3-0.dll
│   └───libtiff-5.dll
│   │   └───libz1.dll
│   │   └───libjpeg-62.dll
│   └───libxml2-2.dll
│   │   └───libz1.dll
│   │   └───libiconv-2.dll
│   └───libz1.dll
└───libpoppler-glib-8.dll
    └───libpoppler-77.dll
    │   └───libstdc++-6.dll
    │   └───liblcms2-2.dll
    │   └───libopenjp2.dll
    │   └───libjpeg-62.dll
    │   └───libpng16-16.dll
    │   └───libtiff-5.dll
    │   └───libz1.dll
    └───libstdc++-6.dll
    └───libcairo-2.dll
    │   └───libgcc_s_seh-1.dll
    │   └───libfontconfig-1.dll
    │   └───libfreetype-6.dll
    │   └───libpixman-1-0.dll
    │   └───libpng16-16.dll
    │   └───libz1.dll
    └───libfreetype-6.dll
    │   └───libharfbuzz-0.dll  
    │   └───libpng16-16.dll
    │   └───libz1.dll
    └───libgio-2.0-0.dll
    │   └───libglib-2.0-0.dll
    │   └───libgmodule-2.0-0.dll
    │   └───libgobject-2.0-0.dll
    │   └───libz1.dll
    └───libglib-2.0-0.dll
    │   └───libintl-8.dll
    └───libgobject-2.0-0.dll
        └───libglib-2.0-0.dll
        └───libffi-6.dll

TODO

  • Try to build with orc.
  • Add cfitsio to the 'all target'. MXE already has this dependency.
  • Add OpenEXR to the 'all target'. MXE already has this dependency.
  • Try to update ImageMagick6 to the latest version (latest versions of ImageMagick are continuous fuzzed by OSS-Fuzz, so it'll reduce the attack surface).
  • Try to build libvips as static library.
  • Let Travis build libvips with pre-compiled dependencies.
  • Do we need to add libvipsCC-42.dll and libvips-cpp-42.dll? For NetVips this isn't necessary.
  • Should we include the etc, include, lib and share folders? Also this isn't necessary for NetVips.
  • AUTHORS, ChangeLog, COPYING and README.md needs to be added.
  • Incorporate all new dependencies and patches into MXE.
    • Should we also add libvips-web?
    • Not sure about librsvg, because v2.42.0+ requires the Rust toolchain.
  • Do we need to add expat, zlib, gettext to vips-all_DEPS and vips-web_DEPS?
  • Try to update Pixman to 0.34.0.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.