project(ipecamera)

set(IPECAMERA_VERSION "0.0.1")
set(IPECAMERA_ABI_VERSION "0")

cmake_minimum_required(VERSION 2.6)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")

add_definitions("-fPIC --std=gnu99 -O2 -gdwarf-2 -g3  -fno-omit-frame-pointer")

find_package(CUDA REQUIRED)
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-gencode arch=compute_35,code=sm_35;-rdc=true)

if (DEFINED SIZE)
message(" * Setting size to ${SIZE}")
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-Xcompiler;-DSIZE=${SIZE})
endif ()

set(CUDA_SEPARABLE_COMPILATION ON)


find_package(PkgConfig REQUIRED)

pkg_check_modules(PCILIB pcitool>=0.2 REQUIRED)


include_directories(
    ${CMAKE_SOURCE_DIR}
    ${PCILIB_INCLUDE_DIRS}
    ${CUDA_INCLUDE_DIRS}
)

link_directories(
    ${PCILIB_LIBRARY_DIRS}
    ${CUDA_LIBRARY_DIRS}
)


set(CUDA_KERNELS kernels.cu)

#cuda_compile_ptx(cuda_ptx_files kernels.cu)
#add_custom_target(ptx ALL DEPENDS ${cuda_ptx_files} ${CUDA_KERNELS} SOURCES ${CUDA_KERNELS})


cuda_add_executable(gdr_test gdr_test.cu kernels.cu)
target_link_libraries(gdr_test pcilib rt cuda gdrapi /usr/local/cuda/lib64/libcudadevrt.a)