set(PSB_cuda_source_files
  psb_base_vectordev_mod.F90
  psb_cuda_mod.F90
  c_cusparse_mod.F90
  psb_d_cuda_csrg_mat_mod.F90
  #psb_i_cuda_dnsg_mat_mod.F90
  psb_z_cuda_diag_mat_mod.F90
  psb_i_vectordev_mod.F90
  psb_z_cuda_csrg_mat_mod.F90
  cusparse_mod.F90
  #impl/psb_z_cuda_hdiag_csmv.F90
  impl/psb_c_cuda_hybg_csmm.F90
  impl/psb_c_cuda_csrg_vect_mv.F90
  #  impl/psb_c_cuda_elg_trim.f90
  impl/psb_s_cuda_mv_elg_from_fmt.F90
  impl/psb_c_cuda_csrg_inner_vect_sv.F90
  impl/psb_c_cuda_cp_hlg_from_coo.F90
  impl/psb_c_cuda_diag_to_gpu.F90
  impl/psb_c_cuda_elg_csput.F90
  impl/psb_z_cuda_cp_csrg_from_coo.F90
  impl/psb_s_cuda_cp_elg_from_fmt.F90
  impl/psb_d_cuda_elg_csmm.F90
  impl/psb_c_cuda_diag_vect_mv.F90
  impl/psb_s_cuda_hdiag_mold.F90
  impl/psb_c_cuda_mv_hlg_from_coo.F90
  impl/psb_c_cuda_hdiag_mold.F90
  impl/psb_c_cuda_hybg_scal.F90
  impl/psb_s_cuda_elg_scal.F90
  impl/psb_c_cuda_mv_csrg_from_fmt.F90
  impl/psb_z_cuda_mv_hlg_from_fmt.F90
  #impl/psb_d_cuda_elg_trim.f90
  impl/psb_c_cuda_hybg_inner_vect_sv.F90
  impl/psb_c_cuda_cp_elg_from_fmt.F90
  impl/psb_s_cuda_hybg_vect_mv.F90
  impl/psb_s_cuda_cp_elg_from_coo.F90
  impl/psb_c_cuda_hlg_vect_mv.F90
  impl/psb_d_cuda_mv_hybg_from_coo.F90
  impl/psb_d_cuda_elg_asb.f90
  impl/psb_d_cuda_csrg_scals.F90
  impl/psb_s_cuda_csrg_vect_mv.F90
  impl/psb_d_cuda_elg_csmv.F90
  impl/psb_c_cuda_hlg_scal.F90
  impl/psb_s_cuda_hlg_csmm.F90
  impl/psb_d_cuda_csrg_csmm.F90
  impl/psb_z_cuda_cp_hybg_from_fmt.F90
  impl/psb_z_cuda_elg_to_gpu.F90
  impl/psb_s_cuda_elg_mold.F90
  impl/psb_s_cuda_elg_allocate_mnnz.F90
  impl/psb_d_cuda_diag_vect_mv.F90
  impl/psb_z_cuda_hybg_csmm.F90
  impl/psb_s_cuda_hybg_allocate_mnnz.F90
  impl/psb_d_cuda_hlg_scal.F90
  impl/psb_c_cuda_csrg_csmv.F90
  impl/psb_d_cuda_cp_hybg_from_fmt.F90
  impl/psb_d_cuda_csrg_from_gpu.F90
  impl/psb_z_cuda_csrg_vect_mv.F90
  impl/psb_s_cuda_elg_inner_vect_sv.F90
  impl/psb_s_cuda_mv_csrg_from_fmt.F90
  impl/psb_s_cuda_mv_hybg_from_coo.F90
  impl/psb_d_cuda_dnsg_mat_impl.F90
  impl/psb_z_cuda_elg_scal.F90
  impl/psb_c_cuda_dnsg_mat_impl.F90
  impl/psb_c_cuda_csrg_scal.F90
  impl/psb_z_cuda_diag_csmv.F90
  impl/psb_c_cuda_mv_elg_from_coo.F90
  impl/psb_s_cuda_elg_asb.f90
  impl/psb_s_cuda_cp_hlg_from_coo.F90
  impl/psb_s_cuda_hybg_csmv.F90
  #impl/psb_z_cuda_elg_trim.f90
  impl/psb_z_cuda_csrg_inner_vect_sv.F90
  impl/psb_s_cuda_hybg_to_gpu.F90
  impl/psb_s_cuda_hybg_mold.F90
  impl/psb_z_cuda_elg_inner_vect_sv.F90
  impl/psb_c_cuda_csrg_scals.F90
  impl/psb_d_cuda_hlg_reallocate_nz.F90
  impl/psb_z_cuda_hybg_allocate_mnnz.F90
  impl/psb_s_cuda_csrg_csmm.F90
  impl/psb_s_cuda_hlg_scals.F90
  impl/psb_z_cuda_hybg_csmv.F90
  impl/psb_c_cuda_cp_hdiag_from_coo.F90
  impl/psb_s_cuda_diag_csmv.F90
  impl/psb_z_cuda_hlg_scals.F90
  impl/psb_z_cuda_hlg_scal.F90
  impl/psb_c_cuda_csrg_to_gpu.F90
  impl/psb_d_cuda_hybg_scal.F90
  impl/psb_c_cuda_mv_elg_from_fmt.F90
  impl/psb_d_cuda_cp_csrg_from_fmt.F90
  impl/psb_d_cuda_cp_elg_from_fmt.F90
  impl/psb_z_cuda_mv_diag_from_coo.F90
  impl/psb_c_cuda_elg_asb.f90
  impl/psb_d_cuda_csrg_vect_mv.F90
  impl/psb_d_cuda_hybg_reallocate_nz.F90
  #impl/psb_z_cuda_hdiag_vect_mv.F90
  impl/psb_z_cuda_hybg_to_gpu.F90
  impl/psb_d_cuda_mv_hdiag_from_coo.F90
  impl/psb_c_cuda_cp_elg_from_coo.F90
  #impl/psb_c_cuda_hdiag_to_gpu.F90
  impl/psb_c_cuda_hlg_inner_vect_sv.F90
  impl/psb_z_cuda_diag_to_gpu.F90
  impl/psb_c_cuda_elg_to_gpu.F90
  impl/psb_c_cuda_hlg_scals.F90
  impl/psb_d_cuda_csrg_inner_vect_sv.F90
  impl/psb_c_cuda_cp_csrg_from_fmt.F90
  impl/psb_z_cuda_diag_vect_mv.F90
  impl/psb_z_cuda_cp_elg_from_coo.F90
  impl/psb_z_cuda_mv_csrg_from_fmt.F90
  impl/psb_d_cuda_mv_diag_from_coo.F90
  impl/psb_d_cuda_hybg_allocate_mnnz.F90
  impl/psb_c_cuda_hybg_vect_mv.F90
  impl/psb_s_cuda_mv_hlg_from_fmt.F90
  impl/psb_c_cuda_mv_diag_from_coo.F90
  impl/psb_s_cuda_hlg_mold.F90
  impl/psb_d_cuda_cp_elg_from_coo.F90
  impl/psb_d_cuda_elg_scals.F90
  impl/psb_d_cuda_csrg_scal.F90
  impl/psb_d_cuda_hlg_csmv.F90
  impl/psb_d_cuda_hdiag_mold.F90
  impl/psb_z_cuda_hdiag_mold.F90
  impl/psb_c_cuda_csrg_csmm.F90
  impl/psb_s_cuda_hlg_csmv.F90
  impl/psb_d_cuda_elg_csput.F90
  impl/psb_d_cuda_hdiag_csmv.F90
  impl/psb_z_cuda_hybg_inner_vect_sv.F90
  impl/psb_s_cuda_csrg_scal.F90
  impl/psb_c_cuda_elg_scals.F90
  impl/psb_d_cuda_csrg_mold.F90
  impl/psb_z_cuda_csrg_mold.F90
  impl/psb_s_cuda_cp_csrg_from_coo.F90
  impl/psb_c_cuda_hybg_scals.F90
  impl/psb_s_cuda_hdiag_vect_mv.F90
  impl/psb_s_cuda_hlg_vect_mv.F90
  impl/psb_z_cuda_cp_hdiag_from_coo.F90
  impl/psb_c_cuda_elg_inner_vect_sv.F90
  impl/psb_c_cuda_elg_allocate_mnnz.F90
  impl/psb_s_cuda_csrg_mold.F90
  impl/psb_c_cuda_mv_hybg_from_coo.F90
  impl/psb_d_cuda_mv_hybg_from_fmt.F90
  impl/psb_c_cuda_hybg_csmv.F90
  impl/psb_z_cuda_hybg_vect_mv.F90
  impl/psb_c_cuda_cp_csrg_from_coo.F90
  impl/psb_z_cuda_elg_mold.F90
  impl/psb_z_cuda_cp_hybg_from_coo.F90
  impl/psb_z_cuda_cp_elg_from_fmt.F90
  impl/psb_s_cuda_hybg_csmm.F90
  impl/psb_z_cuda_elg_asb.f90
  impl/psb_z_cuda_mv_csrg_from_coo.F90
  impl/psb_d_cuda_hlg_from_gpu.F90
  impl/psb_c_cuda_hlg_csmv.F90
  impl/psb_z_cuda_dnsg_mat_impl.F90
  impl/psb_c_cuda_cp_hybg_from_coo.F90
  impl/psb_z_cuda_cp_hlg_from_fmt.F90
  impl/psb_s_cuda_elg_csmm.F90
  impl/psb_c_cuda_csrg_from_gpu.F90
  impl/psb_d_cuda_diag_to_gpu.F90
  impl/psb_d_cuda_mv_elg_from_coo.F90
  impl/psb_d_cuda_elg_from_gpu.F90
  impl/psb_z_cuda_elg_allocate_mnnz.F90
  impl/psb_d_cuda_cp_hdiag_from_coo.F90
  impl/psb_z_cuda_hlg_csmv.F90
  impl/psb_d_cuda_elg_mold.F90
  impl/psb_z_cuda_mv_hdiag_from_coo.F90
  impl/psb_s_cuda_hlg_inner_vect_sv.F90
  impl/psb_c_cuda_cp_hlg_from_fmt.F90
  impl/psb_s_cuda_mv_hybg_from_fmt.F90
  impl/psb_c_cuda_mv_hlg_from_fmt.F90
  impl/psb_z_cuda_mv_hlg_from_coo.F90
  impl/psb_z_cuda_elg_scals.F90
  impl/psb_d_cuda_hybg_vect_mv.F90
  impl/psb_z_cuda_hlg_reallocate_nz.F90
  impl/psb_z_cuda_csrg_csmm.F90
  impl/psb_z_cuda_csrg_to_gpu.F90
  impl/psb_s_cuda_elg_from_gpu.F90
  impl/psb_d_cuda_hybg_csmm.F90
  impl/psb_s_cuda_mv_csrg_from_coo.F90
  impl/psb_d_cuda_hybg_csmv.F90
  impl/psb_s_cuda_csrg_inner_vect_sv.F90
  impl/psb_d_cuda_hlg_vect_mv.F90
  impl/psb_z_cuda_csrg_allocate_mnnz.F90
  impl/psb_s_cuda_hlg_reallocate_nz.F90
  impl/psb_s_cuda_elg_reallocate_nz.F90
  impl/psb_d_cuda_hlg_allocate_mnnz.F90
  impl/psb_d_cuda_elg_scal.F90
  impl/psb_z_cuda_hlg_allocate_mnnz.F90
  impl/psb_z_cuda_hlg_to_gpu.F90
  impl/psb_z_cuda_elg_csmm.F90
  impl/psb_d_cuda_hlg_inner_vect_sv.F90
  impl/psb_z_cuda_diag_mold.F90
  impl/psb_s_cuda_diag_mold.F90
  impl/psb_c_cuda_hybg_to_gpu.F90
  impl/psb_c_cuda_cp_diag_from_coo.F90
  impl/psb_d_cuda_cp_diag_from_coo.F90
  impl/psb_s_cuda_cp_hybg_from_fmt.F90
  impl/psb_s_cuda_elg_csmv.F90
  impl/psb_d_cuda_hlg_to_gpu.F90
  impl/psb_s_cuda_mv_diag_from_coo.F90
  impl/psb_c_cuda_hybg_mold.F90
  impl/psb_s_cuda_hlg_from_gpu.F90
  #impl/psb_c_cuda_hdiag_csmv.F90
  impl/psb_z_cuda_cp_hlg_from_coo.F90
  impl/psb_c_cuda_hlg_csmm.F90
  impl/psb_d_cuda_hlg_csmm.F90
  impl/psb_z_cuda_hlg_vect_mv.F90
  impl/psb_z_cuda_cp_csrg_from_fmt.F90
  impl/psb_s_cuda_csrg_scals.F90
  impl/psb_c_cuda_hlg_reallocate_nz.F90
  impl/psb_c_cuda_mv_hdiag_from_coo.F90
  impl/psb_s_cuda_elg_csput.F90
  impl/psb_d_cuda_csrg_to_gpu.F90
  impl/psb_d_cuda_mv_elg_from_fmt.F90
  impl/psb_s_cuda_cp_csrg_from_fmt.F90
  impl/psb_d_cuda_hybg_inner_vect_sv.F90
  impl/psb_d_cuda_hlg_mold.F90
  impl/psb_s_cuda_csrg_reallocate_nz.F90
  impl/psb_z_cuda_csrg_csmv.F90
  impl/psb_s_cuda_mv_hlg_from_coo.F90
  impl/psb_s_cuda_hdiag_csmv.F90
  impl/psb_c_cuda_hlg_mold.F90
  impl/psb_z_cuda_hlg_from_gpu.F90
  impl/psb_s_cuda_cp_diag_from_coo.F90
  impl/psb_d_cuda_hlg_scals.F90
  impl/psb_c_cuda_mv_csrg_from_coo.F90
  impl/psb_s_cuda_cp_hybg_from_coo.F90
  impl/psb_s_cuda_hybg_scals.F90
  impl/psb_d_cuda_cp_hybg_from_coo.F90
  impl/psb_c_cuda_csrg_mold.F90
  impl/psb_d_cuda_elg_vect_mv.F90
  impl/psb_d_cuda_elg_allocate_mnnz.F90
  impl/psb_s_cuda_csrg_to_gpu.F90
  impl/psb_d_cuda_hybg_to_gpu.F90
  impl/psb_z_cuda_cp_diag_from_coo.F90
  impl/psb_d_cuda_mv_hlg_from_coo.F90
  impl/psb_c_cuda_diag_mold.F90
  impl/psb_d_cuda_mv_csrg_from_coo.F90
  impl/psb_d_cuda_hybg_scals.F90
  impl/psb_c_cuda_elg_mold.F90
  impl/psb_z_cuda_hlg_mold.F90
  impl/psb_c_cuda_elg_scal.F90
  impl/psb_d_cuda_csrg_reallocate_nz.F90
  impl/psb_z_cuda_elg_csput.F90
  impl/psb_d_cuda_hdiag_to_gpu.F90
  impl/psb_d_cuda_cp_hlg_from_fmt.F90
  impl/psb_z_cuda_mv_hybg_from_coo.F90
  impl/psb_z_cuda_hlg_csmm.F90
  impl/psb_z_cuda_mv_elg_from_fmt.F90
  impl/psb_d_cuda_diag_mold.F90
  impl/psb_c_cuda_elg_csmv.F90
  impl/psb_d_cuda_mv_csrg_from_fmt.F90
  impl/psb_c_cuda_hlg_from_gpu.F90
  impl/psb_c_cuda_hlg_allocate_mnnz.F90
  impl/psb_z_cuda_csrg_reallocate_nz.F90
  impl/psb_c_cuda_hlg_to_gpu.F90
  impl/psb_c_cuda_csrg_allocate_mnnz.F90
  #impl/psb_s_cuda_elg_trim.f90
  impl/psb_c_cuda_elg_reallocate_nz.F90
  impl/psb_d_cuda_csrg_csmv.F90
  impl/psb_z_cuda_csrg_scals.F90
  impl/psb_s_cuda_elg_vect_mv.F90
  impl/psb_z_cuda_csrg_from_gpu.F90
  impl/psb_c_cuda_elg_from_gpu.F90
  impl/psb_c_cuda_diag_csmv.F90
  impl/psb_z_cuda_hybg_reallocate_nz.F90
  impl/psb_z_cuda_hlg_inner_vect_sv.F90
  impl/psb_s_cuda_elg_scals.F90
  impl/psb_s_cuda_hybg_inner_vect_sv.F90
  impl/psb_s_cuda_dnsg_mat_impl.F90
  impl/psb_d_cuda_csrg_allocate_mnnz.F90
  impl/psb_z_cuda_elg_vect_mv.F90
  impl/psb_d_cuda_elg_reallocate_nz.F90
  impl/psb_c_cuda_hybg_reallocate_nz.F90
  impl/psb_d_cuda_mv_hlg_from_fmt.F90
  impl/psb_d_cuda_cp_hlg_from_coo.F90
  impl/psb_s_cuda_hlg_scal.F90
  impl/psb_s_cuda_hlg_to_gpu.F90
  impl/psb_d_cuda_hybg_mold.F90
  impl/psb_s_cuda_hybg_scal.F90
#  impl/psb_c_cuda_hdiag_vect_mv.F90
  impl/psb_z_cuda_elg_from_gpu.F90
  impl/psb_c_cuda_mv_hybg_from_fmt.F90
  impl/psb_s_cuda_elg_to_gpu.F90
  impl/psb_s_cuda_mv_hdiag_from_coo.F90
  impl/psb_d_cuda_cp_csrg_from_coo.F90
  impl/psb_d_cuda_diag_csmv.F90
  impl/psb_z_cuda_mv_elg_from_coo.F90
  impl/psb_c_cuda_cp_hybg_from_fmt.F90
  impl/psb_s_cuda_csrg_allocate_mnnz.F90
  impl/psb_c_cuda_elg_csmm.F90
  impl/psb_s_cuda_mv_elg_from_coo.F90
  impl/psb_z_cuda_elg_reallocate_nz.F90
  impl/psb_s_cuda_hybg_reallocate_nz.F90
  impl/psb_s_cuda_diag_vect_mv.F90
  impl/psb_s_cuda_diag_to_gpu.F90
  impl/psb_z_cuda_hybg_mold.F90
  impl/psb_s_cuda_csrg_csmv.F90
  impl/psb_z_cuda_hybg_scals.F90
  impl/psb_s_cuda_csrg_from_gpu.F90
  impl/psb_z_cuda_elg_csmv.F90
  impl/psb_s_cuda_hdiag_to_gpu.F90
  impl/psb_s_cuda_hlg_allocate_mnnz.F90
#  impl/psb_z_cuda_hdiag_to_gpu.F90
  impl/psb_s_cuda_cp_hdiag_from_coo.F90
  impl/psb_z_cuda_csrg_scal.F90
  impl/psb_c_cuda_elg_vect_mv.F90
  impl/psb_c_cuda_hybg_allocate_mnnz.F90
  impl/psb_s_cuda_cp_hlg_from_fmt.F90
  impl/psb_d_cuda_elg_inner_vect_sv.F90
  impl/psb_c_cuda_csrg_reallocate_nz.F90
  impl/psb_d_cuda_elg_to_gpu.F90
  impl/psb_z_cuda_mv_hybg_from_fmt.F90
  impl/psb_d_cuda_hdiag_vect_mv.F90
  impl/psb_z_cuda_hybg_scal.F90
  psb_d_cuda_elg_mat_mod.F90
  psb_d_cuda_hlg_mat_mod.F90
  hdiagdev_mod.F90
  #psb_s_cuda_hybg_mat_mod.F90
  #psb_d_cuda_hybg_mat_mod.F90
  dnsdev_mod.F90
  psb_c_cuda_hlg_mat_mod.F90
  psb_i_cuda_vect_mod.F90
  z_cusparse_mod.F90
  psb_s_cuda_hdiag_mat_mod.F90
  psb_d_cuda_hdiag_mat_mod.F90
  psb_z_cuda_hdiag_mat_mod.F90
  psb_z_cuda_vect_mod.F90
  #psb_z_cuda_hybg_mat_mod.F90
  psb_c_cuda_elg_mat_mod.F90
  psb_c_cuda_dnsg_mat_mod.F90
  elldev_mod.F90
  psb_c_cuda_diag_mat_mod.F90
  psb_z_cuda_elg_mat_mod.F90
  #psb_i_cuda_diag_mat_mod.F90
  #psb_i_cuda_hdiag_mat_mod.F90
  psb_c_cuda_vect_mod.F90
  psb_d_cuda_dnsg_mat_mod.F90
  psb_s_cuda_dnsg_mat_mod.F90
  psb_s_cuda_vect_mod.F90
  hlldev_mod.F90
  psb_z_cuda_dnsg_mat_mod.F90
  #psb_i_cuda_csrg_mat_mod.F90
  psb_z_cuda_hlg_mat_mod.F90
  psb_c_vectordev_mod.F90
  psb_s_cuda_diag_mat_mod.F90
  psb_s_cuda_elg_mat_mod.F90
  psb_s_cuda_hlg_mat_mod.F90
  core_mod.f90
  psb_d_cuda_diag_mat_mod.F90
  #psb_i_cuda_hybg_mat_mod.F90
  psb_z_vectordev_mod.F90
  #psb_i_cuda_hlg_mat_mod.F90
  psb_d_cuda_vect_mod.F90
  psb_cuda_env_mod.F90
  psb_c_cuda_hdiag_mat_mod.F90
  psb_s_vectordev_mod.F90
  base_cusparse_mod.F90
  #psb_i_cuda_elg_mat_mod.F90
  psb_vectordev_mod.f90
  #psb_c_cuda_hybg_mat_mod.F90
  s_cusparse_mod.F90
  d_cusparse_mod.F90
  diagdev_mod.F90
  psb_d_vectordev_mod.F90
  psb_c_cuda_csrg_mat_mod.F90
  psb_s_cuda_csrg_mat_mod.F90
)


