Thursday, September 18, 2014

Install Vala with GTK+ 3 in Windows

As you may know, vala have binary release for windows maintain by communities.
https://code.google.com/p/vala-win32/downloads/list
But the binary release are not up to date now, their last release is for vala v0.12.0 on April 2011.

But if you really want to develop an Application with this awesome cross platform programming language in Windows, you still have a way, "build from source".

For build Vala from source in Windows, you can follow my step-by-step guide bellow to install:
- Vala v0.25.4 (latest version when i write this post) with
- GTK+ 3 v3.6.4-20130921 (latest version when i write this post).

Here's the guide to follow:
1. Download MinGW-builds from http://sourceforge.net/projects/mingwbuilds/
2. Run "mingw-builds-install.exe", select :
  • Architecture = "x32"
  • Threads = "win32"
  • Exception = "sjlj"
like picture below:

3. Continue installation wizard, then choose directory where to install MinGW to:
C:\mingw-builds


4. After installation finish, download the latest "external-binary-packages" from http://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/ then copy/extract the "msys" directory to:
C:\mingw-builds\mingw32


5. Open "C:\mingw-builds\mingw32\msys\etc\fstab" with Notepad++ and add this line:
C:\mingw-builds\mingw32 /mingw
in it then save.

6. Download the Win32 GTK+ v3 "all-in-one bundle" from http://www.gtk.org/download/win32.php and then copy/extract it's content to "C:\mingw-builds\mingw32".

7. In order to get a nice shell, create a new shortcut, e.g. on the Desktop and set shortcut location to:
C:\mingw-builds\mingw32\msys\bin\mintty.exe /bin/bash -l
then leave shortcut name to "mintty.exe" or "mintty" or "MinGW-Console".

8. Create "home" folder inside "C:\mingw-builds\mingw32\msys" folder then create folder with the name same as your windows login name inside "home" folder.

You can get your windows login name simply with opening "command prompt".

9. Download the latest source tarball from https://wiki.gnome.org/Projects/Vala/Release and then copy/extract it's content to "C:\mingw-builds\mingw32\msys\home\{Your Username}"

10. Add Vala Directory path to your System Variable Path.
Open "Control Panel > System > Advanced system settings > Environment Variables ..."
Add New System Variable with :

  • Variable name = "ValaPath"
  • Variable value = "C:\mingw-builds\mingw32\msys\build\bin"

Then add "ValaPath" to System Variable Path
;%ValaPath%



11. Run the Mintty shortcut you created in step 7 and switch with "cd" to the vala source directory then execute command below:
cd vala-0.25.4/
./configure --prefix=/build
make
make install

If no error found, then your step to install Vala is complete. You can try to execute syntax below to check Vala is Ready:
gcc --version
valac --version
it will return versions for each compiler.

If no error found again, then you may try to create a GUI Application using Vala and GTK+ in windows. For express, you can try sample code from https://wiki.gnome.org/Projects/Vala/GTKSample eg, like below:

Create new File inside "C:\mingw-builds\mingw32\msys\home\{Your Username}" with "gtk-hello.vala" as filename. Then type code below as it's content:
using Gtk;

int main (string[] args) {
    Gtk.init (ref args);

    var window = new Window ();
    window.title = "First GTK+ Program";
    window.border_width = 10;
    window.window_position = WindowPosition.CENTER;
    window.set_default_size (350, 70);
    window.destroy.connect (Gtk.main_quit);

    var button = new Button.with_label ("Click me!");
    button.clicked.connect (() => {
        button.label = "Thank you";
    });

    window.add (button);
    window.show_all ();

    Gtk.main ();
    return 0;
}
then compile that source code using Vala Compiler:
valac --pkg gtk+-3.0 --cc=gcc gtk-hello.vala
if no error found when compile, you can execute the result application with call it:
gtk-hello.exe
it will show window like below:

Ok, Thanks for Reading. If you have problem when following my guide, drop me a comment below.

In other post i will show you how to:
- Run Created Application outside MinGW.
- Remove Empty Command Prompt behind Created Application if run outside MinGW.
- Publish application created using Vala & GTK+ in Windows for Windows OS

7 comments:

  1. thanks for this tutorial, but external-binary-packages is empty for me.

    ReplyDelete
  2. Thanks for reading. What do you mean by empty? Did you see empty file in 7zip file?

    ReplyDelete

  3. Hello dude, nice tutorial!
    I got to the point of "MAKE" and after ten minutos the "Libvala-0.3.0" show some errores ("cannot find -lint"), i searched for the problem and nothing... Any ideas? :(
    (Using vala source 0.29.3)

    Many thanks

    ReplyDelete
  4. Really nice post! I am using mingw installed from http://msys2.github.io/ and I'm waiting for your post explaining how to get rid of the empty command prompt when I run the app outside mingw.

    Thank you!

    ReplyDelete
    Replies
    1. Thank you for reading. Recently I don't have time to blogging. But I will try to write some post about it at my free time.

      Delete
    2. Great! Thank you! I really want to get rid of that empty command prompt window!

      Thank you again for sharing your knowledge!

      Delete
    3. I found out how to do it.
      I just needed to pass the -mwindows flag to the C compiler.
      It can be passed directly to the vala compiler through -X:
      valac --pkg gtk+-3.0 --cc=gcc gtk-hello.vala -X -mwindows

      Delete