Commit 53cab7ba6f34da97106d1846cd0855b5fe82db54
1 parent
baa0b76e
committing forgotten module.cmake file
Showing
1 changed file
with
33 additions
and
0 deletions
openbr/plugins/cuda/module.cmake
0 → 100644
| 1 | +# add WITH_CUDA option | |
| 2 | +option(BR_WITH_CUDA "Build CUDA-accelerated plugins." OFF) | |
| 3 | +set(BR_CUDA_ARCH "sm_20" CACHE STRING "CUDA Architecture") | |
| 4 | + | |
| 5 | +# only build this module if explicitly OK'ed | |
| 6 | +if(BR_WITH_CUDA) | |
| 7 | + message(STATUS "Building with CUDA Support") | |
| 8 | + find_package(CUDA REQUIRED) | |
| 9 | + | |
| 10 | + set(CUDA_SRC_DIR ${PROJECT_SOURCE_DIR}/openbr/plugins/cuda) | |
| 11 | + | |
| 12 | + # configure the compiler, need -fPIC for shared library | |
| 13 | + set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -arch=${BR_CUDA_ARCH} --compiler-options -fPIC) | |
| 14 | + include_directories(${CUDA_INCLUDE_DIRS}) | |
| 15 | + | |
| 16 | + # glob sources | |
| 17 | + file(GLOB CUDA_CU_SRC ${CUDA_SRC_DIR}/*.cu) | |
| 18 | + file(GLOB CUDA_CPP_SRC ${CUDA_SRC_DIR}/*.cpp) | |
| 19 | + | |
| 20 | + # compile each of the object files and append to CUDA_CU_OBJ | |
| 21 | + foreach(FILE ${CUDA_CU_SRC}) | |
| 22 | + cuda_compile(FILE_O ${FILE}) | |
| 23 | + set(CUDA_CU_OBJ ${CUDA_CU_OBJ} ${FILE_O}) | |
| 24 | + endforeach() | |
| 25 | + | |
| 26 | + # ensure add_library knows these are external object file | |
| 27 | + set_source_files_properties(${CUDA_CU_OBJ} PROPERTIES EXTERNAL_OBJECT true) | |
| 28 | + | |
| 29 | + # add the compiled source and libs into the build system | |
| 30 | + set(BR_THIRDPARTY_SRC ${BR_THIRDPARTY_SRC} ${CUDA_CPP_SRC} ${CUDA_CU_OBJ}) | |
| 31 | + set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} ${CUDA_LIBRARIES}) | |
| 32 | + | |
| 33 | +endif() | ... | ... |