import	rkBuilder
import	rkConfig
import	rkMoc
import	rkWalker
import	rkDesktop
import	os



rkBuilder.setCommandLine (COMMAND_LINE_TARGETS, ARGUMENTS)

if rkConfig.cppunitBuild :

    rbt	= rkBuilder.rkBuilder ('rkt_tester', rkBuilder.typeSharedLib)

    rbt.addPorting ()
    rbt.addAll	   ('libs/common',    '_common')
    rbt.addCPPUnit ()
    rbt.setDefine  ('TESTROOTDIR', '"\\"%s"\\"' % (rkConfig.prefix))

    if rkConfig.mode == 'win' :
        rbt.addCFlags  ('/EHsc')

    sources = [ \
		'tester.cpp'
	      ]
    rbt.build	(sources = sources)


    rkDesktop.makeDesktopFile ('rekall_test_common')
    rkMoc.generateMocFiles    ('test/common')

    rbl	= rkBuilder.rkBuilder ('rkt_common', rkBuilder.typeLoadedLib)

    rbl.addPorting ()
    rbl.addAll	   ('libs/common',    '_common')
    rbl.addAll	   ('libs/el32',      '_el32'  )
    rbl.addAll 	   ('libs/kbase',     '')
    rbl.addAll	   ('test/common',    '_rkt_tester')
    rbl.addAll	   ('test/dummy',     '_driver_test')

    rbl.addCPPUnit ()

    if rkConfig.mode == 'win' :
        rbl.addCFlags  ('/EHsc')

    sources = [ \
		'datetime.cpp',
		'value.cpp',
		'base64.cpp',
		'location.cpp',
		'common.cpp',
		'db.cpp',
		'sql.cpp',
		'sql_select.cpp',
		'parseSelect.cpp',
		'baseSelect.cpp',
		'dom.cpp',
		'dbdociter.cpp'
	      ]
    rbl.build	(sources = sources, desktop = 'rekall_test_common.desktop')


    rbc	= rkBuilder.rkBuilder ('rkt_common', rkBuilder.typeConsole)

    rbc.addPorting ()
    rbc.addAll	   ('libs/common',    '_common')
    rbc.addAll	   ('libs/el32',      '_el32'  )
    rbc.addAll	   ('libs/kbase',     '')
    rbc.addAll	   ('test/common',    '_rkt_common')

    rbc.addLibPath ('test/dummy')
    rbc.addLib	   (rkConfig.libPrefix + '_driver_test')
    rbc.addLib	   (rkConfig.libPrefix + '_rkt_tester' )

    rbc.addCPPUnit ()

    if rkConfig.mode == 'win' :
        rbc.addCFlags  ('/EHsc')

    rbc.build	(sources = 'runner.cpp')
