import	rkBuilder
import	rkMoc
import	rkDesktop
import	rkConfig

rkBuilder.setCommandLine (COMMAND_LINE_TARGETS, ARGUMENTS)

if rkConfig.xbaseBuild :

    sources	= \
	  [
		'xb_assignlist.cpp',
		'xb_create.cpp',
		'xb_datetime.cpp',
		'xb_delete.cpp',
		'xb_elist.cpp',
		'xb_enode.cpp',
		'xb_field.cpp',
		'xb_fieldlist.cpp',
		'xb_fieldset.cpp',
		'xb_insert.cpp',
		'xb_query.cpp',
		'xb_queryset.cpp',
		'xb_select.cpp',
		'xbsql.cpp',
		'xb_table.cpp',
		'xb_tablelist.cpp',
		'xb_tableset.cpp',
		'xb_update.cpp',
		'xb_value.cpp',
		'parse.cpp'
	  ]


    rb	= rkBuilder.rkBuilder ('support_xbsql')
    rb.winDefine ('XBSQL_EXPORTS')
    rb.addAll    ('support/xbase', '_support_xbase')

    rb.addInclude(rkConfig.topDir + '/support')

    if rkConfig.mode == 'win' :
        rb.addInclude ('support/windows')

    env	= rb.environment ()

    if rkConfig.mode != 'win' :

        env.Append(LEXFLAGS  = '-Pxbsql_yy')
        env.Append(YACCFLAGS = '-pxbsql_yy')
        env.CFile ('lex.xbsql_yy.c', 'xbsql.l')
        env.CFile ('xbsql.tab.cpp',  'xbsql.y')

    elif rkConfig.cygdir is not None :

        flexBuilder = Builder \
        (
    	action = rkConfig.cygdir + '\\bin\\' + 'flex  -Pxbsql_yy -o$TARGET $SOURCES' 
        )
        yaccBuilder = Builder \
        (
    	action = rkConfig.cygdir + '\\bin\\' + 'bison -pxbsql_yy -o$TARGET $SOURCES'
        )

        env.Append \
              (
		BUILDERS =
		{	'FlexBuilder'	: flexBuilder,
			'YaccBuilder'	: yaccBuilder
		}
    	  )

        env.FlexBuilder (target = 'lex.xbsql_yy.c', source = 'xbsql.l')
        env.YaccBuilder (target = 'xbsql.tab.cpp',  source = 'xbsql.y')

    rb.build     (sources)
