Main Site Contents Up Previous Next

Using Gtk2 on Windows

Cava Packager 2.0 can successfully package Gtk2 based applications on Windows.

Tested against the CamelBox Perl distibution, the following additional steps are required.

Firstly, all of the Gtk2 releated dlls need to be added as Additional Shared Libraries. In the CamelBox distribution these are all distributed in the Perl/bin directory.

charset.dll
freetype6.dll
iconv.dll
intl.dll
jpeg62.dll
libart_lgpl_2-2.dll
libatk-1.0-0.dll
libcairo-2.dll
libexpat-1.dll
libfontconfig-1.dll
libgailutil-18.dll
libgdk-win32-2.0-0.dll
libgdk_pixbuf-2.0-0.dll
libgio-2.0-0.dll
libglade-2.0-0.dll
libgladeui-1-7.dll
libglib-2.0-0.dll
libgmodule-2.0-0.dll
libgnomecanvas-2-0.dll
libgobject-2.0-0.dll
libgoocanvas-3.dll
libgthread-2.0-0.dll
libgtk-win32-2.0-0.dll
libpango-1.0-0.dll
libpangocairo-1.0-0.dll
libpangoft2-1.0-0.dll
libpangowin32-1.0-0.dll
libpng12-0.dll
libtiff3.dll
libxml2.dll
zlib1.dll

Finally, you need to add the Gtk2 configuration files and some gtk-2.0 libraries. The best way to do this is to add a Post Build Script to your project configuration and use that to add the necessary files to your dll directory after each build.

An example post build script that adds the necessary files from the CamelBox distribution is:

use strict;
use warnings;
use File::Copy::Recursive;
use Cava::Packager::Release;

my $release = Cava::Packager::Release->new();

my $dllpath = $release->get_dll_path;

my $targetpath = qq($dllpath/etc);
mkdir($targetpath, 0644);

my $sourcefolder = q(c:/camelbox/etc);
File::Copy::Recursive::dircopy($sourcefolder, $targetpath); 

$targetpath = qq($dllpath/lib);
mkdir($targetpath, 0755);

$targetpath = qq($dllpath/lib/gtk-2.0);
mkdir($targetpath, 0755);

$sourcefolder = q(c:/camelbox/lib/gtk-2.0);

File::Copy::Recursive::dircopy($sourcefolder, $targetpath);

1;




Contents Up Previous Next


Cava Packager Copyright © 2006-2012 Mark Dootson