Re: Compiling Glib 2.16.5 on strawberry perl



On 2016-07-05 at 06:05:18 +0000, RAPPAZ Francois wrote:
Hi Zaki

Thanks for the proposal. The perl you are using is installed by MSYS2, is it ? 

I'm using strawberry perl. And unfortunately libwinpthread-1.dll in strawberry is not compatible with the 
one in msys64/mingw32.

Yes, the Perl and libgtk I am using are built by the MSYS2 project.

I do eventually plan on putting out similar scripts so that Strawberry
Perl can use MSYS2/MinGW64 libgtk, but that will come later down the
road when I work out the specifics for PkgConfig.pm under Strawberry
Perl. I've started working it out on this issue <https://github.com/PerlPkgConfig/perl-PkgConfig/issues/27>,
so I'm hopeful that it will be straightforward.

A naïve question sorry: using perl from MSYS2, can you start a perl script from the "normal" MS cmd.exe 
shell ?

Yes, I can. The following works:

    C:\Users\zaki> set PATH=C:\msys64\mingw64\bin;%PATH%
    C:\Users\zaki> perl \msys64\home\zaki\curie\bin\curie.pl

As long as the `bin\` directory is in the %PATH%, I can access all the
necessary DLLs needed for GTK (libgtk, libglib) and Perl (XS DLLs for
Gtk3.pm, Glib.pm, Cairo.pm).

The only problem is that when installing the Perl modules (Gtk3.pm, Glib.pm,
Cairo.pm), I needed to insert :nosearch into the ExtUtils::MakeMaker LIBS
parameter. Part of my build tools does this automatically
(`EUMMnosearch.{sh,pm}` in <https://github.com/project-renard/devops/tree/master/script/mswin>).

A quick overview of how MSYS2 works is that there are 3 subsystems:

- MSYS2 which is used to run a Unix-like environment that is
  self-contained like Cygwin. Code compiled here depends upon a
  compatibility layer.
- MinGW64 and MinGW32 which are 64-bit and 32-bit subsystems which
  compile DLLs that are native to Windows and can be distributed without
  the MSYS2 system.

When you choose to install things using the `pacman` package manager
that comes with MSYS2, you have to choose which subsystem you want to
target (e.g., there is a Perl for MSYS2, a Perl for MinGW32, and a Perl
for MinGW64). More details are at <https://sourceforge.net/p/msys2/wiki/MSYS2%20introduction/>.

Regards,
- Zaki Mughal


François

-----Original Message-----
From: Zakariyya Mughal [mailto:zaki mughal gmail com]
Sent: mardi, 5. juillet 2016 07:13
To: RAPPAZ Francois
Cc: "Torsten Schönfeld"; gtk-perl-list gnome org
Subject: Re: Compiling Glib 2.16.5 on strawberry perl

On 2016-06-30 at 07:50:30 +0000, RAPPAZ Francois wrote:
Finally I succeed to compile this Gtk stuff.

The important thing is to change the prefix line in the pc files in
gtk+\lib\pkgconfig with prefix=${pcfiledir}/../..

The pc file to choose is the one corresponding to the first library
being searched in the  perl Makefile.pl step for a given package.

Once this change is done, there is still the need to indicate where
all the header files are using INC="-Ipath/to/file -I..."
but LIBS="..." is not needed.

With that the compiling + linking goes without undefined reference
errors.

Two remarks:
- why did nobody ever told me that on this list ? Did no one try to
compile this stuff on windows ?
- wxWidget is also based on external libs. It is set up in two steps
Alien::wxWidget + Wx and it's much, much, easier to install.

I have been compiling Gtk3 Perl packages using MSYS2 and find it much
easier to do consistently.

Would you be interested in a set of scripts that you can use on your
machines or on Appveyor? To give an example of what I was able to
accomplish, see the build artifact at
<https://ci.appveyor.com/project/zmughal/release/build/1.0.20/artifacts
.

That is a ZIP file that contains Perl, GTK+3, GTK themes, etc. along
with a PAR::Packer-based executable that starts the application (a PDF
reader based on MuPDF). I hope to take this and build an MSI installer
with it soon.

Cheers,
- Zaki Mughal


François


-----Original Message-----
From: gtk-perl-list [mailto:gtk-perl-list-bounces gnome org] On
Behalf Of "Torsten Schönfeld"
Sent: mercredi, 29. juin 2016 11:39
To: gtk-perl-list gnome org
Subject: Re: Compiling Glib 2.16.5 on strawberry perl

"RAPPAZ Francois" <francois rappaz unifr ch>:
pkg-config --libs glib-2.0
-Lc:/devel/target/0ca5583385db1135a53cf9e275815b19/lib -lglib-2.0
-
lintl

There's your problem.  You seem to have multiple conflicting
installations: C:/prog/gtk+ vs. C:/devel, and maybe others.  I
suggest cleaning this up, or at least cleaning up your PATH and
PKG_CONFIG_PATH environment variables, and trying again.
_______________________________________________
gtk-perl-list mailing list
gtk-perl-list gnome org
https://mail.gnome.org/mailman/listinfo/gtk-perl-list
_______________________________________________
gtk-perl-list mailing list
gtk-perl-list gnome org
https://mail.gnome.org/mailman/listinfo/gtk-perl-list


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]