1
# cmake 3.1 needed for find_package(OpenCL)
3
if(CMAKE_VERSION VERSION_LESS "3.1")
4
message(STATUS "OpenCL samples require CMakes 3.1+")
9
OPENCV_OPENCL_SAMPLES_REQUIRED_DEPS
17
ocv_check_dependencies(${OPENCV_OPENCL_SAMPLES_REQUIRED_DEPS})
19
if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND)
21
find_package(OpenCL 1.2 QUIET)
23
message(STATUS "OpenCL samples are skipped: OpenCL SDK is required")
28
string(TOUPPER "${project}" project_upper)
30
project("${project}_samples")
32
ocv_include_modules_recurse(${OPENCV_OPENCL_SAMPLES_REQUIRED_DEPS})
34
include_directories(${OpenCL_INCLUDE_DIR})
36
# ---------------------------------------------
37
# Define executable targets
38
# ---------------------------------------------
39
MACRO(OPENCV_DEFINE_OPENCL_EXAMPLE name srcs)
40
set(the_target "example_${project}_${name}")
41
add_executable(${the_target} ${srcs})
43
ocv_target_link_libraries(
46
${OPENCV_OPENCL_SAMPLES_REQUIRED_DEPS}
49
set_target_properties(${the_target} PROPERTIES
50
OUTPUT_NAME "${project}-example-${name}"
51
PROJECT_LABEL "(EXAMPLE_${project_upper}) ${name}")
53
if(ENABLE_SOLUTION_FOLDERS)
54
set_target_properties(${the_target} PROPERTIES FOLDER "samples//${project}")
58
if(MSVC AND NOT BUILD_SHARED_LIBS)
59
set_target_properties(${the_target} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:atlthunk.lib /NODEFAULTLIB:atlsd.lib /DEBUG")
61
install(TARGETS ${the_target} RUNTIME DESTINATION "${OPENCV_SAMPLES_BIN_INSTALL_PATH}/${project}" COMPONENT main)
65
file(GLOB all_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp)
67
foreach(sample_filename ${all_samples})
68
get_filename_component(sample ${sample_filename} NAME_WE)
69
file(GLOB sample_srcs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${sample}.*)
70
OPENCV_DEFINE_OPENCL_EXAMPLE(${sample} ${sample_srcs})