Giter VIP home page Giter VIP logo

gtk-win32's Introduction

Here you can download a GTK+ 2 bundle (and a few additional libraries) built with Visual Studio 2015. HexChat for Windows is built using this bundle.

GTK+ Bundle

This is the bundle built by us containing all the GTK+ binaries, headers and import libraries. If you just want to use GTK+ for your application and don't want to build it yourself, download this. You will also need the Visual C++ redistributable to be able to run applications that use this bundle.

GTK+ bundle 32-bit 64-bit
Microsoft Visual C++ Redistributable Package for Visual Studio 2015 vcredist_x86.exe - 32-bit vcredist_x64.exe - 64-bit

These are the libraries in the bundle:

Library Version Source
ATK 2.20.0 Source
Cairo 1.14.6 Source
Enchant 1.6.1 Source
Fontconfig 2.8.0 Source
FreeType 2.6.5 Source
GDK-PixBuf 2.34.0 Source
gettext-runtime 0.18 Source
GLib 2.48.2 Source
GObject-Introspection 1.48.0 Source
GTK+ 2.24.30 Source
HarfBuzz 1.3.0 Source
lgi 0.9.1 Source
libffi 3.2.1 Source
libpng 1.6.25 Source
libxml2 2.9.4 Source
luajit 2.0.4 Source
OpenSSL 1.0.2h Source
Pango 1.40.2 Source
Pixman 0.34.0 Source
win-iconv 0.0.8 Source
zlib 1.2.8 Source

Building from Source

If you want to build the bundle from source yourself, we have a PowerShell script that will download the sources, apply some patches and run the build. It is largely based on Fan Chun-wei's Compiling the GTK+ (and Clutter) stack using Visual C++ 2008 and later.

  1. Install the following build tools and dependencies:

  2. Follow the instructions on the msys2 page to update the core packages.

  3. Install needed packages in the msys2 shell

    pacman -S gzip nasm patch tar xz
  4. Install the following build tools and dependencies:

    • Perl 5.20 x86 or x64 (extract to C:\gtk-build\perl-5.20 so you have C:\gtk-build\perl-5.20\Win32\bin\perl.exe or C:\gtk-build\perl-5.20\x64\bin\perl.exe)
    • msgfmt (extract to C:\gtk-build so you have C:\gtk-build\msgfmt\msgfmt.exe)

    Extract the files with 7-zip, or in the MSYS2 shell with the tar command, eg tar xf perl-5.20.0-x86.tar.xz

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

  6. Now you have to allow PowerShell scripts to be run on your system. Open a PowerShell prompt as Administrator and run the following command:

    Set-ExecutionPolicy RemoteSigned
  7. Now start a new PowerShell window as a regular user. Go to the gtk-win32 directory and start building with the script. For example, to build the 32-bit bundle, run:

    C:\gtk-build\github\gtk-win32\build.ps1

    To build the 64-bit bundle instead, run:

    C:\gtk-build\github\gtk-win32\build.ps1 -Configuration x64

    The script has some parameters you can pass in. Run

    Get-Help -Full C:\gtk-build\github\gtk-win32\build.ps1

    to see the help for the parameters and examples.

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

GTK+ 2 dependency graph

gtk-win32's People

Contributors

bviktor avatar nacho avatar pbor avatar tingping avatar tomek avatar vanillajonathan avatar xhmikosr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gtk-win32's Issues

x64 PS build

Right now the powershell script doesn't work for me on x64. It may have been me who broke it, I don't know. Will look into it.

Make the projects more like Fan's upstream ones

Well right now we are basically taking fan's and changing some variables on where it is going to be build the project and installed. Apart from probably changing something else. Why don't we just pick fan's style and we avoid having to maintain forked versions of the projects?

License

Hey guys, just wanted to concrete what kind of license the project has. If the same as hexchat I guess we should add the COPYING file to it.

To have something like jhbuild build and jhbuild buildone

Basically right now what happens is that you either build all the packages or you build one package with all the dependencies.

I'd actually would like to have something like "build.ps1 build gtk" which would basically be the same as "build.ps1 -OnlyOne gtk" but also have another command "build.ps1 buildone gtk" which would take care of only building gtk without the dependencies.

I did not see anything like that already implemented but let me know if I am wrong or if this feature is a WONTFIX.

missing glibconfig.h

The binary package for Win64 does not include glibconfig.h, which is mandatory.
Didn't test Win32.

Use upstream tarballs

Now that tar.xz/gz/bzip2 is supported I saw the upstream tarballs are used but still storaged on the hexchat web page. Why don't we just use the direct urls to those tarballs?

Separation in build

Now we have Win32 and x64 in gtk, but not in build. Let's fix it sometime.

(Tracking) Latest versions

List last updated: 2017-01-07
Packages last updated: 2016-09-06

* Next to name indicates we mirror the tarballs

Name | Version in gtk-win32 | Latest version

Note: Ignore odd-numbered minor versions of atk, gdk-pixbuf, glib, gobject-introspection, gtk and pango because these are development releases.

Versions in latest HexChat release (2.12.0)