list(APPEND PSB_cuda_source_C_files
  zvectordev.c
  ivectordev.c
  hdiagdev.c
  scusparse.c
  ccusparse.c
  vectordev.c
  diagdev.c
  dnsdev.c
  hlldev.c
  svectordev.c
  dvectordev.c
  fcusparse.c
  spgpu/hell.c
  spgpu/ell.c
  spgpu/dia.c
  spgpu/core.c
  zcusparse.c
  cuda_util.c
  elldev.c
  cvectordev.c
  dcusparse.c

 )

list(APPEND PSB_cuda_header_C_files
  diagdev.h
  fcusparse_fct.h
  zcusparse.h
  ccusparse.h
  cintrf.h
  vectordev.h
  dnsdev.h
  zvectordev.h
  ivectordev.h
  elldev.h
  fcusparse.h
  cuda_util.h
  cvectordev.h
  dcusparse.h
  fcusparse_dat.h
  hlldev.h
  spgpu/kernels/cudadebug.h
  spgpu/kernels/cudalang.h
  spgpu/debug.h
  spgpu/ell.h
  spgpu/coo_conv.h
  spgpu/ell_conv.h
  spgpu/hdia_conv.h
  spgpu/hdia.h
  spgpu/core.h
  spgpu/vector.h
  spgpu/dia.h
  spgpu/hell.h
  spgpu/dia_conv.h
  spgpu/hell_conv.h
  svectordev.h
  hdiagdev.h
  dvectordev.h
  scusparse.h
)

