# Copyright 2019-2020 CERN and copyright holders of ALICE O2.
# See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
# All rights not expressly granted are reserved.
#
# This software is distributed under the terms of the GNU General Public
# License v3 (GPL Version 3), copied verbatim in the file "COPYING".
#
# In applying this license CERN does not waive the privileges and immunities
# granted to it by virtue of its status as an Intergovernmental Organization
# or submit itself to any jurisdiction.

if(HIP_ENABLED)
  message(STATUS "Building ITS HIP tracker")
  set(CMAKE_HIP_FLAGS "${CMAKE_HIP_FLAGS} -fgpu-rdc")
  # set(CMAKE_HIP_FLAGS "${CMAKE_HIP_FLAGS} -O0 -g -ggdb -fno-inline -fno-omit-frame-pointer -D__HIP_ENABLE_DEVICE_ASSERT__")
  # add_compile_definitions(ITS_MEASURE_GPU_TIME)
  # add_compile_definitions(ITS_GPU_LOG)
  o2_add_hipified_library(ITStrackingHIP
                 SOURCES ../cuda/TimeFrameGPU.cu
                         ../cuda/TrackerTraitsGPU.cxx
                         ../cuda/TrackingKernels.cu
                 PUBLIC_INCLUDE_DIRECTORIES ../
                 PUBLIC_LINK_LIBRARIES O2::ITStracking
                                       O2::GPUTracking
                                       O2::SimulationDataFormat
                                       O2::ReconstructionDataFormats
                                       hip::host
                 PRIVATE_LINK_LIBRARIES O2::GPUTrackingHIPExternalProvider
                 TARGETVARNAME targetName)
  set_target_gpu_arch("HIP" ${targetName})
  if(GPUCA_DETERMINISTIC_MODE GREATER_EQUAL ${GPUCA_DETERMINISTIC_MODE_MAP_GPU})
    target_compile_definitions(${targetName} PRIVATE GPUCA_DETERMINISTIC_MODE)
  endif()
endif()
