119 lines
4.2 KiB
CMake
119 lines
4.2 KiB
CMake
#CHECK: CUDA
|
|
|
|
macro_optional_find_package (CUDA ON)
|
|
macro_log_feature (CUDA_FOUND "CUDA"
|
|
"CUDA GGPU Programming "
|
|
"http://www.nvidia.com/object/cuda_home_new.html" FALSE)
|
|
|
|
if (CUDA_FOUND)
|
|
# CUDA_VERSION_MAJOR -- The major version of cuda as reported by nvcc.
|
|
# CUDA_VERSION_MINOR -- The minor version.
|
|
# CUDA_VERSION
|
|
# CUDA_VERSION_STRING -- CUDA_VERSION_MAJOR.CUDA_VERSION_MINOR
|
|
#
|
|
# CUDA_TOOLKIT_ROOT_DIR -- Path to the CUDA Toolkit (defined if not set).
|
|
# CUDA_SDK_ROOT_DIR -- Path to the CUDA SDK. Use this to find files in the
|
|
# SDK. This script will not directly support finding
|
|
# specific libraries or headers, as that isn't
|
|
# supported by NVIDIA. If you want to change
|
|
# libraries when the path changes see the
|
|
# FindCUDA.cmake script for an example of how to clear
|
|
# these variables. There are also examples of how to
|
|
# use the CUDA_SDK_ROOT_DIR to locate headers or
|
|
# libraries, if you so choose (at your own risk).
|
|
# CUDA_INCLUDE_DIRS -- Include directory for cuda headers. Added automatically
|
|
# for CUDA_ADD_EXECUTABLE and CUDA_ADD_LIBRARY.
|
|
# CUDA_LIBRARIES -- Cuda RT library.
|
|
# CUDA_CUFFT_LIBRARIES -- Device or emulation library for the Cuda FFT
|
|
# implementation (alternative to:
|
|
# CUDA_ADD_CUFFT_TO_TARGET macro)
|
|
# CUDA_CUBLAS_LIBRARIES -- Device or emulation library for the Cuda BLAS
|
|
# implementation (alterative to:
|
|
# CUDA_ADD_CUBLAS_TO_TARGET macro).
|
|
# CUDA_cupti_LIBRARY -- CUDA Profiling Tools Interface library.
|
|
# Only available for CUDA version 4.0+.
|
|
# CUDA_curand_LIBRARY -- CUDA Random Number Generation library.
|
|
# Only available for CUDA version 3.2+.
|
|
# CUDA_cusparse_LIBRARY -- CUDA Sparse Matrix library.
|
|
# Only available for CUDA version 3.2+.
|
|
# CUDA_npp_LIBRARY -- NVIDIA Performance Primitives lib.
|
|
# Only available for CUDA version 4.0+.
|
|
# CUDA_nppc_LIBRARY -- NVIDIA Performance Primitives lib (core).
|
|
# Only available for CUDA version 5.5+.
|
|
# CUDA_nppi_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
|
|
# Only available for CUDA version 5.5+.
|
|
# CUDA_npps_LIBRARY -- NVIDIA Performance Primitives lib (signal processing).
|
|
# Only available for CUDA version 5.5+.
|
|
# CUDA_nvcuvenc_LIBRARY -- CUDA Video Encoder library.
|
|
# Only available for CUDA version 3.2+.
|
|
# Windows only.
|
|
# CUDA_nvcuvid_LIBRARY -- CUDA Video Decoder library.
|
|
# Only available for CUDA version 3.2+.
|
|
# Windows only.
|
|
#
|
|
macro_optional_find_package (Thrust ON)
|
|
|
|
set (CUDA_SOURCES
|
|
CC_CSSTree.cu
|
|
bpreds.cu
|
|
dbio.cu
|
|
lista.cu
|
|
memory.cu
|
|
selectproyect.cu
|
|
treeb.cu
|
|
union2.cu
|
|
)
|
|
|
|
set (CXX_SOURCES
|
|
bpredscpu.cpp
|
|
joincpu.cpp
|
|
selectproyectcpu.cpp
|
|
unioncpu2.cpp
|
|
)
|
|
|
|
set (C_SOURCES
|
|
creator2.c
|
|
cuda.c
|
|
)
|
|
|
|
set (PL_SOURCES
|
|
cuda.yap
|
|
)
|
|
|
|
cuda_add_library (libcuda SHARED ${CUDA_SOURCES})
|
|
|
|
target_link_libraries(libcuda libYap
|
|
${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY} # ${CUDA_nppc_LIBRARY}
|
|
)
|
|
|
|
if( THRUST_INCLUDE_DIR )
|
|
list( REMOVE_DUPLICATES THRUST_INCLUDE_DIR )
|
|
include_directories( ${THRUST_INCLUDE_DIR} )
|
|
endif( THRUST_INCLUDE_DIR )
|
|
|
|
set(CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE ON)
|
|
|
|
#set(BUILD_SHARED_LIBS OFF)
|
|
|
|
set(CUDA_SEPARABLE_COMPILATION ON)
|
|
|
|
#list(APPEND CUDA_NVCC_FLAGS -arch=sm_20)
|
|
|
|
set_target_properties (libcuda PROPERTIES PREFIX "")
|
|
|
|
include_directories (${CUDA_INCLUDE_DIRS}
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
|
|
install(TARGETS libcuda
|
|
LIBRARY DESTINATION ${dlls}
|
|
ARCHIVE DESTINATION ${dlls}
|
|
)
|
|
|
|
install(FILES ${PL_SOURCES}
|
|
DESTINATION ${libpl}
|
|
)
|
|
|
|
|
|
endif (CUDA_FOUND)
|