bd9cd3d7ca9d56f8202d6d0ba9d576f96eed9584
[mono.git] / bockbuild / mac-sdk / glib.py
1 class GlibPackage (GnomeXzPackage):
2
3     def __init__(self):
4         GnomeXzPackage.__init__(self,
5                                 'glib',
6                                 version_major='2.36',
7                                 version_minor='4')
8
9         self.darwin = Package.profile.name == 'darwin'
10
11         if self.darwin:
12             # link to specific revisions for glib 2.30.x
13             self.sources.extend([
14                 # https://trac.macports.org/export/91680/trunk/dports/devel/glib2/files/config.h.ed
15                 'patches/glib/config.h.ed',
16                 # https://trac.macports.org/export/98985/trunk/dports/devel/glib2/files/patch-configure.diff
17                 'patches/glib/patch-configure.diff',
18                 # https://trac.macports.org/export/42728/trunk/dports/devel/glib2/files/patch-gi18n.h.diff
19                 'patches/glib/patch-gi18n.h.diff',
20                 # https://trac.macports.org/export/92608/trunk/dports/devel/glib2/files/patch-gio_gdbusprivate.c.diff
21                 'patches/glib/patch-gio_gdbusprivate.c.diff',
22                 # https://trac.macports.org/export/49466/trunk/dports/devel/glib2/files/patch-gio_xdgmime_xdgmime.c.diff
23                 'patches/glib/patch-gio_xdgmime_xdgmime.c.diff',
24                 # https://trac.macports.org/export/91680/trunk/dports/devel/glib2/files/patch-glib-2.0.pc.in.diff
25                 'patches/glib/patch-glib-2.0.pc.in.diff',
26                 # https://trac.macports.org/export/64476/trunk/dports/devel/glib2/files/patch-glib_gunicollate.c.diff
27                 'patches/glib/patch-glib_gunicollate.c.diff',
28
29                 # Bug 6156 - [gtk] Quitting the application with unsaved file and answering Cancel results in crash
30                 # https://bugzilla.xamarin.com/attachment.cgi?id=2214
31                 'patches/glib-recursive-poll.patch',
32             ])
33
34     def prep(self):
35         Package.prep(self)
36         if self.darwin:
37             for p in range(2, 8):
38                 self.sh('patch -p0 < %{local_sources[' + str(p) + ']}')
39             for p in range(8, len(self.local_sources)):
40                 self.sh(
41                     'patch --ignore-whitespace -p1 < %{local_sources[' + str(p) + ']}')
42
43     def arch_build(self, arch):
44         if arch == 'darwin-universal':  # multi-arch  build pass
45             self.local_ld_flags = ['-arch i386', '-arch x86_64']
46             self.local_gcc_flags = ['-arch i386', '-arch x86_64', '-Os']
47             self.local_configure_flags = ['--disable-dependency-tracking']
48         else:
49             Package.arch_build(self, arch)
50
51         if self.darwin:
52             self.local_configure_flags.extend(['--disable-compile-warnings'])
53
54     def build(self):
55         # modified build for darwin
56         if self.darwin:
57             self.local_configure_flags.extend(['--disable-compile-warnings'])
58             Package.configure(self)
59             self.sh([
60                 # 'autoconf',
61                     #'%{configure} --disable-compile-warnings',
62                     'ed - config.h < %{local_sources[1]}',
63                     # work around
64                     # https://bugzilla.gnome.org/show_bug.cgi?id=700350
65                     'touch docs/reference/*/Makefile.in',
66                     'touch docs/reference/*/*/Makefile.in',
67                     #'%{make}'
68                     ])
69             Package.make(self)
70         else:
71             Package.build(self)
72
73     def install(self):
74         Package.install(self)
75         if self.darwin:
76             # FIXME: necessary?
77             self.sh('rm -f %{staged_prefix}/lib/charset.alias')
78
79 GlibPackage()