PROJECT(VTKTclWrapping)

# We only wrap subportion of VTK, so include only that
INCLUDE_DIRECTORIES(
  ${VTK_SOURCE_DIR}/Wrapping
  ${VTK_SOURCE_DIR}
  ${VTK_BINARY_DIR}
  ${VTK_SOURCE_DIR}/Common
  ${VTK_BINARY_DIR}/Rendering
  ${TK_INCLUDE_PATH}
  ${TCL_INCLUDE_PATH}
  ${TK_INTERNAL_PATH}
  )

# OpenGL include directories.
IF(APPLE)
  IF(VTK_USE_X)
    SET(PVWRAP_OPEN_GL_DIRS ${PVWRAP_OPEN_GL_DIRS}
      ${OPENGL_INCLUDE_DIR})
  ENDIF(VTK_USE_X)
ELSE(APPLE)
  SET(PVWRAP_OPEN_GL_DIRS ${PVWRAP_OPEN_GL_DIRS}
    ${OPENGL_INCLUDE_DIR})
ENDIF(APPLE)

IF(VTK_USE_X)
  # X include directories.
  SET(PVWRAP_OPEN_GL_DIRS ${PVWRAP_OPEN_GL_DIRS}
    ${CMAKE_Xlib_INCLUDE_PATH} ${CMAKE_Xutil_INCLUDE_PATH})
ENDIF(VTK_USE_X)

IF(VTK_HAVE_VP1000)
  # VolumePro VP 1000 include directory.
  SET(PVWRAP_OPEN_GL_DIRS ${PVWRAP_OPEN_GL_DIRS}
    ${VLI_INCLUDE_PATH_FOR_VP1000})
ENDIF(VTK_HAVE_VP1000)

IF(VTK_USE_MANGLED_MESA)
  # Mangled Mesa include directory.
  SET(PVWRAP_OPEN_GL_DIRS ${PVWRAP_OPEN_GL_DIRS}
    ${MESA_INCLUDE_PATH})
ELSE(VTK_USE_MANGLED_MESA)
  # Off-Screen Mesa include directory.
  IF(VTK_OPENGL_HAS_OSMESA)
    IF(OSMESA_INCLUDE_DIR)
      SET(PVWRAP_OPEN_GL_DIRS ${PVWRAP_OPEN_GL_DIRS}
        ${OSMESA_INCLUDE_DIR})
    ENDIF(OSMESA_INCLUDE_DIR)
  ENDIF(VTK_OPENGL_HAS_OSMESA)
ENDIF(VTK_USE_MANGLED_MESA)

INCLUDE_DIRECTORIES(${PVWRAP_OPEN_GL_DIRS})
SET(CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS}")

ADD_EXECUTABLE(vtkWrapTcl 
  ${VTK_SOURCE_DIR}/Wrapping/vtkWrapTcl.c 
  ${VTK_SOURCE_DIR}/Wrapping/vtkParse.tab.c)
ADD_EXECUTABLE(vtkWrapTclInit 
  ${VTK_SOURCE_DIR}/Wrapping/vtkWrapTclInit.c)

SET(VTK_TCL_FILES
  "${ParaView_SOURCE_DIR}/VTK/Common/vtkObject.cxx"
  "${ParaView_SOURCE_DIR}/VTK/Common/vtkObjectBase.cxx")

SET_SOURCE_FILES_PROPERTIES(
  "${ParaView_SOURCE_DIR}/VTK/Common/vtkObjectBase.cxx"
  ABSTRACT
  )

SET(EXE_EXT "")
IF(WIN32)
  SET(EXE_EXT ".exe")
ENDIF(WIN32)

SET(MAKE_SYSTEM)
IF(CMAKE_BUILD_TOOL MATCHES "make")
  SET(MAKE_SYSTEM 1)
ENDIF(CMAKE_BUILD_TOOL MATCHES "make")

SET(CFG_INIT "/${CMAKE_CFG_INTDIR}")
IF(MAKE_SYSTEM OR UNIX)
  SET(CFG_INIT "")
ENDIF(MAKE_SYSTEM OR UNIX)

SET(PARAVIEW_VTK_WRAP_TCL_EXE 
  "${EXECUTABLE_OUTPUT_PATH}${CFG_INIT}/vtkWrapTcl${EXE_EXT}"
  CACHE INTERNAL "Location of program to do tcl wrapping")
SET(PARAVIEW_VTK_WRAP_TCL_INIT_EXE 
  "${EXECUTABLE_OUTPUT_PATH}${CFG_INIT}/vtkWrapTclInit${EXE_EXT}"
  CACHE INTERNAL "Location of program to do tcl wrapping")
SET(VTK_WRAP_TCL_EXE ${PARAVIEW_VTK_WRAP_TCL_EXE})
SET(VTK_WRAP_TCL_INIT_EXE ${PARAVIEW_VTK_WRAP_TCL_INIT_EXE})
INCLUDE("${VTKTclWrapping_SOURCE_DIR}/vtkWrapTcl.cmake")
VTK_WRAP_TCL3(vtkCommonTCL vtkTCLSources "${VTK_TCL_FILES}" "")

ADD_LIBRARY(vtkCommonTCL ${vtkTCLSources}
  "${ParaView_SOURCE_DIR}/VTK/Common/vtkTclUtil.cxx"
  "${ParaView_SOURCE_DIR}/VTK/Rendering/vtkTkRenderWidget.cxx"
  "${ParaView_SOURCE_DIR}/VTK/Rendering/vtkTkImageViewerWidget.cxx"
  )
TARGET_LINK_LIBRARIES(vtkCommonTCL 
  vtkCommon
  vtkRendering
  ${TCL_LIBRARY}
  ${TK_LIBRARY}
  )

IF(BUILD_SHARED_LIBS)
  INSTALL_TARGETS(/lib vtkCommonTCL)
ENDIF(BUILD_SHARED_LIBS)
