#!/usr/bin/env python
from waflib.extras import autowaf as autowaf

# Version of this package (even if built as a child)
MAJOR = '2'
MINOR = '24'
MICRO = '5'
LIBYTKMM_VERSION = "%s.%s.%s" % (MAJOR, MINOR, MICRO)

I18N_PACKAGE = 'libytkmm'

libytkmm_sources = [
    'aboutdialog.cc',
    'accelgroup.cc',
    'accelkey.cc',
    'accellabel.cc',
    'accelmap.cc',
    'action.cc',
    'actiongroup.cc',
    'activatable.cc',
    'adjustment.cc',
    'alignment.cc',
    'arrow.cc',
    'aspectframe.cc',
    'assistant.cc',
    'bin.cc',
    'box.cc',
    'builder.cc',
    'button.cc',
    'buttonbox.cc',
    'celleditable.cc',
    'celllayout.cc',
    'cellrenderer.cc',
    'cellrenderer_generation.cc',
    'cellrendereraccel.cc',
    'cellrenderercombo.cc',
    'cellrendererpixbuf.cc',
    'cellrendererprogress.cc',
    'cellrendererspin.cc',
    'cellrendererspinner.cc',
    'cellrenderertext.cc',
    'cellrenderertoggle.cc',
    'cellview.cc',
    'checkbutton.cc',
    'checkmenuitem.cc',
    'clipboard.cc',
    'colorbutton.cc',
    'colorselection.cc',
    'combobox.cc',
    'comboboxentry.cc',
    'comboboxentrytext.cc',
    'comboboxtext.cc',
    'container.cc',
    'dialog.cc',
    'drawingarea.cc',
    'editable.cc',
    'entry.cc',
    'entrybuffer.cc',
    'entrycompletion.cc',
    'enums.cc',
    'eventbox.cc',
    'expander.cc',
    'filechooser.cc',
    'filechooserbutton.cc',
    'filechooserdialog.cc',
    'filechooserwidget.cc',
    'filefilter.cc',
    'fixed.cc',
    'fontbutton.cc',
    'fontselection.cc',
    'frame.cc',
    'handlebox.cc',
    'iconfactory.cc',
    'iconinfo.cc',
    'iconset.cc',
    'iconsource.cc',
    'icontheme.cc',
    'iconview.cc',
    'image.cc',
    'imagemenuitem.cc',
    'infobar.cc',
    'invisible.cc',
    'item.cc',
    'label.cc',
    'layout.cc',
    'linkbutton.cc',
    'liststore.cc',
    'listviewtext.cc',
    'main.cc',
    'menu.cc',
    'menu_elems.cc',
    'menubar.cc',
    'menuitem.cc',
    'menushell.cc',
    'menutoolbutton.cc',
    'messagedialog.cc',
    'misc.cc',
    'notebook.cc',
    'object.cc',
    'offscreenwindow.cc',
    'optionmenu.cc',
    'orientable.cc',
    'paned.cc',
    'plug.cc',
    'progressbar.cc',
    'radioaction.cc',
    'radiobutton.cc',
    'radiobuttongroup.cc',
    'radiomenuitem.cc',
    'radiotoolbutton.cc',
    'range.cc',
    'rc.cc',
    'recentaction.cc',
    'recentchooser.cc',
    'recentchooserdialog.cc',
    'recentchoosermenu.cc',
    'recentchooserwidget.cc',
    'recentfilter.cc',
    'recentinfo.cc',
    'recentmanager.cc',
    'ruler.cc',
    'scale.cc',
    'scalebutton.cc',
    'scrollbar.cc',
    'scrolledwindow.cc',
    'selectiondata.cc',
    'selectiondata_private.cc',
    'separator.cc',
    'separatormenuitem.cc',
    'separatortoolitem.cc',
    'settings.cc',
    'sizegroup.cc',
    'socket.cc',
    'spinbutton.cc',
    'spinner.cc',
    'statusbar.cc',
    'stock.cc',
    'stockid.cc',
    'stockitem.cc',
    'style.cc',
    'table.cc',
    'targetentry.cc',
    'targetlist.cc',
    'tearoffmenuitem.cc',
    'textattributes.cc',
    'textbuffer.cc',
    'textchildanchor.cc',
    'textiter.cc',
    'textmark.cc',
    'texttag.cc',
    'texttagtable.cc',
    'textview.cc',
    'toggleaction.cc',
    'togglebutton.cc',
    'toggletoolbutton.cc',
    'toolbar.cc',
    'toolbutton.cc',
    'toolitem.cc',
    'toolitemgroup.cc',
    'toolpalette.cc',
    'toolshell.cc',
    'tooltip.cc',
    'tooltips.cc',
    'treedragdest.cc',
    'treedragsource.cc',
    'treeiter.cc',
    'treemodel.cc',
    'treemodelcolumn.cc',
    'treemodelfilter.cc',
    'treemodelsort.cc',
    'treepath.cc',
    'treerowreference.cc',
    'treeselection.cc',
    'treesortable.cc',
    'treestore.cc',
    'treeview.cc',
    'treeview_private.cc',
    'treeviewcolumn.cc',
    'uimanager.cc',
    'viewport.cc',
    'widget.cc',
    'window.cc',
    'wrap_init.cc',
]

def options(opt):
    pass

def configure(conf):
    if conf.is_defined('YTK'):
        autowaf.check_pkg(conf, 'giomm-2.4', uselib_store='GIOMM', atleast_version='2.2', mandatory=True)
        autowaf.check_pkg(conf, 'cairomm-1.0', uselib_store='CAIROMM', atleast_version='1.8.4', mandatory=True)
        autowaf.check_pkg(conf, 'pangomm-1.4', uselib_store='PANGOMM', atleast_version='1.4', mandatory=True)
        autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM', atleast_version='2.32.0', mandatory=True)
        autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0', mandatory=True)

def build(bld):
    if not bld.is_defined('YTK'):
        return

    obj = bld.shlib(features = 'cxx cxxshlib', source=libytkmm_sources)
    obj.cxxflags        = [ bld.env['compiler_flags_dict']['pic'], '-w' ]
    obj.cflags          = [ bld.env['compiler_flags_dict']['pic'], '-w' ]
    obj.export_includes = ['ytkmm']
    obj.includes        = ['.', 'ytkmm']
    obj.name            = 'libytkmm'
    obj.target          = 'ytkmm'
    obj.use             = ['libztk', 'libytk', 'libztkmm', 'libydkmm' ]
    obj.uselib          = 'GLIBMM GIOMM SIGCPP CAIROMM PANGOMM'
    obj.defines         = [ '_LARGEFILE64_SOURCE', '_REENTRANT', 'G_LOG_DOMAIN="gtkmm"', 'GTKMM_BUILD=1', '_FILE_OFFSET_BITS=64' ]
    obj.vnum            = LIBYTKMM_VERSION
    obj.install_path    = bld.env['LIBDIR']

