1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
SET(BUILD_SHARED_LIBS ON)
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
SET(CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE ON)
SET(CUDA_GENERATED_OUTPUT_DIR ${CMAKE_SOURCE_DIR}/build)
#SET(CUDA_GENERATED_OUTPUT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/build)
ADD_DEFINITIONS(
${PYHST_DEFINITIONS}
)
CUDA_INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}
)
INCLUDE_DIRECTORIES(
${CUDA_CUT_INCLUDE_DIR}
${PYHST_INCLUDE_DIRS}
)
SET(HEADERS
dfi_cuda.h
)
SET(dfi_cuda_SRCS
dfi_cuda.cu
dfi_cuda_sinc_kernels.h
${HEADERS}
)
if (IGNORE_OLD_HARDWARE)
if (CUDA_VERSION_MAJOR GREATER 3)
if (ENABLE_KEPLER_INSTRUCTIONS)
CUDA_COMPILE_PTX(ptx ${dfi_cuda_SRCS} OPTIONS -arch sm_30 --ptxas-options=-v)
CUDA_ADD_LIBRARY(dfi_cuda ${dfi_cuda_SRCS} OPTIONS -arch sm_30 --ptxas-options=-v)
else (ENABLE_KEPLER_INSTRUCTIONS)
CUDA_ADD_LIBRARY(dfi_cuda ${dfi_cuda_SRCS} OPTIONS -arch sm_21 --ptxas-options=-v)
endif (ENABLE_KEPLER_INSTRUCTIONS)
elseif (CUDA_VERSION_MAJOR GREATER 2 AND CUDA_VERSION_MINOR GREATER 1)
CUDA_ADD_LIBRARY(dfi_cuda ${dfi_cuda_SRCS} OPTIONS -arch compute_20 --ptxas-options=-v )
else ()
CUDA_ADD_LIBRARY(dfi_cuda ${dfi_cuda_SRCS} OPTIONS --ptxas-options=-v )
endif()
else (IGNORE_OLD_HARDWARE)
CUDA_ADD_LIBRARY(dfi_cuda ${dfi_cuda_SRCS} OPTIONS --ptxas-options=-v )
endif (IGNORE_OLD_HARDWARE)
CUDA_ADD_CUFFT_TO_TARGET(dfi_cuda)
if (CUDA_VERSION_MAJOR GREATER 3)
CUDA_ADD_NPP_TO_TARGET(dfi_cuda)
endif (CUDA_VERSION_MAJOR GREATER 3)
TARGET_LINK_LIBRARIES(dfi_cuda ${PYHST_LIBRARIES})
# Add a special target to clean nvcc generated files.
#CUDA_BUILD_CLEAN_TARGET()
# clean extra files
#FILE(GLOB EXTRA_BUILD_FILES "dfi_cuda.linkinfo")
SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES dfi_cuda.linkinfo)
ADD_CUSTOM_COMMAND(
COMMAND ${FIND_EXECUTABLE}
ARGS ../dfi_cuda/`${LS_EXECUTABLE} -qd ${CMAKE_SOURCE_DIR}/dfi_cuda/lib* | ${HEAD_EXECUTABLE} -n 1 | ${SED_EXECUTABLE} -e 's|.*/||'` -name *.so | ${CUT_EXECUTABLE} -d '/' -f 2- | ${XARGS_EXECUTABLE} ${LN_EXECUTABLE} -t .. -sf
TARGET dfi_cuda
)
|