
# prepare includes

file( GLOB_RECURSE _includes RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.h )
list( SORT _includes )
tde_process_includes( ${_includes} DESTINATION ${PROJECT_NAME} )


##### kvirc (executable)

include_directories(
  ${CMAKE_CURRENT_BINARY_DIR}
  ${CMAKE_BINARY_DIR}
  ${CMAKE_BINARY_DIR}/include/${PROJECT_NAME}
)

link_directories(
  ${TQT_LIBRARY_DIRS}
  ${TDE_LIB_DIR}
)

if( WITH_TDE )
  set( LINK_LIBRARIES tdecore-shared tdeui-shared tdeio-shared )
else( )
  set( LINK_LIBRARIES ${TQT_LIBRARIES} )
endif( )

tde_add_library( kvirc SHARED AUTOMOC
  SOURCES
    kernel/kvi_action.cpp
    kernel/kvi_actionmanager.cpp
    kernel/kvi_app.cpp
    kernel/kvi_coreactions.cpp
    kernel/kvi_filetransfer.cpp
    kernel/kvi_app_fs.cpp
    kernel/kvi_app_setup.cpp
    kernel/kvi_asynchronousconnectiondata.cpp
    kernel/kvi_customtoolbardescriptor.cpp
    kernel/kvi_customtoolbarmanager.cpp
    kernel/kvi_iconmanager.cpp
    kernel/kvi_internalcmd.cpp
    kernel/kvi_ipc.cpp
    kernel/kvi_ircdatastreammonitor.cpp
    kernel/kvi_ircconnection.cpp
    kernel/kvi_ircconnectionantictcpflooddata.cpp
    kernel/kvi_ircconnectionasyncwhoisdata.cpp
    kernel/kvi_ircconnectionnetsplitdetectordata.cpp
    kernel/kvi_ircconnectiontarget.cpp
    kernel/kvi_ircconnectiontargetresolver.cpp
    kernel/kvi_ircconnectionserverinfo.cpp
    kernel/kvi_ircconnectionstatedata.cpp
    kernel/kvi_ircconnectionstatistics.cpp
    kernel/kvi_ircconnectionuserinfo.cpp
    kernel/kvi_irccontext.cpp
    kernel/kvi_irclink.cpp
    kernel/kvi_ircsocket.cpp
    kernel/kvi_ircurl.cpp
    kernel/kvi_lagmeter.cpp
    kernel/kvi_notifylist.cpp
    kernel/kvi_options.cpp
    kernel/kvi_sslmaster.cpp
    kernel/kvi_texticonmanager.cpp
    kernel/kvi_theme.cpp
    kernel/kvi_useraction.cpp
    kernel/kvi_userinput.cpp
    kvs/kvi_kvs.cpp
    kvs/kvi_kvs_action.cpp
    kvs/kvi_kvs_aliasmanager.cpp
    kvs/kvi_kvs_array.cpp
    kvs/kvi_kvs_arraycast.cpp
    kvs/kvi_kvs_asyncdnsoperation.cpp
    kvs/kvi_kvs_asyncoperation.cpp
    kvs/kvi_kvs_callbackobject.cpp
    kvs/kvi_kvs_corecallbackcommands.cpp
    kvs/kvi_kvs_corefunctions.cpp
    kvs/kvi_kvs_corefunctions_af.cpp
    kvs/kvi_kvs_corefunctions_gl.cpp
    kvs/kvi_kvs_corefunctions_mr.cpp
    kvs/kvi_kvs_corefunctions_sz.cpp
    kvs/kvi_kvs_coresimplecommands.cpp
    kvs/kvi_kvs_coresimplecommands_af.cpp
    kvs/kvi_kvs_coresimplecommands_gl.cpp
    kvs/kvi_kvs_coresimplecommands_mr.cpp
    kvs/kvi_kvs_coresimplecommands_sz.cpp
    kvs/kvi_kvs_dnsmanager.cpp
    kvs/kvi_kvs_event.cpp
    kvs/kvi_kvs_eventhandler.cpp
    kvs/kvi_kvs_eventmanager.cpp
    kvs/kvi_kvs_eventtable.cpp
    kvs/kvi_kvs_hash.cpp
    kvs/kvi_kvs_kernel.cpp
    kvs/kvi_kvs_moduleinterface.cpp
    kvs/kvi_kvs_object.cpp
    kvs/kvi_kvs_object_class.cpp
    kvs/kvi_kvs_object_controller.cpp
    kvs/kvi_kvs_object_functioncall.cpp
    kvs/kvi_kvs_object_functionhandler.cpp
    kvs/kvi_kvs_object_functionhandlerimpl.cpp
    kvs/kvi_kvs_parameterprocessor.cpp
    kvs/kvi_kvs_parser.cpp
    kvs/kvi_kvs_parser_command.cpp
    kvs/kvi_kvs_parser_comment.cpp
    kvs/kvi_kvs_parser_dollar.cpp
    kvs/kvi_kvs_parser_expression.cpp
    kvs/kvi_kvs_parser_lside.cpp
    kvs/kvi_kvs_parser_specialcommands.cpp
    kvs/kvi_kvs_popupmanager.cpp
    kvs/kvi_kvs_popupmenu.cpp
    kvs/kvi_kvs_processmanager.cpp
    kvs/kvi_kvs_report.cpp
    kvs/kvi_kvs_runtimecall.cpp
    kvs/kvi_kvs_runtimecontext.cpp
    kvs/kvi_kvs_rwevaluationresult.cpp
    kvs/kvi_kvs_script.cpp
    kvs/kvi_kvs_scriptaddonmanager.cpp
    kvs/kvi_kvs_switchlist.cpp
    kvs/kvi_kvs_timermanager.cpp
    kvs/kvi_kvs_treenode_aliasfunctioncall.cpp
    kvs/kvi_kvs_treenode_aliassimplecommand.cpp
    kvs/kvi_kvs_treenode_arraycount.cpp
    kvs/kvi_kvs_treenode_arrayelement.cpp
    kvs/kvi_kvs_treenode_arrayorhashelement.cpp
    kvs/kvi_kvs_treenode_arrayreferenceassert.cpp
    kvs/kvi_kvs_treenode_base.cpp
    kvs/kvi_kvs_treenode_baseobjectfunctioncall.cpp
    kvs/kvi_kvs_treenode_callbackcommand.cpp
    kvs/kvi_kvs_treenode_command.cpp
    kvs/kvi_kvs_treenode_commandevaluation.cpp
    kvs/kvi_kvs_treenode_commandwithparameters.cpp
    kvs/kvi_kvs_treenode_compositedata.cpp
    kvs/kvi_kvs_treenode_constantdata.cpp
    kvs/kvi_kvs_treenode_corecallbackcommand.cpp
    kvs/kvi_kvs_treenode_corefunctioncall.cpp
    kvs/kvi_kvs_treenode_coresimplecommand.cpp
    kvs/kvi_kvs_treenode_data.cpp
    kvs/kvi_kvs_treenode_datalist.cpp
    kvs/kvi_kvs_treenode_expression.cpp
    kvs/kvi_kvs_treenode_expressionreturn.cpp
    kvs/kvi_kvs_treenode_extendedscopevariable.cpp
    kvs/kvi_kvs_treenode_functioncall.cpp
    kvs/kvi_kvs_treenode_globalvariable.cpp
    kvs/kvi_kvs_treenode_hashcount.cpp
    kvs/kvi_kvs_treenode_hashelement.cpp
    kvs/kvi_kvs_treenode_hashreferenceassert.cpp
    kvs/kvi_kvs_treenode_indirectdata.cpp
    kvs/kvi_kvs_treenode_instruction.cpp
    kvs/kvi_kvs_treenode_instructionblock.cpp
    kvs/kvi_kvs_treenode_localvariable.cpp
    kvs/kvi_kvs_treenode_modulecallbackcommand.cpp
    kvs/kvi_kvs_treenode_modulefunctioncall.cpp
    kvs/kvi_kvs_treenode_modulesimplecommand.cpp
    kvs/kvi_kvs_treenode_multipleparameteridentifier.cpp
    kvs/kvi_kvs_treenode_objectfield.cpp
    kvs/kvi_kvs_treenode_objectfunctioncall.cpp
    kvs/kvi_kvs_treenode_operation.cpp
    kvs/kvi_kvs_treenode_parameterreturn.cpp
    kvs/kvi_kvs_treenode_rebindingswitch.cpp
    kvs/kvi_kvs_treenode_scopeoperator.cpp
    kvs/kvi_kvs_treenode_simplecommand.cpp
    kvs/kvi_kvs_treenode_singleparameteridentifier.cpp
    kvs/kvi_kvs_treenode_specialcommand.cpp
    kvs/kvi_kvs_treenode_specialcommandbreak.cpp
    kvs/kvi_kvs_treenode_specialcommandclass.cpp
    kvs/kvi_kvs_treenode_specialcommanddefpopup.cpp
    kvs/kvi_kvs_treenode_specialcommanddo.cpp
    kvs/kvi_kvs_treenode_specialcommandfor.cpp
    kvs/kvi_kvs_treenode_specialcommandforeach.cpp
    kvs/kvi_kvs_treenode_specialcommandif.cpp
    kvs/kvi_kvs_treenode_specialcommandswitch.cpp
    kvs/kvi_kvs_treenode_specialcommandunset.cpp
    kvs/kvi_kvs_treenode_specialcommandwhile.cpp
    kvs/kvi_kvs_treenode_stringcast.cpp
    kvs/kvi_kvs_treenode_switchlist.cpp
    kvs/kvi_kvs_treenode_thisobjectfunctioncall.cpp
    kvs/kvi_kvs_treenode_variable.cpp
    kvs/kvi_kvs_useraction.cpp
    kvs/kvi_kvs_variant.cpp
    kvs/kvi_kvs_variantlist.cpp
    kvs/kvi_kvs_treenode_voidfunctioncall.cpp
    module/kvi_mexlinkfilter.cpp
    module/kvi_mexserverimport.cpp
    module/kvi_mextoolbar.cpp
    module/kvi_module.cpp
    module/kvi_moduleextension.cpp
    module/kvi_modulemanager.cpp
    sparser/kvi_antispam.cpp
    sparser/kvi_ircmessage.cpp
    sparser/kvi_sparser.cpp
    sparser/kvi_sp_ctcp.cpp
    sparser/kvi_sp_literal.cpp
    sparser/kvi_sp_numeric.cpp
    sparser/kvi_sp_tables.cpp
    ui/kvi_actiondrawer.cpp
    ui/kvi_channel.cpp
    ui/kvi_colorwin.cpp
    ui/kvi_console.cpp
    ui/kvi_cryptcontroller.cpp
    ui/kvi_ctcppagedialog.cpp
    ui/kvi_customtoolbar.cpp
    ui/kvi_debugwindow.cpp
    ui/kvi_dynamictooltip.cpp
    ui/kvi_filedialog.cpp
    ui/kvi_frame.cpp
    ui/kvi_historywin.cpp
    ui/kvi_htmldialog.cpp
    ui/kvi_imagedialog.cpp
    ui/kvi_input.cpp
    ui/kvi_ipeditor.cpp
    ui/kvi_irctoolbar.cpp
    ui/kvi_ircview.cpp
    ui/kvi_ircviewtools.cpp
    ui/kvi_listview.cpp
    ui/kvi_maskeditor.cpp
    ui/kvi_mdicaption.cpp
    ui/kvi_mdichild.cpp
    ui/kvi_mdimanager.cpp
    ui/kvi_menubar.cpp
    ui/kvi_modeeditor.cpp
    ui/kvi_modew.cpp
    ui/kvi_msgbox.cpp
    ui/kvi_optionswidget.cpp
    ui/kvi_query.cpp
    ui/kvi_scriptbutton.cpp
    ui/kvi_scripteditor.cpp
    ui/kvi_selectors.cpp
    ui/kvi_splash.cpp
    ui/kvi_statusbar.cpp
    ui/kvi_statusbarapplet.cpp
    ui/kvi_taskbar.cpp
    ui/kvi_texticonwin.cpp
    ui/kvi_themedlabel.cpp
    ui/kvi_toolbar.cpp
    ui/kvi_toolwindows_container.cpp
    ui/kvi_topicw.cpp
    ui/kvi_styled_controls.cpp
    ui/kvi_userlistview.cpp
    ui/kvi_window.cpp
  LINK kvilib-shared ${LINK_LIBRARIES}
  VERSION 3.0.0
  DESTINATION ${LIB_INSTALL_DIR}
  DEPENDENCIES tde-includes
)

tde_add_executable( kvirc AUTOMOC
  SOURCES kernel/kvi_main.cpp
  LINK kvirc-shared ${LINK_LIBRARIES}
  DESTINATION ${BIN_INSTALL_DIR}
)
