Re: Getting contributors via OpenHatch

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

 



Hi,

On Tue, Jun 3, 2014 at 11:34 PM, Ed . <ej_zg@xxxxxxxxxxx> wrote:
> Hi Jehan,
>
> Could you share your cookbook for setting up cross-compiling to Windows?

Sorry for the very late answer. I wanted to release a new version of
my cross-compilation tool before answering (because my locale copy was
already so much more advanced). Sorry for having let the time slide
that much. :-)

I have basically written a tool to help me cross compiling very easily.
See there: https://pypi.python.org/pypi/crossroad/
This is a python 3 tool, which you can install with:

$ pip3 install crossroad

You will need the following dependencies: 7z or rpm2cpio,
gcc-mingw-w64-i686, g++-mingw-w64-i686, binutils-mingw-w64-i686
(gcc-mingw-w64-x86-64, g++-mingw-w64-i686, and
binutils-mingw-w64-x86-64 respectively for 64-bit Windows).

Once all is installed, below my exact cookbook for compiling GIMP
master, for instance for Windows 64-bit:

$ crossroad w64

Installing various dependencies:
$ crossroad install win_iconv-devel libtiff-devel iso-codes-devel
liblzma-devel zlib-devel libbz2-devel libbz2-1 libexpat-devel
libexpat1 gtk2-devell ibSDL-devel liblcms2-2 liblcms2-devel

Compile babl, GEGL, cairo, all with the same procedure:
Note 1: there are babl/GEGL/cairo packages in the pre-compiler
packages, but the versions are not right for GIMP master. I use babl
and GEGL from git master, and cairo 1.12.16. They work ok for me.
Note 2: you may want to clone these repo just for Windows, rather than
using the ones you use for native Linux compiling, if you plan to
regularly compile for both platforms. Actually you may even want to
have one for Win 32 and one for 64 bit.

$ cd babl (respectively gegl/ and cairo/)
$ crossroad configure
Note: for GEGL, you must currently add --disable-docs option. Our GEGL
doc generation does not handle well cross-build. See Bug 733667 .
$ make -j
$ make -j install

Exiv2 (svn trunk) uses cmake:
$ svn checkout svn://dev.exiv2.org/svn/trunk exiv2-trunk
$ cd exiv2-trunk
$ crossroad cmake .
$ make
$ make install

Then gexiv2 (git master), same as babl/GEGL:
$ cd gexiv2
$ crossroad configure && make && make install

Finally compile GIMP master the same way. Note that I disable python
because it is not in the pre-built packages and I never really needed
it, but that should not be very difficult to cross-compile it the same
way as the rest (Python uses the configure/make/make install triplet
as well).
$ cd gimp
$ crossroad configure --disable-python
$ make
$ make install

To test it, I use a Windows 7 VM. I have a shared directory. I exit
crossroad (ctrl-d), go to the shared dir:
$ cd /my/share/virtualbox/dir/
$ crossroad -s w64

It creates a w64/ link, that I see as a directory in my Windows VM.
Alternatively, I could create a compressed archive to uncompress on
Win:
$ crossroad -c gimp-master.zip w64

And that's it! You have a working GIMP for Windows. I do the whole
process in less than 30 min, build time included. You could even
really easily automatize these in a script.
Note that you can add more dependencies (either by using pre-compiled
package. You can search them with `crossroad search` then install with
`crossroad install`; or compiling them yourself), but I just showed a
basic installation.

Jehan

> Cheers,
>
> Ed
>
> -----Original Message----- From: Jehan Pagès
> Sent: Tuesday, June 03, 2014 9:41 AM
> To: Partha Bagchi
> Cc: Gimp-developer
>
> Subject: Re:  Getting contributors via OpenHatch
>
> Hi,
>
> On Mon, Jun 2, 2014 at 11:11 PM, Partha Bagchi <partha1b@xxxxxxxxx> wrote:
>>
>>
>> On Mon, Jun 2, 2014 at 6:40 PM, Jehan Pagès <jehan.marmottard@xxxxxxxxx>
>> wrote:
>>>
>>>
>>> Hi,
>>>
>>> On Mon, Jun 2, 2014 at 6:18 PM, Elle Stone
>>> ...
>>>
>>> Like some others here, I don't really get it. I never had any problem
>>> with GIMP compilation. GIMP uses the very common tryptic of all GNU
>>> projects (and most Free Software): ./configure && make && make install
>>> It has some dependencies, especially when compiling the git version,
>>> but they all follow the same 3-command method. I just don't get what
>>> is difficult with this.
>>> ...
>>> Jehan
>>
>>
>>
>> Clearly you've never compiled on Windows and/or Mac and hence you make
>> such
>> statements.
>
>
> Well you take some serious assumption here, since I'm one of the rare
> GIMP devs who sometimes fixes bugs for Windows! I did once compiled on
> Windows, the problem was that it was slow as hell, but the compilation
> in itself was using the same 3 commands (once the environment was
> set-up, which is usually indeed very annoying on Windows but only done
> once). Now I rather cross-compile on Linux for Windows regularly. And
> it's fast and easy. Of course it means to understand the logics of
> cross-compiling first and that takes some time the first time as well.
> But computer science is not magic. Things take time. Developers need
> to understand things (and if a developer is not even *willing* to
> spare a little time to understand the overall concept of compilation,
> seriously I would doubt one's capacity to help our project
> efficiently).
>
> Do you have *any* example of other program which does things better
> than us as for compilation process? As said, we have the most common
> compilation system (the GNU one, in particular using the autotools. I
> have several dozen local repositories of various projects in my hard
> drive, they nearly all use the same), so that sounds strange to hear
> it can be a blocker.
>
> Jehan
> _______________________________________________
> gimp-developer-list mailing list
> List address:    gimp-developer-list@xxxxxxxxx
> List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
> List archives:   https://mail.gnome.org/archives/gimp-developer-list
_______________________________________________
gimp-developer-list mailing list
List address:    gimp-developer-list@xxxxxxxxx
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list





[Index of Archives]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [GIMP for Windows]     [KDE]     [GEGL]     [Gimp's Home]     [Gimp on GUI]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux