PROJECT(GenusZeroImageFilter)

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)

FIND_PACKAGE(Slicer3 QUIET NO_DEFAULT_PATH)
IF (Slicer3_FOUND)
  INCLUDE(${Slicer3_USE_FILE})
  slicer3_set_default_install_prefix_for_external_projects()
ELSE (Slicer3_FOUND)

  FIND_PACKAGE(ITK REQUIRED) 
  IF(ITK_FOUND)
    INCLUDE(${ITK_USE_FILE}) 
  ELSE(ITK_FOUND)
    MESSAGE(FATAL_ERROR "ITK not found. Please set ITK_DIR.") 
  ENDIF(ITK_FOUND)

  FIND_PACKAGE(VTK REQUIRED)
  IF (VTK_FOUND)
    INCLUDE (${VTK_USE_FILE})
  ELSE(VTK_FOUND)
    MESSAGE(FATAL_ERROR, "VTK not found. Please set VTK_DIR.")
  ENDIF (VTK_FOUND)

  FIND_PACKAGE(GenerateCLP REQUIRED)
  IF(GenerateCLP_FOUND)
    INCLUDE(${GenerateCLP_USE_FILE})
  ELSE(GenerateCLP_FOUND)
    MESSAGE(FATAL_ERROR, "GenerateCLP not found. Please set GenerateCLP_DIR.")
  ENDIF(GenerateCLP_FOUND)

  FIND_PACKAGE(vtkITK REQUIRED)
  IF(vtkITK_FOUND)
    INCLUDE_DIRECTORIES(${vtkITK_SOURCE_DIR} ${vtkITK_BINARY_DIR})
    LINK_DIRECTORIES(${vtkITK_LIB_DIR})
  ELSE(vtkITK_FOUND)
    MESSAGE(FATAL_ERROR, "vtkITK not found. Please set vtkITK_DIR.")
  ENDIF(vtkITK_FOUND)
ENDIF (Slicer3_FOUND)

SET(GenusZeroImageFilter_SOURCE GenusZeroImageFilter.cxx vtkImageGenus0MarchingCubes.cxx genus0.cxx)
GENERATECLP(GenusZeroImageFilter_SOURCE GenusZeroImageFilter.xml)

ADD_EXECUTABLE(GenusZeroImageFilter GenusZeroImageFilter.cxx vtkImageGenus0MarchingCubes.cxx genus0.cxx)
TARGET_LINK_LIBRARIES(GenusZeroImageFilter vtkITK vtkHybrid vtkCommon ITKCommon ITKAlgorithms ITKBasicFilters ITKIO)

IF (Slicer3_FOUND)
  slicer3_set_plugins_output_path(GenusZeroImageFilter)
  slicer3_install_plugins(GenusZeroImageFilter)
ENDIF (Slicer3_FOUND)

INSTALL(TARGETS
  GenusZeroImageFilter
  BUNDLE DESTINATION  bin
  RUNTIME DESTINATION bin
  LIBRARY DESTINATION lib
  ARCHIVE DESTINATION lib/static
)
