set(GPU_SUPPORT "")

if( CUDA_FOUND)
  #   set(CUDA_HOST_COMPILATION_CPP OFF)
  set(CUDA_BUILD_CUBIN ON)
  set(CUDA_BUILD_EMULATION OFF)

  set(CUDA_NVCC_FLAGS -maxrregcount 32 -arch sm_11)
  cuda_add_library( sgemm-sm_11 sgemm.cu)
  set(CUDA_NVCC_FLAGS -maxrregcount 32 -arch sm_13)
  cuda_add_library( sgemm-sm_13 sgemm.cu)
  set(CUDA_NVCC_FLAGS -arch sm_20)
  cuda_add_library( sgemm-sm_20 sgemm_fermi.cu)
  set(GPU_SUPPORT gpu_gemm.c)
endif (CUDA_FOUND)
if(0)
if( PLASMA_FOUND )
  precisions_rules(generated_files "+;${DPLASMA_PRECISIONS}" "testing_zpotrf.c")

  foreach(prec_rules ${DPLASMA_PRECISIONS})
    if( DAGUE_MPI AND MPI_FOUND )
      set(target "mpi_${prec_rules}potrf_rl")
      add_executable(${target} generated/testing_${prec_rules}potrf.c ${GPU_SUPPORT})
      set_target_properties(${target} PROPERTIES LINKER_LANGUAGE Fortran)
      set_target_properties(${target} PROPERTIES COMPILE_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR}/../common ${MPI_COMPILE_FLAGS} -DADD_ -DPRECISION_${prec_rules}")
      set_target_properties(${target} PROPERTIES LINK_FLAGS "${MPI_LINK_FLAGS} ${LOCAL_FORTRAN_LINK_FLAGS}")
      target_link_libraries(${target} dplasma-mpi dplasma_testscommon-mpi dague-mpi dague_distribution_matrix-mpi
        ${MPI_LIBRARIES} ${PLASMA_LIBRARIES} ${BLAS_LIBRARIES} ${EXTRA_LIBS})
      set(target "mpi_${prec_rules}potrf_ll")
      add_executable(${target} generated/testing_${prec_rules}potrf.c ${GPU_SUPPORT})
      set_target_properties(${target} PROPERTIES LINKER_LANGUAGE Fortran)
      set_target_properties(${target} PROPERTIES COMPILE_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR}/../common ${MPI_COMPILE_FLAGS} -DADD_ -DLLT_LL -DPRECISION_${prec_rules}")
      set_target_properties(${target} PROPERTIES LINK_FLAGS "${MPI_LINK_FLAGS} ${LOCAL_FORTRAN_LINK_FLAGS}")
      target_link_libraries(${target} dplasma-mpi dplasma_testscommon-mpi dague-mpi dague_distribution_matrix-mpi
        ${MPI_LIBRARIES} ${PLASMA_LIBRARIES} ${BLAS_LIBRARIES} ${EXTRA_LIBS})
    else()
      set(target "${prec_rules}potrf_rl")
      add_executable(${target} generated/testing_${prec_rules}potrf.c ${GPU_SUPPORT})
      set_target_properties(${target} PROPERTIES LINKER_LANGUAGE Fortran)
      set_target_properties(${target} PROPERTIES COMPILE_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR}/../common -DADD_ -DPRECISION_${prec_rules}")
      set_target_properties(${target} PROPERTIES LINK_FLAGS "${LOCAL_FORTRAN_LINK_FLAGS}")
      target_link_libraries(${target} dplasma dplasma_testscommon dague dague_distribution_matrix
        ${PLASMA_LIBRARIES} ${BLAS_LIBRARIES} ${EXTRA_LIBS})
      set(target "${prec_rules}potrf_ll")
      add_executable(${target} generated/testing_${prec_rules}potrf.c ${GPU_SUPPORT})
      set_target_properties(${target} PROPERTIES LINKER_LANGUAGE Fortran)
      set_target_properties(${target} PROPERTIES COMPILE_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR}/../common -DADD_ -DLLT_LL -DPRECISION_${prec_rules}")
      set_target_properties(${target} PROPERTIES LINK_FLAGS "${LOCAL_FORTRAN_LINK_FLAGS}")
      target_link_libraries(${target} dplasma dplasma_testscommon dague dague_distribution_matrix
        ${PLASMA_LIBRARIES} ${BLAS_LIBRARIES} ${EXTRA_LIBS})
    endif()
  endforeach()
                                                                   
endif( PLASMA_FOUND )
endif()
