cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
project(custom_op)

enable_language(C)
enable_language(CXX)

find_package(PythonInterp REQUIRED)
find_package(Torch REQUIRED)
find_package(CUDA REQUIRED)
set(CMAKE_CXX_STANDARD 14)

list(APPEND CUDA_NVCC_FLAGS "-DCUDA_HAS_FP16=1 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__")
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS})

# Define our library target
cuda_add_library(custom_op SHARED
  custom_ops.cpp
  nms_3d.cu
  nms_3d.h
  overlap_3d.cu
  overlap_3d.h
  ROIAlign_3d_cuda.cu
  ROIAlign_3d.h
  vision.h)

# Enable C++11
target_compile_features(custom_op PRIVATE cxx_range_for)
# Link against LibTorch
target_link_libraries(custom_op "${TORCH_LIBRARIES}")
