mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-11 00:11:07 -06:00
Tests: Add case for CUDA with C but not C++
An executable using CUDA and C should link as CUDA.
This commit is contained in:
@@ -4,3 +4,4 @@ ADD_TEST_MACRO(Cuda.ConsumeCompileFeatures CudaConsumeCompileFeatures)
|
||||
ADD_TEST_MACRO(Cuda.ObjectLibrary CudaObjectLibrary)
|
||||
ADD_TEST_MACRO(Cuda.ToolkitInclude CudaToolkitInclude)
|
||||
ADD_TEST_MACRO(Cuda.ProperLinkFlags ProperLinkFlags)
|
||||
ADD_TEST_MACRO(Cuda.WithC CudaWithC)
|
||||
|
||||
12
Tests/Cuda/WithC/CMakeLists.txt
Normal file
12
Tests/Cuda/WithC/CMakeLists.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
cmake_minimum_required(VERSION 3.7)
|
||||
project(CudaComplex CUDA C)
|
||||
|
||||
set(CMAKE_CUDA_FLAGS "-gencode arch=compute_30,code=compute_30")
|
||||
|
||||
add_executable(CudaWithC main.c cuda.cu)
|
||||
|
||||
if(APPLE)
|
||||
# We need to add the default path to the driver (libcuda.dylib) as an rpath, so that
|
||||
# the static cuda runtime can find it at runtime.
|
||||
target_link_libraries(CudaWithC PRIVATE -Wl,-rpath,/usr/local/cuda/lib)
|
||||
endif()
|
||||
16
Tests/Cuda/WithC/cuda.cu
Normal file
16
Tests/Cuda/WithC/cuda.cu
Normal file
@@ -0,0 +1,16 @@
|
||||
#include <cuda.h>
|
||||
|
||||
#include <iostream>
|
||||
|
||||
extern "C" int use_cuda(void)
|
||||
{
|
||||
int nDevices = 0;
|
||||
cudaError_t err = cudaGetDeviceCount(&nDevices);
|
||||
if (err != cudaSuccess) {
|
||||
std::cerr << "Failed to retrieve the number of CUDA enabled devices"
|
||||
<< std::endl;
|
||||
return 1;
|
||||
}
|
||||
std::cout << "Found " << nDevices << " CUDA enabled devices" << std::endl;
|
||||
return 0;
|
||||
}
|
||||
6
Tests/Cuda/WithC/main.c
Normal file
6
Tests/Cuda/WithC/main.c
Normal file
@@ -0,0 +1,6 @@
|
||||
extern int use_cuda(void);
|
||||
|
||||
int main()
|
||||
{
|
||||
return use_cuda();
|
||||
}
|
||||
Reference in New Issue
Block a user