#! /usr/bin/env python

#obj = kdeobj('staticlib')
#obj.source = """
#"""
#obj.uselib = 'QT'
#obj.target = ''
##obj.includes = ''


libcommon = kdeobj('staticlib')
libcommon.target = 'common'
libcommon.uselib = 'QT KDECORE'
libcommon.includes = '../bodebug ../bogl .. .'
libcommon.source = """
	boapplication.cpp
	boglobal.cpp
	bosonconfig.cpp
	bosondata.cpp
	bomath.cpp
	bo3dtools.cpp
	bosonprofiling.cpp
	bopluginmanager.cpp
	qlistviewitemnumber.cpp
"""
libcommon_libs = """
	../bodebug/libbodebug.a
	../bogl/libbogl.a
	../math/libbomath.a
	./libimageio.a
"""

libgameengine_libs = './gameengine/script/libbosonscript.a'
#libgameengine_libs += ' ' + env['LIB_PYTHON']
#libgameengine_libs += ' ../kgame/libkgame.a'

libimageio = kdeobj('staticlib')
libimageio.target = 'imageio'
#libimageio.includes = '../bodebug ../bogl'
libimageio.uselib = 'QT KDECORE'
libimageio.source = """
	imageio/boimageio.cpp
	imageio/tga.cpp
	imageio/pcx.cpp
"""


libgameengine = kdeobj('staticlib')
libgameengine.target = 'libgameengine'
libgameengine.includes = '../bodebug ../kgame ../bogl ../boson/boufo gameengine .. .'
libgameengine.uselib = 'QT KDECORE'
libgameengine.source = """
	gameengine/boeventloop.cpp
	gameengine/boupgradeableproperty.cpp
	gameengine/unitbase.cpp
	gameengine/unit.cpp
	gameengine/unitproperties.cpp
	gameengine/pluginproperties.cpp
	gameengine/unitplugins.cpp
	gameengine/upgradeproperties.cpp
	gameengine/bosonweapon.cpp
	gameengine/boitemlist.cpp
	gameengine/boitemlisthandler.cpp
	gameengine/bosonplayfield.cpp
	gameengine/bosonmap.cpp
	gameengine/cell.cpp
	gameengine/bofile.cpp
	gameengine/bpfdescription.cpp
	gameengine/bosonfileconverter.cpp
	gameengine/bosoncampaign.cpp
	gameengine/bosonmessage.cpp
	gameengine/boson.cpp
	gameengine/bomessage.cpp
	gameengine/bosoncanvas.cpp
	gameengine/bosoncanvasstatistics.cpp
	gameengine/bosoncollisions.cpp
	gameengine/bosonnetworksynchronizer.cpp
	gameengine/bosonnetworktraffic.cpp
	gameengine/speciestheme.cpp
	gameengine/player.cpp
	gameengine/playerio.cpp
	gameengine/bosoncomputerio.cpp
	gameengine/bosonpath.cpp
	gameengine/bosongamestatistics.cpp
	gameengine/bosonstatistics.cpp
	gameengine/bogameproperty.cpp
	gameengine/bosonpropertyxml.cpp
	gameengine/bosonplayerinputhandler.cpp
	gameengine/bobincoder.cpp
	gameengine/boevent.cpp
	gameengine/boeventmatching.cpp
	gameengine/boeventlistener.cpp
	gameengine/boeventmanager.cpp
	gameengine/bocondition.cpp
	gameengine/bowater.cpp
	gameengine/bosonsaveload.cpp
	gameengine/bosongroundtheme.cpp
	gameengine/bosongameengine.cpp
	gameengine/bosonstarting.cpp
	gameengine/bosongameenginestarting.cpp
	gameengine/boquadtreenode.cpp
	gameengine/boquadtreecollection.cpp
	gameengine/bogroundquadtreenode.cpp
	gameengine/bocanvasquadtreenode.cpp
	gameengine/bosonitem.cpp
	gameengine/bosonshot.cpp
	gameengine/bosonitempropertyhandler.cpp
"""


startupwidgets_sources = """
	startupwidgets/boufocolorchooser.cpp
	startupwidgets/bosonstartupnetwork.cpp
	startupwidgets/welcomewidget.boui
	startupwidgets/newgamewidget.boui
	startupwidgets/boufonewgamewidget.cpp
	startupwidgets/boufostartupwidget.cpp
	startupwidgets/boufoloadingwidget.cpp
	startupwidgets/boufonetworkoptionswidgetbase.boui
	startupwidgets/boufonetworkoptionswidget.cpp
	startupwidgets/boufostarteditorwidgetbase.boui
	startupwidgets/boufostarteditorwidget.cpp
	startupwidgets/boufoloadsavegamewidget.cpp
	startupwidgets/bocreatenewmap.cpp
	startupwidgets/bosonloadsavegamehandler.cpp
	startupwidgets/boufoloadfromlogwidgetbase.boui
	startupwidgets/boufoloadfromlogwidget.cpp
"""

commandframe_sources = """
	gameview/commandframe/bosoncommandframe.cpp
	gameview/commandframe/bosonorderwidget.cpp
	gameview/commandframe/bosonorderbutton.cpp
	gameview/commandframe/boactionswidget.cpp
	gameview/commandframe/bosonunitview.cpp
	gameview/commandframe/editorunitconfigwidget.cpp
	gameview/commandframe/bocommandframeeventlistener.cpp
"""