NameVersion
atk2.18.0
cairo1.14.6
enchant1.6.0
fontconfig2.8.0
freetype2.6.3
gdk-pixbuf2.32.3
gettext-runtime0.18
glib2.46.2
gtk2.24.30
harfbuzz1.2.3
libffi3.2.1
libpng1.6.21
openssl1.0.2g
pango1.39.0
pixman0.34.0
win-iconv0.0.8
zlib1.2.8
openssl certdata.txt2016-02-26

Move the webpage to the README file?

So I think it is better to have the information you currently have in the webpage also in the README. The reason is that in this way you do not need to open any web page if you have the repository cloned. i.e something like:

wingtk/gvsbuild@91e5f43

Let me know if it makes sense for you to change it and make a pull request.

pdbs for DLLs

It'd be great if the MSVC GTK+ bundle included pdbs for the DLLs. It's the main reason why I need to build from source - I need debug symbols.

Windows SDK Version

Thank you for your work building up to date libraries for Win32.

Are the libraries compatible with Windows XP? i.e. were they built with the v140_xp platform toolset?

Collaboration to create a GTK builder like project

Scratch all the previous issues I opened before and let's discuss here first whether it would be good to have some kind of collaboration. First thing to point is that my previous issues where kind of proposals to know your opinions on the different topics for my specific use case.

I think this project is quite a good starting point in order to have something like jhbuild for windows where one can build their specific libraries or projects by using this powershell script.

Instead of just forking the project and do some stuff I'd really prefer to have it as a joined project where we would join effords also with upstream gtk people.

My main goals is to be able to easily build gtk3 and maybe some other libraries. Keeping everything in a way so I can build just a library or a library with the specific deps without the need of building everything. Also I would like to convert this in the way of getting some decent GTK binaries for MSVC.

I am adding @fanc999 since he is the current maintainer of the GTK mvsc projects, in case he wants to add something to this.

Fatal error when using GTK bundle to build my program

When using the GTK build provided by this project, I get a following compiler error:

7>d:\program files\microsoft visual studio 12.0\vc\include\xkeycheck.h(203): warning C4005: 'inline' : macro redefinition
7>          c:\gtk\include\libintl.h(23) : see previous definition of 'inline'
7>d:\program files\microsoft visual studio 12.0\vc\include\xkeycheck.h(250): fatal error C1189: #error :  The C++ Standard Library forbids macroizing keywords. Enable warning C4005 to find the forbidden macro.

The solution is to remove/comment following lines at the top of the libintl.h file:

#ifdef _MSC_VER
#define inline __inline
#endif

The compiler I use is VS 2013 Community edition.

Update win-iconv and gettext-runtime build scripts

Now they generate makefiles during a GTK+ build. Generate solutions instead, modify them according to our build practices and add them to the repo.

This also means CMake won't be required for a GTK+ rebuild, only for win-iconv and gettext-runtime bumps (very rare).

Changes to use Meson for building

  • Add pkg-config files to more projects, at least for gtk but ideally everything we can (lua, python, openssl)
  • Build all of gettext such as xgettext
  • Find best way to install Meson (simply a python module, pip.exe install meson is enough)

Building on Windows 8.1 64 Visual Studio 2013 Fails

Hi,

I'am following steps for Building from Source on Windows 8.1 64 Bit with Visual Studio 2013 Community Edition and glib always fails. Due to this glib dependent libraries also fails.

Steps to reproduce bug :

  • Follow instructions given for Building from Source

Screenshot of shell log :

image

Use Fan's nmake files for harfbuzz

in our gtk3 fork of the gtk-win32 script I updated harfbuzz to the latest version and switched to use Fan's nmake files. This also removes the need to manually install ragel.exe which is a nice side effect.

wingtk/gvsbuild@37c573e

I think the patch should more or less apply to the upstream version of the script (I guess you may prefer to host the tarball yourselves for consistency with the rest). You may also need yto update to the latest pango which has the MSVC project fixed to look for the harfbuzz headers in the right place (patch is also available in the fork, but that is pretty mechanic to redo)

A way to specify additional compiler/linker settings

Hi,

I'am trying to build libraries with /MT flag. Is there a way to build with this type of specific settings? I tried to do it manually with text search&replace to cloned hexchat/gtk-win32 repo didn't help. If there is im happy to update readme instructions to include such a route.

Update glib to 2.44

So the new stable released was just released. I guess it is a good time to start checking if it builds fine and whether we need some patch upstream

Add gtksourceview 2.x in the build script

If possible, please add support to build gtksourceview 2.x in this project,

I assume it is not so much work for you and a lot of people would benefit from this, so you would get more exposure and testing of the GTK stack you provide.
Perhaps in the future, even hexchat could benefit by using this widget (autocompletion, line numbers, syntax highlighting, ...)

gobject-introspection support

Being done in gi branch.

  • gobject-introspection
  • luajit and lgi
  • pkg-config files for cairo, gdk-pixbuf, atk, pango
  • introspection files for pango, atk, gdk-pixbuf
  • introspection files for gtk (requires backporting work from gtk3)

Not a real issue but...

Just wanted to thank all you of you that are involved in this project. It is a miracle that this even exists.

Drop mozilla-build

Right now I think we use mozilla-build just for a few things that it provides. mozilla-build also uses msys which is kind of deprecated right now. Instead we should probably use msys2

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.