mirror of
https://github.com/opencv/opencv.git
synced 2024-11-25 11:40:44 +08:00
217dd63e02
Commits: added new function, cv::ocl::attachContext(String& platformName, void* platformID, void* context, void* deviceID) which allow to attach externally created OpenCL context to OpenCV. add definitions of clRetainDevice, clRetainContext funcs removed definitions for clRetainContext, clRetainDevice fixed build issue under Linux fixed uninitialized vars, replace dbgassert in error handling remove function which is not ready yet add new function, cv::ocl::convertFromBuffer(int rows, int cols, int type, void* cl_mem_obj, UMat& dst, UMatUsageFlags usageFlags = cv::USAGE_DEFAULT) which attaches user allocated OpenCL clBuffer to UMat uncommented clGetMemObjectInfo definition (otherwise prevent opencv build) fixed build issue on linux and android add step parameter to cv::ocl::convertFromBuffer func suppress compile-time warning added sample opencl-opencv interoperability (showcase for cv::ocl::convertFromBuffer func) CMakeLists.txt modified to not create sample build script if OpenCL SDK not found in system fixed build issue (apple opencl include dir and spaces in CMake file) added call to clRetainContext for attachContext func and call to clRetainMemObject for convertFromBuffer func uncommented clRetainMemObject definition added comments and cleanup add local path to cmake modules search dirs (instead of replacing) remove REQUIRED for find_package call (sample build together with opencv). need to try standalone sample build opencl-interop sample moved to standalone build set minimum version requirement for sample's cmake to 3.1 put cmake_minimum_required under condition, so do not check if samples not builded remove code dups for setSize, updateContinuityFlag, and finalizeHdr commented out cmake_minimum_required(VERSION 3.1) add safety check for cmake version add convertFromImage func and update opencl-interop sample uncommented clGetImageInfo defs uncommented clEnqueueCopyImageToBuffer defs fixed clEnqueueCopyImageToBuffer defs add doxygen comments remove doxygen @fn tag try to restart buildbot add doxygen comments to directx interop funcs remove internal header, use fwd declarations in affected compile units instead
69 lines
2.0 KiB
CMake
69 lines
2.0 KiB
CMake
# cmake 3.1 needed for find_package(OpenCL)
|
|
|
|
if(CMAKE_VERSION VERSION_LESS "3.1")
|
|
message(STATUS "OpenCL samples require CMakes 3.1+")
|
|
return()
|
|
endif()
|
|
|
|
set(
|
|
OPENCV_OPENCL_SAMPLES_REQUIRED_DEPS
|
|
opencv_core
|
|
opencv_imgproc
|
|
opencv_video
|
|
opencv_imgcodecs
|
|
opencv_videoio
|
|
opencv_highgui)
|
|
|
|
ocv_check_dependencies(${OPENCV_OPENCL_SAMPLES_REQUIRED_DEPS})
|
|
|
|
if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND)
|
|
|
|
find_package(OpenCL 1.2 REQUIRED)
|
|
|
|
set(project "opencl")
|
|
string(TOUPPER "${project}" project_upper)
|
|
|
|
project("${project}_samples")
|
|
|
|
ocv_include_modules_recurse(${OPENCV_OPENCL_SAMPLES_REQUIRED_DEPS})
|
|
|
|
include_directories(${OpenCL_INCLUDE_DIR})
|
|
|
|
# ---------------------------------------------
|
|
# Define executable targets
|
|
# ---------------------------------------------
|
|
MACRO(OPENCV_DEFINE_OPENCL_EXAMPLE name srcs)
|
|
set(the_target "example_${project}_${name}")
|
|
add_executable(${the_target} ${srcs})
|
|
|
|
ocv_target_link_libraries(
|
|
${the_target}
|
|
${OPENCV_LINKER_LIBS}
|
|
${OPENCV_OPENCL_SAMPLES_REQUIRED_DEPS}
|
|
${OpenCL_LIBRARY})
|
|
|
|
set_target_properties(${the_target} PROPERTIES
|
|
OUTPUT_NAME "${project}-example-${name}"
|
|
PROJECT_LABEL "(EXAMPLE_${project_upper}) ${name}")
|
|
|
|
if(ENABLE_SOLUTION_FOLDERS)
|
|
set_target_properties(${the_target} PROPERTIES FOLDER "samples//${project}")
|
|
endif()
|
|
|
|
if(WIN32)
|
|
if(MSVC AND NOT BUILD_SHARED_LIBS)
|
|
set_target_properties(${the_target} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:atlthunk.lib /NODEFAULTLIB:atlsd.lib /DEBUG")
|
|
endif()
|
|
install(TARGETS ${the_target} RUNTIME DESTINATION "${OPENCV_SAMPLES_BIN_INSTALL_PATH}/${project}" COMPONENT main)
|
|
endif()
|
|
ENDMACRO()
|
|
|
|
file(GLOB all_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp)
|
|
|
|
foreach(sample_filename ${all_samples})
|
|
get_filename_component(sample ${sample_filename} NAME_WE)
|
|
file(GLOB sample_srcs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${sample}.*)
|
|
OPENCV_DEFINE_OPENCL_EXAMPLE(${sample} ${sample_srcs})
|
|
endforeach()
|
|
endif()
|