project(gui)

if (PACKAGING_NSIS)
    set(LIB_NAME library_monitoringgui)
    set(LIB_NAME_MONITORING library_monitoring)
else()
    set(LIB_NAME library-monitoringgui)
    set(LIB_NAME_MONITORING library-monitoring)
endif()

find_package(Qt4 REQUIRED)
include(${QT_USE_FILE})

set(gui_MOC_SRCS
  MonitoringGuiManager.h
  MonitoringDialog.h
  MonitoringDriver.h
)

set(gui_UIS
  MonitoringDialog.ui
)

qt4_wrap_ui(gui_UIS_H ${gui_UIS})
qt4_wrap_cpp(gui_MOCS ${gui_MOC_SRCS})

qt4_add_resources(gui_QRC MonitoringGuiIcons.qrc)

set(gui_HEADERS
  MonitoringGuiManager.h
  MMLMonitoringGUIAPI.h
  MonitoringDialog.h
  MonitoringDriver.h
  ${gui_UIS_H}
  ${gui_QRC}
)

set(gui_SRCS
  MonitoringGuiManager.cpp
  MonitoringDialog.cpp
  MonitoringDriver.cpp
  BenchmarkGui.cpp
  ${gui_HEADERS}
  ${gui_MOCS}
  ${gui_MOC_UI}
)

if(MML_SOFA_SUPPORT)
    #FIXME Sofa support => fix sofa dependency properly
    if(WIN32)
            set(MML_SOFA_LIB_DIR ${MML_SOFA_DIR}/lib/win32/ReleaseVC9 ${MML_SOFA_DIR}/lib/win32 ${MML_SOFA_DIR}/lib ${MML_SOFA_DIR}/bin)
    else()
            set(MML_SOFA_LIB_DIR ${MML_SOFA_DIR}/lib/linux ${MML_SOFA_DIR}/lib)
    endif()
    link_directories(${MML_SOFA_LIB_DIR})
endif(MML_SOFA_SUPPORT)

add_definitions(-DCOMPILE_MML_MONIGORING_GUI_TOOL)

# add lib as a camitk tool
camitk_library( STATIC
                NEEDS_LIBXML2    
                LIBNAME monitoringgui
                SOURCES ${gui_SRCS}
                INCLUDE_DIRECTORIES ${MML_INCLUDE_DIRECTORIES} ${CAMITK_INCLUDE_DIR}/libraries/monitoring ${QT_INCLUDE_DIR}
)

add_dependencies(${LIB_NAME} ${LIB_NAME_MONITORING})

set(gui_LIBRARIES
  ${QT_LIBRARIES}
  ${MML_LIBRARIES}
  ${LIB_NAME_MONITORING}
  ${LIB_NAME}
)

add_executable(benchmarkgui ${gui_SRCS})

target_link_libraries(benchmarkgui ${gui_LIBRARIES})

#--------------
# installation
#--------------
export_headers(
  ${gui_HEADERS}
  COMPONENT ${LIB_NAME}
  GROUP libraries
)

cpack_add_component(    ${LIB_NAME}
                        DISPLAY_NAME ${LIB_NAME}
                        DESCRIPTION "Graphical user interface to monitor a biomechanical deformation."
                        GROUP CEP_MODELING
                    )

# lib installation
# install(TARGETS monitoringgui
        # ARCHIVE DESTINATION lib/${CAMITK_SHORT_VERSION_STRING}
        # COMPONENT monitoringgui
# )