SET (VTK_VMTK_COMMON_SRCS
  vtkvmtkMath.cxx
  )

SET (VTK_VMTK_COMMON_TARGET_LINK_LIBRARIES vtkCommon)

IF(APPLE)
  IF(VTK_VMTK_USE_COCOA)
    SET(VTK_VMTK_COCOA_OBJC_SRCS vtkvmtkCocoaServer.mm vtkvmtkCocoaGLView.mm)
    SET(VTK_VMTK_COCOA_SRCS vtkvmtkCocoaRenderWindowInteractor.mm)
    SET(VTK_VMTK_COMMON_SRCS ${VTK_VMTK_COMMON_SRCS} ${VTK_VMTK_COCOA_SRCS} ${VTK_VMTK_COCOA_OBJC_SRCS})
    IF(VTK_REQUIRED_OBJCXX_FLAGS)
      SET_SOURCE_FILES_PROPERTIES(${VTK_VMTK_COCOA_SRCS} PROPERTIES COMPILE_FLAGS "${VTK_REQUIRED_OBJCXX_FLAGS}")
      SET_SOURCE_FILES_PROPERTIES(${VTK_VMTK_COCOA_OBJC_SRCS} PROPERTIES COMPILE_FLAGS "${VTK_REQUIRED_OBJCXX_FLAGS}")
    ENDIF(VTK_REQUIRED_OBJCXX_FLAGS)
    SET_SOURCE_FILES_PROPERTIES(${VTK_VMTK_COCOA_OBJC_SRCS} WRAP_EXCLUDE)
    SET (VTK_VMTK_COMMON_TARGET_LINK_LIBRARIES ${VTK_VMTK_COMMON_TARGET_LINK_LIBRARIES} vtkRendering ${OPENGL_gl_LIBRARY} "-framework Cocoa")
  ENDIF(VTK_VMTK_USE_COCOA)
ENDIF(APPLE)

ADD_LIBRARY (vtkvmtkCommon ${VTK_VMTK_COMMON_SRCS})
IF(VMTK_LIBRARY_PROPERTIES)
  SET_TARGET_PROPERTIES(vtkvmtkCommon PROPERTIES ${VMTK_LIBRARY_PROPERTIES})
ENDIF(VMTK_LIBRARY_PROPERTIES)
SET_TARGET_PROPERTIES(vtkvmtkCommon PROPERTIES LINKER_LANGUAGE CXX)
TARGET_LINK_LIBRARIES(vtkvmtkCommon ${VTK_VMTK_COMMON_TARGET_LINK_LIBRARIES})

INSTALL(TARGETS vtkvmtkCommon
  LIBRARY DESTINATION ${VTK_VMTK_INSTALL_LIB_DIR} COMPONENT RuntimeLibraries
  ARCHIVE DESTINATION ${VTK_VMTK_INSTALL_LIB_DIR} COMPONENT Development
  RUNTIME DESTINATION ${VTK_VMTK_INSTALL_BIN_DIR} COMPONENT RuntimeExecutables
)

#FILE(GLOB files "${VTK_VMTK_COMMON_SRCS}/*.h")
FILE(GLOB files "${VTK_VMTK_SOURCE_DIR}/Common/*.h")
#INSTALL(FILES ${files} vtkvmtkConstants.h vtkvmtkWin32Header.h DESTINATION ${VTK_VMTK_INSTALL_INCLUDE_DIR})
INSTALL(FILES ${files}
  DESTINATION ${VTK_VMTK_INSTALL_INCLUDE_DIR}
  COMPONENT Development)

### START VMTK IN SLICER PATCH ###
IF (VTK_VMTK_IN_SLICER)
  SET(LIBS vtkvmtkCommon)

  FOREACH(LIB ${LIBS})
    slicer3_set_modules_output_path(${LIB})
  ENDFOREACH(LIB ${LIBS})
    
  slicer3_install_modules(${LIBS})
ENDIF (VTK_VMTK_IN_SLICER)
### END VMTK IN SLICER PATCH ###

