cmake_minimum_required(VERSION 2.6)
project(jasmine)
find_package(Qt4 4.5 REQUIRED QtCore QtGui QtNetwork)
add_definitions(${QT_DEFINITIONS})
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${QT_INCLUDE_DIR})
include(${QT_USE_FILE})
# 
#No mocs
set(main main.cxx settings.cxx)
set(validator
	validator/ipaddressvalidator.cxx
	)
set(ported_rmd6
	ported_rmd6/basis.cxx
	ported_rmd6/context.cxx
	ported_rmd6/rmd6.cxx
	ported_rmd6/rmd6_context.cxx
	)
set(structures
	structures/header.cxx
	settings.cxx
	)

#Mocs
set(serverclient_h
	server/tcpserver.h
	client/tcpclient.h
)
set(ui_h
	ui/about.h
	ui/editdelegate.h
	ui/jasmine_mainwindow.h
	ui/memberlist.h
	ui/settingdialog.h
	ui/rtfeditor.h
)

#Ui files
set(ui
	ui/uifiles/about.ui
	ui/uifiles/jasmine_main.ui
	ui/uifiles/settings.ui
	)

#The implementation files
set(serverclient_src
	server/tcpserver.cxx
	client/tcpclient.cxx
)
set(ui_src
	ui/about.cxx
	ui/editdelegate.cxx
	ui/jasmine_mainwindow.cxx
	ui/memberlist.cxx
	ui/settingdialog.cxx
	ui/rtfeditor.cxx
)

#resource files
set(res
	res/main.res
	)

qt4_wrap_cpp(serverclient_moc ${serverclient_h})

qt4_wrap_cpp(ui_moc ${ui_h})
qt4_wrap_ui(ui_moc ${ui})
qt4_add_resources(res_moc ${res})
if(WIN32)
	add_executable(jasmine WIN32
			${main} ${ui_moc} ${ui_src} ${serverclient_moc}
			${serverclient_src} ${structures} ${res_moc}
			${validator} ${ported_rmd6})
	target_link_libraries(jasmine ${QT_LIBRARIES})
else(WIN32)
	add_library(qripemd160 SHARED ${ported_rmd6})
	add_library(validator SHARED ${validator})
	add_library(resource SHARED ${res_moc})
	add_library(structures SHARED ${structures})

	add_library(serverclient SHARED ${serverclient_moc} ${serverclient_src})
	add_library(ui SHARED ${ui_moc} ${ui_src})

	add_executable(jasmine ${main})

	target_link_libraries(qripemd160 ${QT_LIBRARIES})
	target_link_libraries(validator ${QT_LIBRARIES})
	target_link_libraries(resource ${QT_LIBRARIES})
	target_link_libraries(structures ${QT_LIBRARIES})

	target_link_libraries(structures qripemd160 ${QT_LIBRARIES})
	target_link_libraries(serverclient structures validator ${QT_LIBRARIES})
	target_link_libraries(ui resource serverclient ${QT_LIBRARIES})

	target_link_libraries(jasmine ui ${QT_LIBRARIES})
endif(WIN32)
