#===============================================================================
# Medical Data Segmentation Toolkit (MDSTk)
# Copyright (c) 2007-2010 by PGMed@FIT
#
# Authors: Miroslav Svub, svub@fit.vutbr.cz
#          Michal Spanel, spanel@fit.vutbr.cz
# Date:    2007/08/25
#
# $Id: CMakeLists.txt 1863 2010-08-31 20:40:15Z spanel $
#
# Description:
# - Configuration file for the CMake build system.

IF( BUILD_LIBRARIES )

  # Prefix added before name of a library
  SET( OMToolkit_LIBRARY_PREFIX "" CACHE INTERNAL "Library name prefix." )

  # Library name declaration
  MACRO( OMToolkit_LIBRARY _LIBRARY_NAME )
    SET( OMToolkit_LIBRARY_NAME ${OMToolkit_LIBRARY_PREFIX}${_LIBRARY_NAME} )
    SET( OMToolkit_PROJECT_NAME lib${_LIBRARY_NAME} )
    SET( OMToolkit_LIBRARY_SOURCES "" )
    SET( OMToolkit_LIBRARY_HEADERS "" )
  ENDMACRO( OMToolkit_LIBRARY )

  # Macro for adding source file to library build
  MACRO( OMToolkit_LIBRARY_SOURCE )
    SET( OMToolkit_LIBRARY_SOURCES ${OMToolkit_LIBRARY_SOURCES} ${ARGV} )
  ENDMACRO( OMToolkit_LIBRARY_SOURCE )

  # Macro for adding header file to library
  MACRO( OMToolkit_LIBRARY_HEADER )
    SET( OMToolkit_LIBRARY_HEADERS ${OMToolkit_LIBRARY_HEADERS} ${ARGV} )
  ENDMACRO( OMToolkit_LIBRARY_HEADER )

  # Macro for adding all header files in a specified directory to library
  MACRO( OMToolkit_LIBRARY_INCLUDE_DIR _DIR )
    FILE( GLOB_RECURSE OMToolkit_LIBRARY_HEADERS ${_DIR}/*.h ${_DIR}/*.hxx )
  ENDMACRO( OMToolkit_LIBRARY_INCLUDE_DIR )

  # Macro for adding header file to library
  MACRO( OMToolkit_LIBRARY_HEADER_OSG )
    SET( OMToolkit_LIBRARY_HEADERS_OSG ${OMToolkit_LIBRARY_HEADERS_OSG} ${ARGV} )
  ENDMACRO( OMToolkit_LIBRARY_HEADER_OSG )

  # Macro for adding all header files in a specified directory to library
  MACRO( OMToolkit_LIBRARY_INCLUDE_DIR_OSG _DIR )
    FILE( GLOB_RECURSE OMToolkit_LIBRARY_HEADERS_OSG ${_DIR}/*.h ${_DIR}/*.hxx )
  ENDMACRO( OMToolkit_LIBRARY_INCLUDE_DIR_OSG )


  # Final building macro
  MACRO( OMToolkit_LIBRARY_BUILD )
IF(BUILD_MODULES_OSG)
    ADD_LIBRARY( ${OMToolkit_LIBRARY_NAME}
                 ${OMToolkit_LIBRARY_SOURCES}
                 ${OMToolkit_LIBRARY_HEADERS} 
   		 ${OMToolkit_LIBRARY_HEADERS_OSG})
ELSE(BUILD_MODULES_OSG)
    ADD_LIBRARY( ${OMToolkit_LIBRARY_NAME}
                 ${OMToolkit_LIBRARY_SOURCES}
                 ${OMToolkit_LIBRARY_HEADERS} )
ENDIF(BUILD_MODULES_OSG)

    SET_TARGET_PROPERTIES( ${OMToolkit_LIBRARY_NAME} PROPERTIES
                           PROJECT_LABEL ${OMToolkit_PROJECT_NAME}
                           DEBUG_POSTFIX d
                           LINK_FLAGS "${OMToolkit_LINK_FLAGS}"
                           )
    TARGET_LINK_LIBRARIES( ${OMToolkit_LIBRARY_NAME}  )
  ENDMACRO( OMToolkit_LIBRARY_BUILD )

  # Adding dependencies
  MACRO( OMToolkit_LIBRARY_DEP _NAME )
    TARGET_LINK_LIBRARIES( ${OMToolkit_LIBRARY_NAME} ${_NAME} )
  ENDMACRO( OMToolkit_LIBRARY_DEP )

  # Install macro
  MACRO( OMToolkit_LIBRARY_INSTALL )
    INSTALL( TARGETS ${OMToolkit_LIBRARY_NAME}
             RUNTIME DESTINATION bin
             LIBRARY DESTINATION lib
             ARCHIVE DESTINATION lib )
    FOREACH( HEADER ${OMToolkit_LIBRARY_HEADERS} )
      FILE( RELATIVE_PATH FILE ${OMToolkit_SOURCE_DIR}/include ${HEADER} )
      GET_FILENAME_COMPONENT( DIR ${FILE} PATH )
      INSTALL( FILES ${HEADER} DESTINATION include/${DIR} )
    ENDFOREACH( HEADER )
  ENDMACRO( OMToolkit_LIBRARY_INSTALL )


  # Build libraries in these directories
  ADD_SUBDIRECTORY( Toolkit )

ENDIF( BUILD_LIBRARIES )

