Hi,

I hope I am not too late in the discussion, Marc-André pointed me to it
yesterday :) i was not in the mailing list before so I don't know how to
jump in the discussion.

I am the author and current maintainer of cerbero, and like he described it
previously in this thread we are currently using it to build and package
GStreamer and its dependencies (more than 100) for Linux, Windows, OS X,
Android and IOS. You can check the results in
http://docs.gstreamer.com/display/GstSDK/Home

I believe cerbero could be very helpful for building  and packaging Gtk+ on
Windows and OS X. It's a build system that is platform and architecture
aware using recipes that are Python classes, which make it's very useful
for building software for different platforms and architecture and work
around all the build issues that are specific to a given platform or
architecture. I will try to highlight its different features to help you in
making your decision.


Bootstrap
=======
Bootstrapping is handled internally by cerbero, taking care of installing
the toolchain and building or installing all the build dependencies (m4,
libtool, autoconf, automake, gettext, yasm, cmake, etc...). On Linux it
requires a base system with python and git, on OS X is requires
additionally installing XCode (for the packaging tools) and on Windows it
also requires Mingw/msys and WiX (for the packaging)

Bootstrapping is as easy as:
  $ cerbero bootstrap

Or for Windows cross-compilation:
  $ cerbero -c config/cross-win64 bootstrap

For Windows we provide pre-compiled  native and cross toolchain for w32 and
w64 using mingw-w64 (that are also built using cerbero), so it's not
tighted to a specific distro for cross-compilation.


Build
====
The build process is split in 2 big steps: source handling and build
handling. We have backends for SVN, Git and tarballs for the sources and
Makefiles, Autotools and CMake for the build.
Projects are described using recipes, which are Python classes, so it's
really easy customizing the build process for any kind of project, adding
new backends or overwriting the steps in the recipe itself sub-classing the
step functions.

cerbero supports native and cross-compilation for Windows and universal
builds in OS X, where each project is built in a separate tree for the
different target archs (ppc, i386, x86_64) and merged into universal
binaries.


Packaging
========
Besides building, cerbero is also able to create native packages such as
MSI installer in Windows and .pkg packages in OSX. There are 3 kind of
packages available:
  * Package: base package that creates merge modules in Windows and .pkg in
OS X
  * SdkPackage: collection of Package's creating final installer (MSI
installer in Windows and a meta-package .pkg in OS X)
  * Application: creates an installer for applications (MSI installer in
Windows, .app package in OSX)
For each package, a runtime and a development package is created to make
the distribution easier.

Redistribution and bundling in applications
==============================
It's also very easy for applications to embed an redistribute the runtime.
On Windows each package included in the final installer is made using Merge
Modules and the same for OS X using .pkg
We have documented the deployment strategies for applications here:
http://docs.gstreamer.com/display/GstSDK/Deploying+your+application


Integration with IDE's
===============
Unfortunately not every body likes the shell, make,  the autotools and
pkg-config, so the integration with the native IDE's is very important.
The development package of the SDK allows developers using the regular
build process in unix systems, including the libtool libraries and the
pkgconfig files but it also allows developers to use VS or XCode.

For VS cerbero creates import libraries and a set of VS property sheets
similar to pkg-config files. So including Gtk+ in a Visual Studio project
is as simple as including the gtk+.props file, which will in turn include
all the dependency .props files and set the correct build and link flags.

For XCode cerbero creates a real OS X frameworks, so using the SDK is as
easy as drag and drop the Gtk+.framework into XCode .

I probably missed other features but I hope it's a good starting point to
convince you!

Cheers,
Andoni



-- 
Andoni Morales Alastruey

LongoMatch:The Digital Coach
http://www.longomatch.ylatuya.es
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list

Reply via email to