gtk/build/win32/vs9
Chun-wei Fan 61a74fbd61 VS2008/2010 support: Update README.txt
-Make the GDK-Pixbuf requirements more clear
-Tell people about the usage of ATK-2.x
2011-04-27 00:53:16 +08:00
..
gdk-win32.vcproj Visual C++ support: Fix the gdk-win32 Project 2011-02-11 17:45:32 +08:00
gdk.vcprojin Update Visual C++ 2008 Project Files Stuff 2011-01-24 00:10:19 +08:00
gtk-demo.vcproj Update MSVC 2008 Project Files 2011-01-12 18:36:05 +08:00
gtk.vcprojin Update VS 2008 support to use ATK-2.0 2011-04-18 01:57:37 +08:00
gtk+.sln gtk+.sln: Remove GDK-Pixbuf compilation stuff 2010-11-13 15:23:32 +09:00
gtk+.vsprops VS2008 support: Process filechooser gsettings xml 2011-04-25 15:05:02 +08:00
install.vcproj Add Visual Studio 2008 project files 2010-04-12 12:45:40 +03:00
Makefile.am Remove no longer existing files 2010-11-13 15:23:33 +09:00
README.txt VS2008/2010 support: Update README.txt 2011-04-27 00:53:16 +08:00

Note that all this is rather experimental.

This VS9 solution and the projects it includes are intented to be used
in a GTK+ source tree unpacked from a tarball. In a git checkout you
first need to use some Unix-like environment or manual work to expand
the files needed, like config.h.win32.in into config.h.win32 and the
.vcprojin files here into corresponding actual .vcproj files.

You will need the parts from below in the GTK+ stack: GDK-Pixbuf, Pango,
ATK (2.x)** and GLib.  External dependencies are at least Cairo
(with Cairo-GObject support, meaning Cairo 1.10.x or later), zlib, libpng,
gettext-runtime, fontconfig*, freetype*, expat*.  See the 
build/win32/vs9/README.txt file in glib for details where to unpack them.

It is recommended that one builds the dependencies with VS9 as far as
possible, especially those from and using the GTK+ stack (i.e. GLib,
Cairo, ATK, Pango, GDK-Pixbuf), so that crashes caused by mixing calls
to different CRTs can be kept at a minimum.  zlib, libpng, and Cairo
do contain support for compiling under VS9 using VS
project files and/or makefiles at this time of writing, For the
GTK+ stack, VS9 project files are either available under
$(srcroot)/build/vs9 in the case of GLib (stable/unstable), ATK**
(2.x stable/unstable) and GDK-Pixbuf (unstable), and should be in the next
unstable version of Pango.  There is no known official VS9 build
support for fontconfig (along with freetype and expat) and
gettext-runtime, so please use the binaries from: 

ftp://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/ (32 bit)
ftp://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/ (64 bit)

The recommended build order for these dependencies:
(first unzip any dependent binaries downloaded from the ftp.gnome.org
 as described in the README.txt file in the build/win32/vs9 folder)
-zlib
-libpng
-(for GDK-Pixbuf, if not using GDI+) IJG JPEG
-(for GDK-Pixbuf, if not using GDI+) libtiff
 [libtiff requires zlib and IJG JPEG]
-(for GDK-Pixbuf, if not using GDI+) jasper [jpeg-2000 library])
-(optional for GLib) PCRE (version 8.12 or later, use of CMake to
  build PCRE is recommended-see build/win32/vs9/README.txt of GLib)
-GLib
-Cairo (inclusive of Cairo-GObject)
-ATK-2.x**
-Pango
-GDK-Pixbuf
(note the last 3 dependencies are not interdependent, so the last 3
 dependencies can be built in any order)

The "install" project will copy build results and headers into their
appropriate location under <root>\vs9\<PlatformName>. For instance,
built DLLs go into <root>\vs9\<PlatformName>\bin, built LIBs into
<root>\vs9\<PlatformName>\lib and GTK+ headers into
<root>\vs9\<PlatformName>\include\gtk-3.0. This is then from where
project files higher in the stack are supposed to look for them, not
from a specific GLib source tree.

*About the dependencies marked with *: I will see whether it is possible
 to reduce the depepdencies on building and running GTK+ by making these
 dependencies optional, as those are not compulsory components for
 building and running GTK+ itself, but note that they are needed for
 people running and building GIMP.  They are referred to by components
 in Cairo and Pango mainly.

**Regarding ATK-2.x: prior to compiling ATK-2.x, please open atkprops
  in VS under "Properties Manager" view (it is under any one of the
  build configurations, right-click on atkprops and select "Properties").
  Navigate to "User Macros", and edit the following fields:
  AtkApiVersion -> 2.0
  AtkLibToolCompatibleDllSuffix -> -2.0-0
  AtkSeperateVS9DLLSuffix -> -2-vs9
  Sorry this change did not make it upstream prior to ATK-2.0.0 release-
  this will be in the subsequent releases of ATK-2.x and was committed
  upstream.

--Tor Lillqvist <tml@iki.fi>
--Updated by Chun-wei Fan <fanc999@yahoo.com.tw>