cmake_minimum_required(VERSION 2.6)

set(PROJECT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include)

include_directories("${PROJECT_INCLUDE_DIR}")
include_directories(${CMAKE_CURRENT_SOURCE_DIR})

find_package(ANN REQUIRED)
include_directories(${ANN_INCLUDE_DIR})

find_package(Eigen3 REQUIRED)
include_directories(${EIGEN3_INCLUDE_DIR})

find_package(Boost REQUIRED)
include_directories(${Boost_INCLUDE_DIR})
link_directories(${Boost_LIBRARY_DIRS})
add_definitions(${Boost_DEFINITIONS})


set(sources
  CIsoSurface.cc
  collapseSkel3d.cc
  cuts/CutController.cc
  cuts/CutCreator.cc
  cuts/CutSet.cc
  cuts/EdtFitCutCreator.cc
  cuts/PerpToSkelCutCreator.cc
  cuts/PlaneTraceCutCreator.cc
  cuts/ShortestPathCutCreator.cc
  cuts/TransformLaplacianSmooth.cc
  edt3d.cc
  FeaturePoints.cc
  filters.cc
  Image.cc
  ImportanceVolume.cc
  level_set.cc
  NoiseCreator.cc
  PointSearch.cc
  SaliencyMetricEngine.cc
  SkeletonBuilder.cc
  SkeletonModel.cc
  surface/AStar.cc
  surface/Graph.cc
  surface/PlaneTrace.cc
  utils.cc
  Vectors.cc
  Volume.cc
  SkeletonReconstructor.cc
  ConvexHull.cc
  ima/ImaSkel.cc
  ima/ImaVolume.cc
  ima/ImaImage.cc
)

set(headers
  CIsoSurface.h
  collapseSkel3d.h
  ComponentFinder.h
  coord3.h
  cuts/Cut.h
  cuts/CutController.h
  cuts/CutCreator.h
  cuts/CutSet.h
  cuts/EdtFitCutCreator.h
  cuts/PerpToSkelCutCreator.h
  cuts/PlaneTraceCutCreator.h
  cuts/ShortestPathCutCreator.h
  cuts/Transform.h
  cuts/TransformLaplacianSmooth.h
  edt3d.h
  flat_map.h
  FeaturePoints.h
  filters.h
  Image.h
  ImportanceVolume.h
  inverseFT.h
  level_set.h
  logging.h
  NoiseCreator.h
  Point2d.h
  Point3d.h
  PointSearch.h
  SaliencyMetricEngine.h
  SkeletonModel.h
  surface/AStar.h
  surface/Graph.h
  surface/PlaneTrace.h
  UnionFind.h
  utils.h
  Vector.h
  Vectors.h
  Volume.h
  VolumeHelpers.h
  SkeletonReconstructor.h
  ConvexHull.h
  ima/ImaSkel.h
  ima/ImaVolume.h
  ima/ImaImage.h
)

# Add header files so that QT Creator and visual studio work better
PREPEND(headers_full ${PROJECT_INCLUDE_DIR} ${headers})
#add_custom_target(${PROJECT_NAME} SOURCES ${headers_full} ${sources})


add_library(VOXELSKELETONLIB STATIC
  ${sources}
  ${headers_full}
)

target_link_libraries(VOXELSKELETONLIB
  ${ANN_LIBRARIES}
)
