/tomo/pyhst

To get this branch, use:
bzr branch http://darksoft.org/webbzr/tomo/pyhst
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
)