IF (VTK_WRAP_PYTHON AND VTK_VMTK_WRAP_PYTHON)
  VTK_WRAP_PYTHON3(vtkvmtkCommonPython VTK_VMTK_COMMON_PYTHON_SRCS "${VTK_VMTK_COMMON_SRCS}")
  ADD_LIBRARY(vtkvmtkCommonPythonD ${VTK_VMTK_COMMON_PYTHON_SRCS})
  IF(VMTK_LIBRARY_PROPERTIES)
    SET_TARGET_PROPERTIES(vtkvmtkCommonPythonD PROPERTIES ${VMTK_LIBRARY_PROPERTIES})
  ENDIF(VMTK_LIBRARY_PROPERTIES)
  ADD_LIBRARY(vtkvmtkCommonPython MODULE vtkvmtkCommonPythonInit.cxx)
  IF(APPLE AND VTK_VMTK_USE_COCOA)
    TARGET_LINK_LIBRARIES(vtkvmtkCommonPythonD vtkvmtkCommon vtkCommon vtkCommonPythonD vtkRendering vtkRenderingPythonD)
  ELSE(APPLE AND VTK_VMTK_USE_COCOA)
    TARGET_LINK_LIBRARIES(vtkvmtkCommonPythonD vtkvmtkCommon vtkCommon vtkCommonPythonD)
  ENDIF(APPLE AND VTK_VMTK_USE_COCOA)
  IF(NOT WIN32)
    SET_TARGET_PROPERTIES(vtkvmtkCommonPython PROPERTIES COMPILE_FLAGS -fPIC)
  ENDIF(NOT WIN32)
  TARGET_LINK_LIBRARIES (vtkvmtkCommonPython vtkvmtkCommonPythonD)
  IF(WIN32 AND NOT CYGWIN)
     SET_TARGET_PROPERTIES(vtkvmtkCommonPython PROPERTIES SUFFIX ".pyd")
  ENDIF(WIN32 AND NOT CYGWIN)
  INSTALL(TARGETS vtkvmtkCommonPythonD
    LIBRARY DESTINATION ${VTK_VMTK_INSTALL_LIB_DIR} COMPONENT RuntimeLibraries
    ARCHIVE DESTINATION ${VTK_VMTK_INSTALL_LIB_DIR} COMPONENT Development
    RUNTIME DESTINATION ${VTK_VMTK_INSTALL_BIN_DIR} COMPONENT RuntimeExecutables
    )
  INSTALL(TARGETS vtkvmtkCommonPython
    LIBRARY DESTINATION ${VTK_VMTK_MODULE_INSTALL_LIB_DIR} COMPONENT RuntimeLibraries
  )
ENDIF (VTK_WRAP_PYTHON AND VTK_VMTK_WRAP_PYTHON)

IF (VTK_WRAP_TCL AND VTK_VMTK_WRAP_TCL)
  SET(VTK_WRAP_HINTS ${VTK_VMTK_SOURCE_DIR}/Wrapping/Tcl/hints)
  VTK_WRAP_TCL3(vtkvmtkCommonTCL VTK_VMTK_COMMON_TCL_SRCS "${VTK_VMTK_COMMON_SRCS}" "")
  ADD_LIBRARY(vtkvmtkCommonTCL ${VTK_VMTK_COMMON_TCL_SRCS})
  IF(VMTK_LIBRARY_PROPERTIES)
    SET_TARGET_PROPERTIES(vtkvmtkCommonTCL PROPERTIES ${VMTK_LIBRARY_PROPERTIES})
  ENDIF(VMTK_LIBRARY_PROPERTIES)
  IF(APPLE AND VTK_VMTK_USE_COCOA)
    TARGET_LINK_LIBRARIES(vtkvmtkCommonTCL vtkvmtkCommon vtkCommon vtkCommonTCL vtkRendering vtkRenderingTCL)  
  ELSE(APPLE AND VTK_VMTK_USE_COCOA)
    TARGET_LINK_LIBRARIES(vtkvmtkCommonTCL vtkvmtkCommon vtkCommon vtkCommonTCL)  
  ENDIF(APPLE AND VTK_VMTK_USE_COCOA)
  INSTALL(TARGETS vtkvmtkCommonTCL
    LIBRARY DESTINATION ${VTK_VMTK_INSTALL_LIB_DIR} COMPONENT RuntimeLibraries
    ARCHIVE DESTINATION ${VTK_VMTK_INSTALL_LIB_DIR} COMPONENT Development
    RUNTIME DESTINATION ${VTK_VMTK_INSTALL_BIN_DIR} COMPONENT RuntimeExecutables
    )

  ### START VMTK IN SLICER PATCH ###
  IF (VTK_VMTK_IN_SLICER)
    SET(LIBS vtkvmtkCommonTCL)

    FOREACH(LIB ${LIBS})
      slicer3_set_modules_output_path(${LIB})
    ENDFOREACH(LIB ${LIBS})
    
    slicer3_install_modules(${LIBS})
  ENDIF (VTK_VMTK_IN_SLICER)
  ### END VMTK IN SLICER PATCH ###

ENDIF (VTK_WRAP_TCL AND VTK_VMTK_WRAP_TCL)
