############################################# # PROJECT: GeoInterp # ############################################# INCLUDE(${CMAKE_SOURCE_DIR}/IJMacros.txt) PROJECT(GeoInterp) #The following lines are required to use Dart ENABLE_TESTING() INCLUDE(Dart) # We need ITK and VTK SET(Required_Packages ITK VTK FLTK ) # Load all of the packages we need. FOREACH(Package ${Required_Packages}) LOADPACKAGE(${Package}) ENDFOREACH(Package) # ITK Libraries to include SET(PRJ_ITK_LIBS ITKCommon ITKIO ITKBasicFilters ) # VTK libraries to include SET(PRJ_VTK_CORE_LIBS vtkCommon vtkFiltering vtkGraphics vtkImaging vtkIO ) # Can we include patented vtk libs? IF(VTK_USE_PATENTED) SET(PRJ_VTK_LIBS vtkPatented ${PRJ_VTK_CORE_LIBS}) ELSE(VTK_USE_PATENTED) SET(PRJ_VTK_LIBS ${PRJ_VTK_CORE_LIBS}) ENDIF(VTK_USE_PATENTED) # FLTK Related libraries ## Workaround for problem with FindFLTK.cmake when FLTK was built using Cmake. IF(NOT FLTK_LIBRARIES) SET(FLTK_LIBRARIES fltk fltk_images fltk_forms fltk_gl) ENDIF(NOT FLTK_LIBRARIES) # All the libraries used by us SET(Libraries ${PRJ_ITK_LIBS} ${PRJ_VTK_LIBS} ${FLTK_LIBRARIES} ) ############################################# # SOURCE FILE SPECIFICATION # ############################################# # The part of the source code devoted to the SNAP application logic # is organized into a separate library SET(LOGIC_CXX Common/CommandLineArgumentParser.cxx Common/IRISException.cxx Common/Registry.cxx Common/SNAPCommon.cxx Common/SystemInterface.cxx Common/ITKExtras/itkVoxBoCUBImageIO.cxx Common/ITKExtras/itkVoxBoCUBImageIOFactory.cxx Logic/Common/ImageCoordinateGeometry.cxx Logic/Common/ImageCoordinateTransform.cxx Logic/Common/SNAPRegistryIO.cxx Logic/Common/ColorLabelTable.cxx Logic/Common/SNAPSegmentationROISettings.cxx Logic/Framework/GlobalState.cxx Logic/Framework/IRISApplication.cxx Logic/Framework/IRISImageData.cxx Logic/Framework/SNAPImageData.cxx Logic/ImageWrapper/GreyImageWrapper.cxx Logic/ImageWrapper/GuidedImageIO.cxx Logic/ImageWrapper/LabelImageWrapper.cxx Logic/ImageWrapper/LevelSetImageWrapper.cxx Logic/ImageWrapper/SpeedColorMap.cxx Logic/ImageWrapper/SpeedImageWrapper.cxx Logic/LevelSet/SnakeParameters.cxx Logic/Mesh/AllPurposeProgressAccumulator.cxx Logic/Mesh/IRISMeshPipeline.cxx Logic/Mesh/LevelSetMeshPipeline.cxx Logic/Mesh/MeshObject.cxx Logic/Mesh/MeshOptions.cxx Logic/Mesh/VTKMeshPipeline.cxx Logic/Preprocessing/EdgePreprocessingSettings.cxx Logic/Preprocessing/ThresholdSettings.cxx Logic/Slicing/IntensityCurveVTK.cxx ) # The headers for the Logic code SET(LOGIC_HEADERS Common/CommandLineArgumentParser.h Common/Credits.h Common/IRISException.h Common/IRISVectorTypes.h Common/IRISVectorTypesToITKConversion.h Common/IRISVectorTypes.txx Common/Registry.h Common/SNAPCommon.h Common/SNAPOpenGL.h Common/SystemInterface.h Common/ITKExtras/itkVoxBoCUBImageIO.h Common/ITKExtras/itkVoxBoCUBImageIOFactory.h Logic/Common/ColorLabel.h Logic/Common/ColorLabelTable.h Logic/Common/ImageCoordinateGeometry.h Logic/Common/ImageCoordinateTransform.h Logic/Common/ImageRayIntersectionFinder.h Logic/Common/ImageRayIntersectionFinder.txx Logic/Common/SNAPRegistryIO.h Logic/Common/SNAPSegmentationROISettings.h Logic/Framework/GlobalState.h Logic/Framework/IRISApplication.h Logic/Framework/IRISImageData.h Logic/Framework/SNAPImageData.h Logic/ImageWrapper/GreyImageWrapper.h Logic/ImageWrapper/GuidedImageIO.h Logic/ImageWrapper/ImageIORoutines.h Logic/ImageWrapper/ImageWrapper.h Logic/ImageWrapper/ImageWrapper.txx Logic/ImageWrapper/LabelImageWrapper.h Logic/ImageWrapper/LevelSetImageWrapper.h Logic/ImageWrapper/SpeedColorMap.h Logic/ImageWrapper/SpeedImageWrapper.h Logic/LevelSet/LevelSetExtensionFilter.h Logic/LevelSet/SnakeParameters.h Logic/LevelSet/SignedDistanceFilter.h Logic/LevelSet/SignedDistanceFilter.txx Logic/LevelSet/SNAPAdvectionFieldImageFilter.h Logic/LevelSet/SNAPAdvectionFieldImageFilter.txx Logic/LevelSet/SNAPLevelSetDriver.h Logic/LevelSet/SNAPLevelSetDriver.txx Logic/LevelSet/SNAPLevelSetFunction.h Logic/LevelSet/SNAPLevelSetFunction.txx Logic/LevelSet/SNAPLevelSetStopAndGoFilter.h Logic/LevelSet/SNAPLevelSetStopAndGoFilter.txx Logic/Mesh/IRISMeshPipeline.h Logic/Mesh/LevelSetMeshPipeline.h Logic/Mesh/MeshObject.h Logic/Mesh/MeshOptions.h Logic/Mesh/VTKMeshPipeline.h Logic/Preprocessing/EdgePreprocessingImageFilter.h Logic/Preprocessing/EdgePreprocessingImageFilter.txx Logic/Preprocessing/EdgePreprocessingSettings.h Logic/Preprocessing/SmoothBinaryThresholdImageFilter.h Logic/Preprocessing/SmoothBinaryThresholdImageFilter.txx Logic/Preprocessing/ThresholdSettings.h Logic/Slicing/IntensityCurveInterface.h Logic/Slicing/IntensityCurveVTK.h Logic/Slicing/IRISSlicer.h Logic/Slicing/IRISSlicer.txx Logic/Slicing/UnaryFunctorCache.h Logic/Slicing/UnaryFunctorCache.txx ) SET(MY_SOURCE_DIR ${CMAKE_SOURCE_DIR}) # Include directories INCLUDE_DIRECTORIES( ${ITK_DIR}/Utilities/zlib ${MY_SOURCE_DIR}/Common ${MY_SOURCE_DIR}/Common/ITKExtras ${MY_SOURCE_DIR}/Logic ${MY_SOURCE_DIR}/Logic/Common ${MY_SOURCE_DIR}/Logic/Framework ${MY_SOURCE_DIR}/Logic/ImageWrapper ${MY_SOURCE_DIR}/Logic/LevelSet ${MY_SOURCE_DIR}/Logic/Mesh ${MY_SOURCE_DIR}/Logic/Preprocessing ${MY_SOURCE_DIR}/Logic/Slicing ) # Define the Interpolation and testing executables SET(CurrentExe "ImageCompare") ADD_EXECUTABLE(${CurrentExe} ImageCompare.cxx) TARGET_LINK_LIBRARIES(${CurrentExe} ${Libraries}) # The SNAP logic library ADD_LIBRARY(itksnaplogic ${LOGIC_CXX}) TARGET_LINK_LIBRARIES(itksnaplogic ${Libraries}) # The contour interpolation program SET(CurrentExe "GeoInterp") ADD_EXECUTABLE(${CurrentExe} GeoInterp.cxx) TARGET_LINK_LIBRARIES(${CurrentExe} ${Libraries} itksnaplogic ) # Define the tests (as specified in the submission template) # FIXME ADD_TEST(CreateImage GeoInterp --parameters ${CMAKE_SOURCE_DIR}/TestData/automate.txt --greyImage ${CMAKE_SOURCE_DIR}/TestData/input.pim) ADD_TEST(CompareImage ImageCompare ${CMAKE_SOURCE_DIR}/TestData/correctResult.mhd ${CMAKE_SOURCE_DIR}/TestData/input.pim.out.mhd)