C Python Makefile C++ CMake Perl Other
Permalink
Failed to load latest commit information.
atk Use python 3.6 instead of 3.4 Sep 18, 2017
cairo cairo: add hand made pc files Mar 2, 2017
check-libs Project to verify the correct use of the pkgconfig .pc files. Sep 4, 2017
clutter/build/win32 clutter: update to version 1.26.2 May 23, 2017
cogl cogl: update to version 1.22.2 May 23, 2017
cyrus-sasl/include cyrus-sasl: build with lmdb Nov 24, 2015
enchant Switch from mozilla-build to msys2. Mar 16, 2015
ffmpeg build ffmpeg with mpeg1 video encoding/decoding support Jun 27, 2017
fontconfig fontconfig: handle debug builds Jun 22, 2016
freetype Project freetype: install pkgconfig .pc file. Sep 2, 2017
gdk-pixbuf Use python 3.6 instead of 3.4 Sep 18, 2017
gettext Fixed error build the 'gettext' project for the vs14 support (#86) Oct 2, 2016
glib-networking glib-networking: update to version 2.50.0 Sep 20, 2016
glib-openssl Build glib-openssl with meson. Aug 10, 2017
glib Use python 3.6 instead of 3.4 Sep 18, 2017
grpc grpc: update to version 1.0.0 Sep 27, 2016
gsettings-desktop-schemas gsettings-desktop-schemas: add patch to fix the build with py3 May 16, 2017
gtk gtk: update to version 2.24.31 Oct 3, 2016
gtk3 Use python 3.6 instead of 3.4 Sep 18, 2017
gtksourceview3/build/win32 Use python 3.6 instead of 3.4 Sep 18, 2017
gvsbuild libxml2: update to version 2.9.5 Sep 18, 2017
harfbuzz harfbuzz: update to version 1.4.2 Feb 24, 2017
json-c support build vs14 for 'json-c' project Jan 5, 2017
json-glib/build/win32 Use python 3.6 instead of 3.4 Sep 18, 2017
leveldb leveldb: update to version 1.20 May 23, 2017
libarchive libarchive: avoid getting errors as warnings when building with debug May 9, 2017
libcroco libcroco: handle debug/release directories Jun 22, 2016
libffi libffi: add debug configuration Jun 22, 2016
libgxps Project libgxps: use meson for building. Sep 2, 2017
libjpeg-turbo/pc-files Project libjpeg-turbo: install pkgconfig .pc files. Sep 2, 2017
libmicrohttpd libmicrohttpd: update to version 0.9.54 May 23, 2017
libpng Project libpng: install also libpng16.pc with the same content that l… Sep 8, 2017
librsvg/build/win32 librsvg: handle debug/release directories Jun 22, 2016
libsoup Use python 3.6 instead of 3.4 Sep 18, 2017
libssh Added support build vs14 for the 'libssh' project Sep 14, 2016
libtiff-4 Add project libtiff-4 and use it for libgxps. Sep 4, 2017
libxml2 libxml2: update version file Sep 18, 2017
libyuv libyuv: build with ninja and cmake Aug 18, 2017
lmdb/build/win32 Added support build vs14 for the 'lmdb' project Sep 11, 2016
lz4/visual lz4: update to version 1.8.0 Aug 31, 2017
openssl Typo Aug 18, 2017
opus/win32 opus: update to version 1.2 Jun 22, 2017
pango/win32 Use python 3.6 instead of 3.4 Sep 18, 2017
portaudio portaudio: fix cmake check Nov 15, 2016
protobuf-c protobuf-c: add patch to not build the tests Jul 15, 2016
win-iconv win-iconv: update to version 0.0.8 Mar 30, 2016
x264 x264: use git and fetch the last commit from the stable branch Apr 20, 2017
zlib/pc-files zlib: install .pc pkgconfig file Sep 1, 2017
.gitignore Ignore the python cache dir May 8, 2017
COPYING Add license file Mar 19, 2016
README.md Bump python required version to 3.6. Sep 2, 2017
build.py Added a group class to combine easily differents projects, and uset it May 8, 2017
mod.md Trim trailing spaces. Oct 10, 2013
stack.props Use /maxcpucount and /nodeReuse:True for calls to msbuild and /MP for… Oct 8, 2013

README.md

Goals

This python script helps you build a full GTK+ library stack for Windows using Visual Studio.

The powershell script was originally developed by the HexChat developers, make sure to check their page for more information about the original script.

HexChat developers decided that their script should focus on their specific needs, this fork tries to be a bit more generic, in particular it pursues the following goals

  1. Build GTK+ 3 - we want to focus on the current version of GTK
  2. Support multiple version of Visual Studio - at the moment we are focusing on VS 2013, but we include projects for other versions and we gladly accept patches
  3. We try to follow as much as possible the conventions of the upstream MSVC projects by Fan Chun-wei - Compiling the GTK+ (and Clutter) stack using Visual C++ 2008 and later.
  4. We are pretty liberal about adding more libraries to the script - at some point we will need to make the set of libraries that are built configurable and easily extensible, but right now we are ok with adding libraries that are useful to the users of this script
  5. We try to fetch tarballs from their original locations - if patches are needed we try to fork the project on github and host a patched tarball there
  6. We check sha256 hashes of the downloaded files: if error arise check that the download is not been interrupted: a partial file is likely to miss the hash check. Delete the file and try again.
  7. The download is done using the ssl certificate (handled by the system), in case of error the download is tried again without the certificate.
  8. We try to download also the tools needed and using them from a local directory, without any installation. Actually we use directly, among others, cmake, meson, ninja, nuget and perl.

Building

  1. Install the following build tools and dependencies:

  2. Follow the instructions on the msys2 page to update the core packages. The needed packages for the script (make, diffutils, ...) are download and installed automatically if not presents in the msys2 installation.

  3. Clone this repository to C:\gtk-build\github\gvsbuild It contains the build script, project files and patches.

  4. Now start a command-line window as a regular user. Go to the gvsbuild directory and start building with the script. For example, to build 32-bit GTK+ 3 and its dependencies, run:

    cd C:\gtk-build\github\gvsbuild
    python .\build.py build gtk3
    

    To build the 64-bit version, run:

    cd C:\gtk-build\github\gvsbuild
    python .\build.py build -p x64 gtk3
    

    For more information about the possible commands. Run

    python .\build.py --help
    
  5. When the script is done, your GTK+ stack will be found under C:\gtk-build\gtk. Enjoy!