gameview_sources = """
	gameview/bosonitemrenderer.cpp
	gameview/bosonufogameguihelper.boui
	gameview/bosonufogamegui.cpp
	gameview/bosonufocanvaswidget.cpp
	gameview/bosonufogamewidgets.cpp
	gameview/bosongameview.cpp
	gameview/bosongamevieweventlistener.cpp
	gameview/bosoncanvasrenderer.cpp
	gameview/bosongameviewinputbase.cpp
	gameview/bosongameviewinput.cpp
	gameview/editorviewinput.cpp
	gameview/bosonlocalplayerinput.cpp
	gameview/bolocalplayereventlistener.cpp
	gameview/bosonmenuinput.cpp
	gameview/boeditplayerinputswidget.cpp
	gameview/bosoneffectmanager.cpp
	gameview/bosoneffect.cpp
	gameview/bosoneffectproperties.cpp
	gameview/bosoneffectparticle.cpp
	gameview/bosoneffectpropertiesparticle.cpp
	gameview/boselection.cpp
"""

boufo_lib = """
	./boufo/libboufo.a
	../ufo/src/libufo.a
"""

modelrendering_source = """
	modelrendering/bosonmodel.cpp
	modelrendering/bosonmodeltextures.cpp
	modelrendering/bomesh.cpp
	modelrendering/bomeshrenderer.cpp
	modelrendering/bomeshrenderermanager.cpp
	modelrendering/bobmfload.cpp
"""


libboson_source = """
	bosonviewdata.cpp
	botooltipcreator.cpp
	bosonglwidget.cpp
	bosonufoglwidget.cpp
	bomousemovediff.cpp
	bomatrixwidget.cpp
	bocamerawidget.cpp
	boorbiterwidget.cpp
	bosonufochat.cpp
	bosonprofilingdialoggui.ui
	bosonprofilingdialog.cpp
	bpfdescriptiondialog.cpp
	boglstatewidget.cpp
	bodebuglogdialog.cpp
	bofullscreen.cpp
	bocamera.cpp
	boautocamera.cpp
	bosoncursor.cpp
	bomaterial.cpp
	bolight.cpp
	botexture.cpp
	boshader.cpp
	speciesdata.cpp
	boaction.cpp
	bosongroundthemedata.cpp
	borendertarget.cpp
	bonuminput.cpp
	sound/bosonaudiointerface.cpp
"""
libboson_source += modelrendering_source
libboson_includes = '../bodebug ../bogl ../boson/boufo sound/bosound modelrendering ../kgame . ..'

libboson_libs = ''
#libboson_libs = lib_meshrendererplugin
libboson_libs += ' ./info/libbosoninfo.a '
#libboson_libs += ' '.join(env['LIB_BOSOUND'])
libboson_libs += ' ./libgameengine.a'
libboson_libs += libgameengine_libs
libboson_libs += ' ./libcommon.a'
libboson_libs += libcommon_libs
libboson_libs += ' kio'
libboson_libs += ' 3ds'
#libboson_libs += ' ' + env['LIB_XRANDR']
libboson_libs += ' '



boson = kdeobj('program')
boson.target = 'programs/boson'
boson.includes = '../bodebug ../bogl boufo gameengine '
boson.includes += ' gameview/commandframe gameview startupwidgets ' # for .moc files
boson.includes += libboson_includes
boson.libs = ''
#boson.boAddLibs(lib_groundrendererplugin)
#boson.boAddLibs(lib_gameviewplugin)
#boson.boAddLibs(boufo_lib)
#boson.boAddLibObjects(libboson_libs_objects)
#boson.libs = ''
boson.uselib = 'QT KDECORE KDEUI'

#boson.libpaths += libcommon_libpaths
#if env['BOSON_DO_STATIC']:
#	# FIXME
#	boson.libpaths += ' /home/andi/kde/boson/static/openal/linux/src'

boson.source += libboson_source
boson.source += """
	bosonfpscounter.cpp
	bosonmainwidget.cpp
	bosonmainwidgetmenuinput.cpp
	boufoactionext.cpp
	bogltooltip.cpp
	bosonglminimap.cpp
	bosonufominimap.cpp
	optionsdialog.cpp
	optionswidgets.cpp
	bogroundrenderer.cpp
	bogroundrenderermanager.cpp
	kgameunitdebug.cpp
	kgameadvancemessagesdebug.cpp
	kgameplayerdebug.cpp
	kgamecelldebug.cpp
	gameoverdialog.cpp
	bocheckinstallation.cpp
	bosonguistarting.cpp
	bosongameviewstarting.cpp
	bosongameviewpluginbase.cpp
	bosongameviewpluginmanager.cpp
	botexmapimportdialog.cpp
	boconditionwidget.cpp
	bowaterrenderer.cpp
	selectbox.cpp
	bosondebugtextures.cpp
	bosondebugtexturesbase.ui
	bosondebugmodels.cpp
	bosondebugmodelsbase.ui
	programs/main.cpp
"""
boson.source += startupwidgets_sources
boson.source += commandframe_sources
boson.source += gameview_sources


bosonNoGUI = kdeobj('program')
bosonNoGUI.target = 'programs/boson-no-gui'
bosonNoGUI.includes = '../bodebug gameengine programs . .. '
bosonNoGUI.includes += libboson_includes
bosonNoGUI.libs = ' libgameengine.a'
bosonNoGUI.libs += boufo_lib
bosonNoGUI.libs += ' libcommon.a'
bosonNoGUI.libs += libgameengine_libs
bosonNoGUI.libs += libcommon_libs
bosonNoGUI.libs += ' kio kdecore qt-mt'
#bosonNoGUI.libpaths += libcommon_libpaths
bosonNoGUI.uselib = 'QT KDECORE KDEUI'
bosonNoGUI.source += """
	bocheckinstallation.cpp
	programs/mainnogui.cpp
	programs/mainnoguimain.cpp
"""


