-
Notifications
You must be signed in to change notification settings - Fork 90
/
CMakeLists.txt
53 lines (45 loc) · 1.64 KB
/
CMakeLists.txt
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
cmake_minimum_required(VERSION 3.8)
project(penguinV)
include(CTest)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
if(NOT CMAKE_MODULE_PATH)
set(CMAKE_MODULE_PATH)
endif()
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
find_package(OpenCL)
find_package(Qt5Widgets)
find_package(CUDA)
if(CUDA_FOUND)
# There is some bug in CMake (FindCUDA.cmake) that causes it to mess up the -std=c++11 option
# if you let it propagate it to nvcc in some cases.
if(NOT MSVC)
set(CUDA_PROPAGATE_HOST_FLAGS OFF)
list(APPEND CUDA_NVCC_FLAGS -std=c++11 -Wno-deprecated-gpu-targets)
endif()
add_subdirectory(examples/cuda/image_function)
add_subdirectory(examples/cuda/pinned_memory)
endif()
function(copy_data_files)
set(EXAMPLE_DATA_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}")
set(EXAMPLE_DATA_DIR "${CMAKE_SOURCE_DIR}/data/")
file(GLOB files "${EXAMPLE_DATA_DIR}/*.bmp" "${EXAMPLE_DATA_DIR}/*.png")
foreach(file ${files})
file(COPY ${file} DESTINATION ${EXAMPLE_DATA_INSTALL_DIR})
endforeach()
endfunction()
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm*|ARM*)")
add_compile_options(-mfpu=neon-vfpv4)
endif()
option(PENGUINV_BUILD_TEST "Build tests of penguinV" ON)
if(${PENGUINV_BUILD_TEST} AND (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR))
enable_testing()
add_subdirectory(test)
endif()
option(PENGUINV_BUILD_EXAMPLE "Build examples of penguinV" ON)
if(${PENGUINV_BUILD_EXAMPLE} AND (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR))
add_subdirectory(examples)
endif()