project(external-faces-benchmark)

cmake_minimum_required(VERSION 3.3)

find_package(VTKm REQUIRED
  OPTIONAL_COMPONENTS TBB CUDA
  )

set(headers
  ExternalFacesHashFightFnv1a.h
  ExternalFacesHashFightIdXor.h
  ExternalFacesHashFightMorton.h
  ExternalFacesSortFnv1a.h
  ExternalFacesSortId3.h
  ExternalFacesSortIdXor.h
  ExternalFacesSortMorton.h
  MortonCodes.h
  YamlWriter.h
  )

if (VTKm_CUDA_FOUND)
  set(headers ${headers} external-faces-benchmark.cxx)
  cuda_include_directories(${VTKm_INCLUDE_DIRS})
  cuda_add_executable(${PROJECT_NAME} external-faces-benchmark.cu ${headers})
else()
  add_executable(${PROJECT_NAME} external-faces-benchmark.cxx ${headers})
endif()

target_link_libraries(${PROJECT_NAME} PUBLIC vtkm_cont)

set_source_files_properties(${headers}
  PROPERTIES HEADER_FILE_ONLY TRUE
  )
