PROJECT(nuapplet2)

SET(PROJECT_VERSION_MAJOR "2")
SET(PROJECT_VERSION_MINOR "3")
SET(PROJECT_VERSION_PATCH "0")
SET(PROJECT_VERSION_STR "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")

cmake_minimum_required(VERSION 2.6)

# apt-get install libqt4-dev
INCLUDE (CheckIncludeFile)
INCLUDE (CheckIncludeFiles)
INCLUDE (CheckLibraryExists)
INCLUDE (CheckSymbolExists)
INCLUDE (FindPkgConfig)

INCLUDE(FindQt4)
INCLUDE(FindNuclient.cmake)

IF (NOT QT4_FOUND)
	MESSAGE(FATAL_ERROR "Qt4 development files not found. Please install libqt4-dev")
ENDIF (NOT QT4_FOUND)

IF (NOT LIBNUCLIENT_FOUND)
	MESSAGE(FATAL_ERROR "Libnuclient development files not found. Please install libnuclient-dev")
ENDIF (NOT LIBNUCLIENT_FOUND)

INCLUDE(${QT_USE_FILE})

ADD_DEFINITIONS(-DPROJECT_VERSION_STR="${PROJECT_VERSION_STR}")
ADD_DEFINITIONS(${QT_DEFINITIONS})
ADD_DEFINITIONS(-DTRANSLATION_DIR="${CMAKE_INSTALL_PREFIX}/share/qt4/translations/" -DDATA_DIR="${CMAKE_INSTALL_PREFIX}/share/nuapplet2/" ${LIBNUCLIENT_DEFINITIONS})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${QT_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR})
LINK_DIRECTORIES(${QT_LIBRARY_DIR} ${LIBNUSSL_LIBDIR} ${LIBNUCLIENT_LIBDIR})

IF(APPLE)
	ADD_DEFINITIONS(-DFREEBSD)
ENDIF(APPLE)

INCLUDE_DIRECTORIES(${LIBNUSSL_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${LIBNUCLIENT_INCLUDE_DIRS})

SET(GUI_SRCS
	src/auth_dlg.cpp
	src/editbox.cpp
	src/logs.cpp
	src/preferences.cpp
	src/systray.cpp
	src/thread_session.cpp
	)

SET(GUI_HDRS
	src/auth_dlg.h
	src/editbox.h
	src/logs.h
	src/preferences.h
	src/systray.h
	src/thread_session.h
	)

SET(GUI_UIS
	ui/logs.ui
	ui/prefs.ui
	)

# there's a typo in cmake documentation: QT4_ADD_RESOURCES (with an S)
QT4_ADD_RESOURCES(GUI_SRCS application.qrc)

# for this to work, $name.cpp file must include $name.moc
QT4_AUTOMOC( ${GUI_SRCS} )

QT4_WRAP_UI(GUI_UIS_H ${GUI_UIS})

ADD_EXECUTABLE(nuapplet2
	src/main.cpp
	${GUI_SRCS}
	${GUI_HDRS}
	${GUI_UIS_H}
	)

#QT4_GENERATE_MOC(${CMAKE_CURRENT_SOURCE_DIR}/mainwindow.h ${CMAKE_CURRENT_BINARY_DIR}/moc_mainwindow.cpp)
##QT4_AUTOMOC(${GUI_HDRS)

TARGET_LINK_LIBRARIES(nuapplet2 ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${LIBNUSSL_LDFLAGS} ${LIBNUCLIENT_LDFLAGS})

INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/nuapplet2 DESTINATION bin)
INSTALL(FILES nuapplet2.desktop DESTINATION share/applications)
INSTALL(FILES images/nuapplet2-running.png DESTINATION share/pixmaps)
INSTALL(FILES lang/nuapplet2_fr_FR.qm DESTINATION share/qt4/translations)

SET(ts_files "lang/nuapplet2_fr_FR.ts")
ADD_CUSTOM_TARGET(lupdate
	COMMAND
		"lupdate"
		"src/*.cpp"
		"src/*.h"
		"ui/*.ui"
		-ts "${ts_files}"
	WORKING_DIRECTORY
		${CMAKE_CURRENT_SOURCE_DIR}
	COMMENT
		"Runs lupdate command"
)

ADD_CUSTOM_TARGET(lrelease
	COMMAND
		"lrelease"
		"${ts_files}"
	WORKING_DIRECTORY
		${CMAKE_CURRENT_SOURCE_DIR}
	COMMENT
		"Runs lrelease command"
)

## Packaging infos
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "NuApplet")
SET(CPACK_PACKAGE_VENDOR "EdenWall")
#SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
#SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
SET(CPACK_PACKAGE_VERSION_MAJOR "$PROJECT_VERSION_MAJOR")
SET(CPACK_PACKAGE_VERSION_MINOR "$PROJECT_VERSION_MINOR")
SET(CPACK_PACKAGE_VERSION_PATCH "$PROJECT_VERSION_PATCH")
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
INCLUDE(CPack)


