ow_create_shared_library(libpurple)

ow_use_public_libraries(
	glib2
	#openssl
	gnutls
)

ow_add_public_include_dirs(
	${CMAKE_CURRENT_SOURCE_DIR}/pidgin-${LIBPURPLE_VERSION}/libpurple
	${CMAKE_CURRENT_SOURCE_DIR}/pidgin-${LIBPURPLE_VERSION}
)

ow_add_private_include_dirs(
	${CMAKE_CURRENT_SOURCE_DIR}/pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/
	${CMAKE_CURRENT_SOURCE_DIR}/pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/win32/
	${CMAKE_CURRENT_SOURCE_DIR}/pidgin-${LIBPURPLE_VERSION}/libpurple/win32
	${CMAKE_CURRENT_SOURCE_DIR}/pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/
)

ow_use_private_libraries(
	libxml
	libintl
	iconv
)

ow_add_private_libraries(
	Ws2_32
)

ow_add_private_definitions(
	-DHAVE_CONFIG_H
	-DHAVE_GLIB
	-DPURPLE_STATIC_PRPL
	-DHAVE_SSL
	-DHAVE_GNUTLS
	-D_CRT_SECURE_NO_DEPRECATE
	-D_CRT_SECURE_NO_WARNINGS
	-Dssize_t=int
	-DHAVE_GETADDRINFO
)

ow_add_public_definitions(
	-DG_GNUC_NULL_TERMINATED=""
)

ow_copy_dir_recursive(${CMAKE_CURRENT_SOURCE_DIR}/pidgin-${LIBPURPLE_VERSION}/ca-certs/*.pem ${DATA_COPY_DIR}/ca-certs/.)

ow_add_sources(
	pidgin-${LIBPURPLE_VERSION}/libpurple/libpurple.def
		
	pidgin-${LIBPURPLE_VERSION}/libpurple/account.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/accountopt.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/blist.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/buddyicon.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/certificate.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/cipher.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/circbuffer.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/cmds.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/connection.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/conversation.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/core.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/debug.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/desktopitem.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/dnsquery.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/dnssrv.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/eventloop.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/ft.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/win32/giowin32.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/win32/libc_interface.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/idle.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/imgstore.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/log.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/mime.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/nat-pmp.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/network.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/notify.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/ntlm.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/plugin.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/pluginpref.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/pounce.c
#	libpurple/prefix.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/prefs.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/privacy.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/proxy.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/prpl.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/request.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/roomlist.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/savedstatuses.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/server.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/signals.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/smiley.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/sound.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/sslconn.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/status.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/stringref.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/stun.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/theme.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/theme-manager.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/upnp.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/util.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/value.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/version.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/whiteboard.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/win32/win32dep.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/xmlnode.c
	
	pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/ssl/ssl.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/ssl/ssl-gnutls.c
	
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/adhoccommands.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/auth.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/auth_plain.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/auth_digest_md5
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/auth_scram.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/buddy.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/caps.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/chat.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/data.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/disco.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/google.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/iq.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/jabber.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/jutil.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/message.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/oob.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/parser.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/pep.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/ping.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/presence.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/roster.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/si.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/usermood.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/usernick.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/usertune.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/xdata.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/win32/posix.uname.c
	
	
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/cmdproc.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/command.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/contact.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/dialog.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/error.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/group.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/history.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/httpconn.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/msg.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/msn.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/nexus.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/notification.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/object.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/oim.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/page.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/servconn.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/session.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/slp.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/slpcall.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/slplink.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/slpmsg.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/soap.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/state.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/switchboard.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/sync.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/table.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/transaction.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/user.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/userlist.c
	
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/bstream.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_admin.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_advert.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_alert.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_auth.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_bart.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_bos.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_buddy.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_chat.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_chatnav.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_icq.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_icbm.c	
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_invite.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_locate.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_odir.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_oservice.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_feedbag.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_popup.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_stats.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_translate.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/family_userlookup.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/flap_connection.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/libaim.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/libicq.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/misc.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/msgcookie.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/odc.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/oft.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/oscar.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/oscar_data.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/peer.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/peer_proxy.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/rxhandlers.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/snac.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/tlv.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/util.c
	
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/yahoo/util.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/yahoo/yahoo_aliases.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/yahoo/yahoo_doodle.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/yahoo/yahoo_filexfer.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/yahoo/yahoo_friend.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/yahoo/yahoo_packet.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/yahoo/yahoo_picture.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/yahoo/yahoo_profile.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/yahoo/yahoochat.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/yahoo/ycht.c

	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/oscar/clientlogin.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/sound-theme.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/sound-theme-loader.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/theme-loader.c
		
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/libxmpp.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/bosh.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/ibb.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/useravatar.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/jingle/jingle.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/jingle/content.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/jingle/iceudp.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/jingle/rawudp.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/jingle/rtp.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/jingle/session.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/jabber/jingle/transport.c
			
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/msn/msnutils.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/yahoo/libymsg.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/yahoo/libyahoo.c
	pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/yahoo/libyahoojp.c
	pidgin-${LIBPURPLE_VERSION}/fake_init.c
)

if(ENABLE_MYSPACE)
	ow_add_private_definitions(
		-DENABLE_MYSPACE
	)

	ow_add_sources(		
		pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/myspace/markup.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/myspace/message.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/myspace/myspace.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/myspace/session.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/myspace/user.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/protocols/myspace/zap.c
	)	
endif(ENABLE_MYSPACE)

if(ENABLE_FACEBOOK)
	ow_add_private_definitions(
		-DENABLE_FACEBOOK
	)

	ow_add_sources(
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/json-glib/json-array.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/json-glib/json-enum-types.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/json-glib/json-generator.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/json-glib/json-gobject.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/json-glib/json-marshal.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/json-glib/json-node.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/json-glib/json-object.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/json-glib/json-parser.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/json-glib/json-scanner.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/libfacebook.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/fb_blist.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/fb_connection.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/fb_conversation.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/fb_info.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/fb_json.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/fb_managefriends.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/fb_friendlist.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/fb_messages.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/fb_notifications.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/fb_search.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/facebook/fb_util.c
	)
endif(ENABLE_FACEBOOK)	

if(ENABLE_TWITTER)
	ow_add_private_definitions(
		-DENABLE_TWITTER
	)

	ow_add_sources(		
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/twitter/twitter.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/twitter/twitter_api.c
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/twitter/twitter_request.c
	)
endif(ENABLE_TWITTER)

if(ENABLE_SKYPE)
	ow_add_private_definitions(
		-DENABLE_SKYPE
	)

	ow_add_sources(		
		pidgin-${LIBPURPLE_VERSION}/libpurple/plugins/skype/libskype.c
	)
endif(ENABLE_SKYPE)

ow_create_project_binary()
