#!/usr/bin/env python from waflib.extras import autowaf as autowaf import sys # Version of this package (even if built as a child) MAJOR = '2' MINOR = '24' MICRO = '23' LIBYDK_VERSION = "%s.%s.%s" % (MAJOR, MINOR, MICRO) I18N_PACKAGE = 'libydk' libydk_sources = [ 'gdk.c', 'gdkaliasdef.c', 'gdkapplaunchcontext.c', 'gdkcairo.c', 'gdkcolor.c', 'gdkcursor.c', 'gdkdisplay.c', 'gdkdisplaymanager.c', 'gdkdnd.c', 'gdkdraw.c', 'gdkenumtypes.c', 'gdkevents.c', 'gdkfont.c', 'gdkgc.c', 'gdkglobals.c', 'gdkimage.c', #'gdkkeynames.c', 'gdkkeys.c', 'gdkkeyuni.c', 'gdkmarshalers.c', 'gdkoffscreenwindow.c', 'gdkpango.c', 'gdkpixbuf-drawable.c', 'gdkpixbuf-render.c', 'gdkpixmap.c', 'gdkpolyreg-generic.c', 'gdkrectangle.c', 'gdkregion-generic.c', 'gdkrgb.c', 'gdkscreen.c', 'gdkselection.c', 'gdkvisual.c', 'gdkwindow.c', 'gdkwindowimpl.c', ] libydk_quartz_sources = [ 'gdkkeynames.c', 'quartz/GdkQuartzView.c', 'quartz/GdkQuartzWindow.c', 'quartz/gdkapplaunchcontext-quartz.c', 'quartz/gdkcolor-quartz.c', 'quartz/gdkcursor-quartz.c', 'quartz/gdkdisplay-quartz.c', 'quartz/gdkdnd-quartz.c', 'quartz/gdkdrawable-quartz.c', 'quartz/gdkeventloop-quartz.c', 'quartz/gdkevents-quartz.c', 'quartz/gdkfont-quartz.c', 'quartz/gdkgc-quartz.c', 'quartz/gdkgeometry-quartz.c', 'quartz/gdkglobals-quartz.c', 'quartz/gdkim-quartz.c', 'quartz/gdkimage-quartz.c', 'quartz/gdkinput.c', 'quartz/gdkkeys-quartz.c', 'quartz/gdkmain-quartz.c', 'quartz/gdkpixmap-quartz.c', 'quartz/gdkproperty-quartz.c', 'quartz/gdkscreen-quartz.c', 'quartz/gdkselection-quartz.c', 'quartz/gdkspawn-quartz.c', #'quartz/gdktestutils-quartz.c', 'quartz/gdkvisual-quartz.c', 'quartz/gdkwindow-quartz.c', ] libydk_x11_sources = [ #'x11/checksettings.c', 'x11/gdkapplaunchcontext-x11.c', 'x11/gdkasync.c', 'x11/gdkcolor-x11.c', 'x11/gdkcursor-x11.c', 'x11/gdkdisplay-x11.c', 'x11/gdkdnd-x11.c', 'x11/gdkdrawable-x11.c', 'x11/gdkevents-x11.c', 'x11/gdkfont-x11.c', 'x11/gdkgc-x11.c', 'x11/gdkgeometry-x11.c', 'x11/gdkglobals-x11.c', 'x11/gdkim-x11.c', 'x11/gdkimage-x11.c', 'x11/gdkinput-none.c', #'x11/gdkinput-x11.c', #'x11/gdkinput-xfree.c', 'x11/gdkinput.c', 'x11/gdkkeys-x11.c', 'x11/gdkmain-x11.c', 'x11/gdkpixmap-x11.c', 'x11/gdkproperty-x11.c', 'x11/gdkscreen-x11.c', 'x11/gdkselection-x11.c', #'x11/gdksettings.c', 'x11/gdkspawn-x11.c', #'x11/gdktestutils-x11.c', 'x11/gdkvisual-x11.c', 'x11/gdkwindow-x11.c', 'x11/gdkxftdefaults.c', 'x11/gdkxid.c', 'x11/xsettings-client.c', 'x11/xsettings-common.c', ] libydk_win32_sources = [ 'gdkkeynames.c', 'win32/bdfcursor.c', 'win32/gdkapplaunchcontext-win32.c', 'win32/gdkcolor-win32.c', 'win32/gdkcursor-win32.c', 'win32/gdkdisplay-win32.c', 'win32/gdkdnd-win32.c', 'win32/gdkdrawable-win32.c', 'win32/gdkevents-win32.c', 'win32/gdkfont-win32.c', 'win32/gdkgc-win32.c', 'win32/gdkgeometry-win32.c', 'win32/gdkglobals-win32.c', 'win32/gdkim-win32.c', 'win32/gdkimage-win32.c', 'win32/gdkinput-win32.c', 'win32/gdkinput.c', 'win32/gdkkeys-win32.c', 'win32/gdkmain-win32.c', 'win32/gdkpixmap-win32.c', 'win32/gdkproperty-win32.c', 'win32/gdkscreen-win32.c', 'win32/gdkselection-win32.c', 'win32/gdkspawn-win32.c', #'win32/gdktestutils-win32.c', 'win32/gdkvisual-win32.c', 'win32/gdkwin32id.c', 'win32/gdkwindow-win32.c', ] def options(opt): pass def configure(conf): if conf.is_defined('YTK'): autowaf.check_pkg(conf, 'glib-2.0', uselib_store='GLIB', atleast_version='2.28', mandatory=True) autowaf.check_pkg(conf, 'pango', uselib_store='PANGO', atleast_version='1.20', mandatory=True) autowaf.check_pkg(conf, 'cairo', uselib_store='CAIRO', atleast_version='1.12', mandatory=True) autowaf.check_pkg(conf, 'pangocairo', uselib_store='PANGOCAIRO', mandatory=True) if conf.env['build_target'] == 'mingw': autowaf.check_pkg(conf, 'gio-windows-2.0', uselib_store='GIO-WINDOWS', mandatory=True) elif sys.platform != 'darwin': autowaf.check_pkg(conf, 'gio-unix-2.0', uselib_store='GIO-UNIX', mandatory=True) autowaf.check_pkg(conf, 'xrandr', uselib_store='RANDR', mandatory=False, atleast_version='1.2.99') autowaf.check_pkg(conf, 'xrandr', uselib_store='RANDR15', mandatory=False, atleast_version='1.5.0') conf.check_cc(header_name='X11/extensions/Xinerama.h', lib='Xinerama', uselib_store="XINERAMA", define_name='HAVE_XFREE_XINERAMA', execute = False, mandatory=False) autowaf.check_pkg(conf, 'xi', uselib_store='XINPUT2', mandatory=False, atleast_version='1.7.10') def build(bld): if not bld.is_defined('YTK'): return obj = bld.shlib(features = 'c cshlib') obj.cflags = [ bld.env['compiler_flags_dict']['pic'], '-w' ] obj.export_includes = ['ydk'] obj.includes = ['.', '..', 'ydk', 'ydk/gdk'] obj.name = 'libydk' obj.target = 'ydk' obj.use = [ 'libztk', 'libydk-pixbuf' ] obj.uselib = 'GLIB PANGO CAIRO PANGOCAIRO' obj.defines = [ 'HAVE_CONFIG_H', '_LARGEFILE64_SOURCE', '_REENTRANT', 'G_LOG_DOMAIN="Gdk"', 'GDK_COMPILATION', '_FILE_OFFSET_BITS=64', 'GDK_PIXBUF_DISABLE_DEPRECATED', 'G_DISABLE_CAST_CHECKS', 'G_DISABLE_SINGLE_INCLUDES', 'ATK_DISABLE_SINGLE_INCLUDES', 'GDK_PIXBUF_DISABLE_SINGLE_INCLUDES'] obj.vnum = LIBYDK_VERSION obj.install_path = bld.env['LIBDIR'] if sys.platform == 'darwin': obj.source = libydk_sources + libydk_quartz_sources obj.cflags += ['-xobjective-c'] obj.uselib += ' OSX' # -framework Cocoa -framework CoreFoundation -framework ApplicationServices obj.includes += ['ydk/quartz', 'ydk/quartz/gdk', 'ydk/gdk/quartz'] obj.export_includes += ['ydk/gdk'] obj.export_includes += ['ydk/quartz'] elif bld.env['build_target'] == 'mingw': obj.source = libydk_sources + libydk_win32_sources obj.cflags += ['-mms-bitfields', '-Wl,--export-all-symbols'] obj.uselib += ' GIO-WINDOWS' obj.defines += [ 'INSIDE_GDK_WIN32', 'DLL_EXPORT', 'PIC' ] obj.includes += ['ydk/win32/gdk', 'ydk/win32'] obj.export_includes += ['ydk/gdk'] obj.export_includes += ['ydk/win32'] obj.linkflags = ['-Wl,--export-all-symbols'] obj.ldflags = '-limm32 -lole32 -lgdi32 -lcomdlg32 -lwinspool -lcomctl32 -luuid' else: obj.source = libydk_sources + libydk_x11_sources obj.uselib += ' GIO-UNIX X11 XEXT XINERAMA RANDR DL' obj.includes += ['ydk/x11/gdk', 'ydk/gdk/x11'] obj.export_includes += ['ydk/gdk'] obj.export_includes += ['ydk/x11']