# Set one (or none) of the following to 1 to set the CMake options for
# compiling meta.   Changes must also be made to the localMetaConfiguration.h
# file.
SET(METAIO_FOR_VTK 0)
SET(METAIO_FOR_ITK 1)

# Based on above options, choose a project/library name
IF(METAIO_FOR_VTK)
  SET(METAIO_NAMESPACE "vtkmetaio")
ELSE(METAIO_FOR_VTK)
  IF(METAIO_FOR_ITK)
    SET(METAIO_NAMESPACE "ITKMetaIO")
  ELSE(METAIO_FOR_ITK)
    SET(METAIO_NAMESPACE "kwMetaIO")
  ENDIF(METAIO_FOR_ITK)
ENDIF(METAIO_FOR_VTK)

PROJECT( ${METAIO_NAMESPACE} )

INCLUDE_DIRECTORIES(${${METAIO_NAMESPACE}_SOURCE_DIR})

ADD_LIBRARY(${METAIO_NAMESPACE}
  metaTypes.h
  metaUtils.cxx
  metaArrow.cxx
  metaBlob.cxx
  metaCommand.h
  metaCommand.cxx
  metaContour.h
  metaContour.cxx
  metaDTITube.cxx
  metaEllipse.cxx
  metaGroup.cxx
  metaGaussian.cxx
  metaImage.cxx
  metaImageUtils.cxx
  metaLandmark.cxx
  metaLine.cxx
  metaMesh.cxx
  metaMesh.h
  metaObject.cxx
  metaOutput.h
  metaOutput.cxx
  metaScene.cxx
  metaSurface.cxx
  metaTube.cxx
  metaVesselTube.cxx
  metaTransform.cxx
  metaTubeGraph.cxx
  metaForm.h
  metaForm.cxx
  metaArray.h
  metaArray.cxx
)

INCLUDE_REGULAR_EXPRESSION("^.*$")

IF(METAIO_FOR_VTK)
  IF(BUILD_SHARED_LIBS)
    ADD_DEFINITIONS(-Dvtkmetaio_BUILD_SHARED_LIBS)
  ENDIF(BUILD_SHARED_LIBS)
  INCLUDE_DIRECTORIES(${VTKZLIB_SOURCE_DIR})
  TARGET_LINK_LIBRARIES(${METAIO_NAMESPACE} ${VTK_ZLIB_LIBRARIES} ${KWSYS_NAMESPACE})
  IF(VTK_LIBRARY_PROPERTIES)
    SET_TARGET_PROPERTIES(${METAIO_NAMESPACE} 
                          PROPERTIES ${VTK_LIBRARY_PROPERTIES})
  ENDIF(VTK_LIBRARY_PROPERTIES)
ELSE(METAIO_FOR_VTK)
  IF(METAIO_FOR_ITK)
    INCLUDE_DIRECTORIES(${ITK_ZLIB_SOURCE_DIR})
    TARGET_LINK_LIBRARIES(${METAIO_NAMESPACE} ${ITK_ZLIB_LIBRARIES} 
                                              ${KWSYS_NAMESPACE})
    IF(ITK_LIBRARY_PROPERTIES)
      SET_TARGET_PROPERTIES(${METAIO_NAMESPACE} 
                            PROPERTIES ${ITK_LIBRARY_PROPERTIES})
    ENDIF(ITK_LIBRARY_PROPERTIES)
  ELSE(METAIO_FOR_ITK)
    INCLUDE_DIRECTORIES(${ZLIB_SOURCE_DIR})
    TARGET_LINK_LIBRARIES(${METAIO_NAMESPACE} ${ZLIB_LIBRARIES})
  ENDIF(METAIO_FOR_ITK)
ENDIF(METAIO_FOR_VTK)

#SUBDIRS(tests)

IF(METAIO_FOR_VTK)
  IF(NOT VTK_INSTALL_NO_LIBRARIES)
    INSTALL(TARGETS ${METAIO_NAMESPACE} DESTINATION ${VTK_INSTALL_LIB_DIR})
  ENDIF(NOT VTK_INSTALL_NO_LIBRARIES)
  IF(NOT VTK_INSTALL_NO_DEVELOPMENT)
    INSTALL(FILES "(\\.h)$" DESTINATION ${VTK_INSTALL_INCLUDE_DIR}/${METAIO_NAMESPACE})
  ENDIF(NOT VTK_INSTALL_NO_DEVELOPMENT)
ELSE(METAIO_FOR_VTK)
  IF(METAIO_FOR_ITK)
    IF(NOT ITK_INSTALL_NO_LIBRARIES)
      INSTALL(TARGETS ${METAIO_NAMESPACE}
        RUNTIME DESTINATION ${ITK_INSTALL_BIN_DIR_CM24} COMPONENT RuntimeLibraries
        LIBRARY DESTINATION ${ITK_INSTALL_LIB_DIR_CM24} COMPONENT RuntimeLibraries
        ARCHIVE DESTINATION ${ITK_INSTALL_LIB_DIR_CM24} COMPONENT Development
        )
    ENDIF(NOT ITK_INSTALL_NO_LIBRARIES)
    IF(NOT ITK_INSTALL_NO_DEVELOPMENT)
      FILE(GLOB __files "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
      INSTALL(FILES ${__files}
        DESTINATION ${ITK_INSTALL_INCLUDE_DIR_CM24}/Utilities/MetaIO
        COMPONENT Development)
    ENDIF(NOT ITK_INSTALL_NO_DEVELOPMENT)
  ELSE(METAIO_FOR_ITK)
    TARGET_LINK_LIBRARIES(ITKMetaIO ${ZLIB_LIBRARIES})
    STRING(REGEX REPLACE "^/" "" INSTALL_LIB_DIR_CM24 "${INSTALL_LIB_DIR}")
    STRING(REGEX REPLACE "^/" "" INSTALL_BIN_DIR_CM24 "${INSTALL_BIN_DIR}")
    STRING(REGEX REPLACE "^/" "" INSTALL_INCLUDE_DIR_CM24 "${INSTALL_INCLUDE_DIR}")
    INSTALL(TARGETS ${METAIO_NAMESPACE}
      RUNTIME DESTINATION ${INSTALL_BIN_DIR_CM24} COMPONENT RuntimeLibraries
      LIBRARY DESTINATION ${INSTALL_LIB_DIR_CM24} COMPONENT RuntimeLibraries
      ARCHIVE DESTINATION ${INSTALL_LIB_DIR_CM24} COMPONENT Development
      )
    FILE(GLOB __files "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
    INSTALL(FILES ${__files}
      DESTINATION ${INSTALL_INCLUDE_DIR_CM24}/kwMetaIO
      COMPONENT Development)
  ENDIF(METAIO_FOR_ITK)
ENDIF(METAIO_FOR_VTK)


IF(WIN32)
  IF(NOT BORLAND)
    TARGET_LINK_LIBRARIES(${METAIO_NAMESPACE} wsock32)
  ENDIF(NOT BORLAND)
ENDIF(WIN32)