list(APPEND PSB_cuda_header_cu_files
  CUDA/psi_cuda_CopyCooToElg.cuh
  CUDA/psi_cuda_common.cuh
  CUDA/psi_cuda_CopyCooToHlg.cuh
  spgpu/kernels/mathbase.cuh
  spgpu/kernels/dia_spmv_base.cuh
  spgpu/kernels/asum_base.cuh
  spgpu/kernels/hdia_spmv_base.cuh
  spgpu/kernels/hdia_spmv_base_template.cuh
  spgpu/kernels/scal_base.cuh
  spgpu/kernels/gath_base.cuh
  spgpu/kernels/ell_spmv_base_template.cuh
  spgpu/kernels/ell_spmv_base.cuh
  spgpu/kernels/setscal_base.cuh
  spgpu/kernels/amax_base.cuh
  spgpu/kernels/abs_base.cuh
  spgpu/kernels/hell_spmv_base.cuh
  spgpu/kernels/dia_spmv_base_template.cuh
  spgpu/kernels/axy_base.cuh
  spgpu/kernels/ell_csput_base.cuh
  spgpu/kernels/scat_base.cuh
  spgpu/kernels/ell_spmv_base_nors.cuh
  spgpu/kernels/hell_spmv_base_template.cuh
)

list(APPEND PSB_cuda_source_cu_files
  CUDA/psi_cuda_c_CopyCooToElg.cu
  CUDA/psi_cuda_d_CopyCooToElg.cu
  CUDA/psi_cuda_c_CopyCooToHlg.cu
  CUDA/psi_cuda_s_CopyCooToHlg.cu
  CUDA/psi_cuda_s_CopyCooToElg.cu
  CUDA/psi_cuda_d_CopyCooToHlg.cu
  CUDA/psi_cuda_z_CopyCooToHlg.cu
  CUDA/psi_cuda_z_CopyCooToElg.cu
  spgpu/kernels/ddot.cu
  spgpu/kernels/zscat.cu
  spgpu/kernels/ell_cspmv.cu
  spgpu/kernels/ssetscal.cu
  spgpu/kernels/sasum.cu
  spgpu/kernels/dupd_xyz.cu
  spgpu/kernels/caxy.cu
  spgpu/kernels/cscal.cu
  spgpu/kernels/sscal.cu
  spgpu/kernels/hell_sspmv.cu
  spgpu/kernels/dscat.cu
  spgpu/kernels/hell_cspmv.cu
  spgpu/kernels/cxyzw.cu
  spgpu/kernels/casum.cu
  spgpu/kernels/zabs.cu
  spgpu/kernels/ell_zspmv.cu
  spgpu/kernels/ell_zcsput.cu
  spgpu/kernels/hdia_cspmv.cu
  spgpu/kernels/zxyzw.cu
  spgpu/kernels/dnrm2.cu
  spgpu/kernels/cabs.cu
  spgpu/kernels/cnrm2.cu
  spgpu/kernels/csetscal.cu
  spgpu/kernels/cscat.cu
  spgpu/kernels/zdot.cu
  spgpu/kernels/ell_ccsput.cu
  spgpu/kernels/zaxpby.cu
  spgpu/kernels/zsetscal.cu
  spgpu/kernels/sdot.cu
  spgpu/kernels/zgath.cu
  spgpu/kernels/saxy.cu
  spgpu/kernels/dscal.cu
  spgpu/kernels/cgath.cu
  spgpu/kernels/hdia_dspmv.cu
  spgpu/kernels/camax.cu
  spgpu/kernels/dabs.cu
  spgpu/kernels/dasum.cu
  spgpu/kernels/sgath.cu
  spgpu/kernels/znrm2.cu
  spgpu/kernels/igath.cu
  spgpu/kernels/hell_zspmv.cu
  spgpu/kernels/hell_dspmv.cu
  spgpu/kernels/damax.cu
  spgpu/kernels/dsetscal.cu
  spgpu/kernels/dxyzw.cu
  spgpu/kernels/zaxy.cu
  spgpu/kernels/dgath.cu
  spgpu/kernels/iscat.cu
  spgpu/kernels/supd_xyz.cu
  spgpu/kernels/sxyzw.cu
  spgpu/kernels/ell_dcsput.cu
  spgpu/kernels/dia_cspmv.cu
  spgpu/kernels/ell_scsput.cu
  spgpu/kernels/caxpby.cu
  spgpu/kernels/zupd_xyz.cu
  spgpu/kernels/isetscal.cu
  spgpu/kernels/hdia_sspmv.cu
  spgpu/kernels/daxy.cu
  spgpu/kernels/zscal.cu
  spgpu/kernels/ell_sspmv.cu
  spgpu/kernels/sabs.cu
  spgpu/kernels/hdia_zspmv.cu
  spgpu/kernels/saxpby.cu
  spgpu/kernels/zamax.cu
  spgpu/kernels/dia_sspmv.cu
  spgpu/kernels/zasum.cu
  spgpu/kernels/dia_zspmv.cu
  spgpu/kernels/ell_dspmv.cu
  spgpu/kernels/snrm2.cu
  spgpu/kernels/sscat.cu
  spgpu/kernels/cdot.cu
  spgpu/kernels/samax.cu
  spgpu/kernels/cupd_xyz.cu
  spgpu/kernels/dia_dspmv.cu
  spgpu/kernels/daxpby.cu
)


foreach(file IN LISTS PSB_cuda_source_files)
  list(APPEND cuda_source_files ${CMAKE_CURRENT_LIST_DIR}/${file})
endforeach()

foreach(file IN LISTS PSB_cuda_source_C_files)
  list(APPEND cuda_source_C_files ${CMAKE_CURRENT_LIST_DIR}/${file})
endforeach()

foreach(file IN LISTS PSB_cuda_header_C_files)
  list(APPEND cuda_header_C_files ${CMAKE_CURRENT_LIST_DIR}/${file})
endforeach()

foreach(file IN LISTS PSB_cuda_source_cu_files)
  list(APPEND cuda_source_cu_files ${CMAKE_CURRENT_LIST_DIR}/${file})
endforeach()

foreach(file IN LISTS PSB_cuda_header_cu_files)
  list(APPEND cuda_header_cu_files ${CMAKE_CURRENT_LIST_DIR}/${file})
endforeach()
