EasyRPG / buildscripts

The scripts used to compile needed libraries for supported platform ports on our Jenkins server
https://ci.easyrpg.org/view/Toolchains/
Other
17 stars 18 forks source link

Migrate to "vcpkg" tool for windows toolchain #24

Closed Ghabry closed 5 years ago

Ghabry commented 7 years ago

vcpkg tool appears to be under development since this year and is a tool+repo by Microsoft which contains user contributed buildscripts for some libraries: https://github.com/Microsoft/vcpkg

Have to check if it supports static library builds.

So this basicly fulfills the same purpose as my powershell script but is written in CMake. :D. Does not ship all libraries (and for ICU we better build the small data file on our own).

carstene1ns commented 7 years ago

Looks good: https://github.com/Microsoft/vcpkg/blob/master/ports/expat/portfile.cmake

Ghabry commented 7 years ago

The only annoyance I'm seeing is that multithreaded builds don't work for all libs, so compiling takes ages. :(

It supports DLL builds and static builds and provides ways to compile for x86, x64 and UWP. So is excellent for our purposes 👍 .

The following packages are missing and I would need to submit a PR to the vcpkg repo:

Oh fancy for ICU it automatically downloads msys 👍 . And UWP builds are currently not supported (I did better here :D)

And harfbuzz depends on glib which doesn't support static builds.

I think I have to work on a migration to vcpkg after the summer break, makes my life much easier :D

Ghabry commented 7 years ago

speexdsp was added in the meanwhile.

Still missing: xmp(-lite) and wildmidi, need to submit a patch

Other problems:

No problems:

Providing custom portfiles is quite easy, so most of the problems should be solvable. Harfbuzz in freetype could be upstreamed.

Ghabry commented 7 years ago

Submitted ports for xmplite and wildmidi ~https://github.com/Microsoft/vcpkg/pull/1901~ ~https://github.com/Microsoft/vcpkg/pull/1902~

all merged

Ghabry commented 6 years ago

Current status of vcpkg:

  1. I will keep Harfbuzz out for now and only use freetype beacuse I have compile problems when disabling glib.
  2. Freetype has a useless dep on bzip2 but this is so minor that I don't see an issue in keeping it in.
  3. For libsndfile, opusfile, sdl2 image and sdl2 mixer I try to upstream feature options to allow disabling of useless deps (which is libflac for sndfile, openssl for opusfile (that one is especially bad), some image and music formats.
  4. Our fancy ICU patch can't be upstreamed, is too invasive ;)
Ghabry commented 6 years ago

Renamed it from "Evaluate" to "Migrate" because I already decided about this.

Just some status update about the usability of the packages:

No problems: zlib, libpng, expat, freetype, libmpg123, libogg, libvorbis, wildmidi, xmp-lite, pixman, speexdsp, opus, SDL2

No problems anymore (build time flag, upstream):

Not nice, but not really a problem:

Still problematic but not important by now:

Needs manual patch:

Which means there are no significant issues anymore that prevent using vcpkg, everything is managed in the upstream repo now.