mirror of https://github.com/opencv/opencv.git
- allow installing samples sources on all platforms even if BUILD_EXAMPLES is disabled, fixed minor issues in sources installation process - use 'example_<group>_<name>' scheme for target and binary file naming - use single function for sample executable creationpull/10818/head
parent
633b0e56a5
commit
2200e13c71
15 changed files with 348 additions and 578 deletions
@ -1,117 +1,65 @@ |
||||
# ---------------------------------------------------------------------------- |
||||
# CMake file for C samples. See root CMakeLists.txt |
||||
# |
||||
# ---------------------------------------------------------------------------- |
||||
|
||||
SET(OPENCV_CPP_SAMPLES_REQUIRED_DEPS opencv_core opencv_imgproc opencv_flann |
||||
opencv_imgcodecs opencv_videoio opencv_highgui opencv_ml opencv_video |
||||
opencv_objdetect opencv_photo opencv_features2d opencv_calib3d |
||||
opencv_stitching opencv_videostab opencv_shape ${OPENCV_MODULES_PUBLIC} ${OpenCV_LIB_COMPONENTS}) |
||||
|
||||
ocv_install_example_src(cpp *.cpp *.hpp CMakeLists.txt) |
||||
|
||||
set(OPENCV_CPP_SAMPLES_REQUIRED_DEPS |
||||
opencv_core |
||||
opencv_imgproc |
||||
opencv_flann |
||||
opencv_imgcodecs |
||||
opencv_videoio |
||||
opencv_highgui |
||||
opencv_ml |
||||
opencv_video |
||||
opencv_objdetect |
||||
opencv_photo |
||||
opencv_features2d |
||||
opencv_calib3d |
||||
opencv_stitching |
||||
opencv_videostab |
||||
opencv_shape |
||||
${OPENCV_MODULES_PUBLIC} |
||||
${OpenCV_LIB_COMPONENTS}) |
||||
ocv_check_dependencies(${OPENCV_CPP_SAMPLES_REQUIRED_DEPS}) |
||||
|
||||
if(NOT BUILD_EXAMPLES OR NOT OCV_DEPENDENCIES_FOUND) |
||||
return() |
||||
endif() |
||||
|
||||
if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) |
||||
project(cpp_samples) |
||||
|
||||
ocv_include_directories("${OpenCV_SOURCE_DIR}/include")#for opencv.hpp |
||||
ocv_include_modules_recurse(${OPENCV_CPP_SAMPLES_REQUIRED_DEPS}) |
||||
|
||||
if(HAVE_opencv_cudaoptflow) |
||||
ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/cudaoptflow/include") |
||||
project(cpp_samples) |
||||
ocv_include_modules_recurse(${OPENCV_CPP_SAMPLES_REQUIRED_DEPS}) |
||||
file(GLOB_RECURSE cpp_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) |
||||
if(NOT HAVE_OPENGL) |
||||
ocv_list_filterout(cpp_samples Qt_sample) |
||||
endif() |
||||
if(NOT HAVE_opencv_cudaarithm OR NOT HAVE_opencv_cudafilters) |
||||
ocv_list_filterout(cpp_samples "/gpu/") |
||||
endif() |
||||
if(NOT TARGET opencv_viz) |
||||
ocv_list_filterout(cpp_samples "/viz/") |
||||
endif() |
||||
if(NOT HAVE_IPP_A) |
||||
ocv_list_filterout(cpp_samples "/ippasync/") |
||||
endif() |
||||
ocv_list_filterout(cpp_samples "real_time_pose_estimation/") |
||||
foreach(sample_filename ${cpp_samples}) |
||||
if(sample_filename MATCHES "viz/" AND VTK_USE_FILE) |
||||
include(${VTK_USE_FILE}) |
||||
endif() |
||||
if(HAVE_opencv_cudaimgproc) |
||||
ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/cudaimgproc/include") |
||||
set(package "cpp") |
||||
if(sample_filename MATCHES "tutorial_code") |
||||
set(package "tutorial") |
||||
endif() |
||||
if(HAVE_opencv_cudaarithm) |
||||
ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/cudaarithm/include") |
||||
ocv_define_sample(tgt ${sample_filename} ${package}) |
||||
ocv_target_link_libraries(${tgt} ${OPENCV_LINKER_LIBS} ${OPENCV_CPP_SAMPLES_REQUIRED_DEPS}) |
||||
if(sample_filename MATCHES "gpu/" AND HAVE_opencv_cudaarithm AND HAVE_opencv_cuda_filters) |
||||
ocv_target_link_libraries(${tgt} opencv_cudaarithm opencv_cudafilters) |
||||
endif() |
||||
if(HAVE_opencv_cudafilters) |
||||
ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/cudafilters/include") |
||||
if(sample_filename MATCHES "viz/" AND VTK_USE_FILE) |
||||
ocv_target_link_libraries(${tgt} ${VTK_LIBRARIES}) |
||||
target_compile_definitions(${tgt} PRIVATE -DUSE_VTK) |
||||
endif() |
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX AND NOT ENABLE_NOISY_WARNINGS) |
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function -Wno-missing-declarations") |
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-function -Wno-missing-declarations") |
||||
if(HAVE_OPENGL AND sample_filename MATCHES "detect_mser") |
||||
target_compile_definitions(${tgt} PRIVATE HAVE_OPENGL) |
||||
endif() |
||||
endforeach() |
||||
|
||||
# --------------------------------------------- |
||||
# Define executable targets |
||||
# --------------------------------------------- |
||||
MACRO(OPENCV_DEFINE_CPP_EXAMPLE name srcs) |
||||
|
||||
if("${srcs}" MATCHES "tutorial_code") |
||||
set(sample_kind tutorial) |
||||
set(sample_KIND TUTORIAL) |
||||
set(sample_subfolder "tutorials") |
||||
else() |
||||
set(sample_kind example) |
||||
set(sample_KIND EXAMPLE) |
||||
set(sample_subfolder "cpp") |
||||
endif() |
||||
|
||||
set(the_target "${sample_kind}_${name}") |
||||
add_executable(${the_target} ${srcs}) |
||||
ocv_target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_CPP_SAMPLES_REQUIRED_DEPS}) |
||||
|
||||
if("${srcs}" MATCHES "gpu/") |
||||
ocv_target_link_libraries(${the_target} opencv_cudaarithm opencv_cudafilters) |
||||
endif() |
||||
|
||||
if("${srcs}" MATCHES "viz/" AND VTK_USE_FILE) |
||||
include(${VTK_USE_FILE}) |
||||
ocv_target_link_libraries(${the_target} ${VTK_LIBRARIES}) |
||||
add_definitions(-DUSE_VTK) |
||||
endif() |
||||
|
||||
set_target_properties(${the_target} PROPERTIES |
||||
OUTPUT_NAME "cpp-${sample_kind}-${name}" |
||||
PROJECT_LABEL "(${sample_KIND}) ${name}") |
||||
|
||||
if(ENABLE_SOLUTION_FOLDERS) |
||||
set_target_properties(${the_target} PROPERTIES FOLDER "samples/${sample_subfolder}") |
||||
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}/${sample_subfolder}" COMPONENT samples) |
||||
endif() |
||||
ENDMACRO() |
||||
|
||||
file(GLOB_RECURSE cpp_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) |
||||
|
||||
if(NOT HAVE_OPENGL) |
||||
ocv_list_filterout(cpp_samples Qt_sample) |
||||
endif() |
||||
|
||||
if(NOT HAVE_opencv_cudaarithm OR NOT HAVE_opencv_cudafilters) |
||||
ocv_list_filterout(cpp_samples "/gpu/") |
||||
endif() |
||||
|
||||
if(NOT TARGET opencv_viz) |
||||
ocv_list_filterout(cpp_samples "/viz/") |
||||
endif() |
||||
|
||||
if(NOT HAVE_IPP_A) |
||||
ocv_list_filterout(cpp_samples "/ippasync/") |
||||
endif() |
||||
|
||||
foreach(sample_filename ${cpp_samples}) |
||||
if(NOT "${sample_filename}" MATCHES "real_time_pose_estimation/") |
||||
get_filename_component(sample ${sample_filename} NAME_WE) |
||||
OPENCV_DEFINE_CPP_EXAMPLE(${sample} ${sample_filename}) |
||||
endif() |
||||
endforeach() |
||||
|
||||
include("tutorial_code/calib3d/real_time_pose_estimation/CMakeLists.txt") |
||||
endif() |
||||
|
||||
if(INSTALL_C_EXAMPLES AND NOT WIN32) |
||||
file(GLOB C_SAMPLES *.c *.cpp *.jpg *.png *.data makefile.* build_all.sh *.dsp *.cmd ) |
||||
install(FILES ${C_SAMPLES} |
||||
DESTINATION ${OPENCV_SAMPLES_SRC_INSTALL_PATH}/cpp |
||||
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ COMPONENT samples) |
||||
endif() |
||||
include("tutorial_code/calib3d/real_time_pose_estimation/CMakeLists.txt" OPTIONAL) |
||||
|
@ -1,45 +1,21 @@ |
||||
SET(OPENCV_DIRECTX_SAMPLES_REQUIRED_DEPS opencv_core opencv_imgproc opencv_imgcodecs opencv_videoio opencv_highgui) |
||||
|
||||
ocv_install_example_src(directx *.cpp *.hpp CMakeLists.txt) |
||||
|
||||
set(OPENCV_DIRECTX_SAMPLES_REQUIRED_DEPS |
||||
opencv_core |
||||
opencv_imgproc |
||||
opencv_imgcodecs |
||||
opencv_videoio |
||||
opencv_highgui) |
||||
ocv_check_dependencies(${OPENCV_DIRECTX_SAMPLES_REQUIRED_DEPS}) |
||||
|
||||
if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) |
||||
set(project "directx") |
||||
string(TOUPPER "${project}" project_upper) |
||||
|
||||
project("${project}_samples") |
||||
|
||||
ocv_include_modules_recurse(${OPENCV_DIRECTX_SAMPLES_REQUIRED_DEPS}) |
||||
|
||||
# --------------------------------------------- |
||||
# Define executable targets |
||||
# --------------------------------------------- |
||||
MACRO(OPENCV_DEFINE_DIRECTX_EXAMPLE name srcs) |
||||
set(the_target "example_${project}_${name}") |
||||
add_executable(${the_target} ${srcs}) |
||||
|
||||
ocv_target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_DIRECTX_SAMPLES_REQUIRED_DEPS}) |
||||
|
||||
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 samples) |
||||
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_DIRECTX_EXAMPLE(${sample} ${sample_srcs}) |
||||
endforeach() |
||||
if(NOT BUILD_EXAMPLES OR NOT OCV_DEPENDENCIES_FOUND) |
||||
return() |
||||
endif() |
||||
|
||||
project("directx_samples") |
||||
ocv_include_modules_recurse(${tgt} ${OPENCV_DIRECTX_SAMPLES_REQUIRED_DEPS}) |
||||
file(GLOB all_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) |
||||
foreach(sample_filename ${all_samples}) |
||||
ocv_define_sample(tgt ${sample_filename} directx) |
||||
ocv_target_link_libraries(${tgt} ${OPENCV_LINKER_LIBS} ${OPENCV_DIRECTX_SAMPLES_REQUIRED_DEPS}) |
||||
endforeach() |
||||
|
@ -1,76 +1,39 @@ |
||||
SET(OPENCV_DNN_SAMPLES_REQUIRED_DEPS opencv_core opencv_imgproc opencv_dnn |
||||
opencv_imgcodecs opencv_videoio opencv_highgui |
||||
${OpenCV_LIB_COMPONENTS}) |
||||
|
||||
ocv_install_example_src(dnn *.cpp *.hpp CMakeLists.txt) |
||||
|
||||
set(OPENCV_DNN_SAMPLES_REQUIRED_DEPS |
||||
opencv_core |
||||
opencv_imgproc |
||||
opencv_dnn |
||||
opencv_imgcodecs |
||||
opencv_videoio |
||||
opencv_highgui) |
||||
ocv_check_dependencies(${OPENCV_DNN_SAMPLES_REQUIRED_DEPS}) |
||||
|
||||
|
||||
if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) |
||||
project(dnn_samples) |
||||
|
||||
# Model branch name: dnn_samples_face_detector_20170830 |
||||
set(DNN_FACE_DETECTOR_MODEL_COMMIT "b2bfc75f6aea5b1f834ff0f0b865a7c18ff1459f") |
||||
set(DNN_FACE_DETECTOR_MODEL_HASH "afbb6037fd180e8d2acb3b58ca737b9e") |
||||
|
||||
set(DNN_FACE_DETECTOR_MODEL_NAME "res10_300x300_ssd_iter_140000.caffemodel") |
||||
|
||||
set(DNN_FACE_DETECTOR_MODEL_DOWNLOAD_DIR "${CMAKE_CURRENT_LIST_DIR}/face_detector") |
||||
|
||||
if(COMMAND ocv_download) |
||||
ocv_download(FILENAME ${DNN_FACE_DETECTOR_MODEL_NAME} |
||||
HASH ${DNN_FACE_DETECTOR_MODEL_HASH} |
||||
URL |
||||
"$ENV{OPENCV_DNN_MODELS_URL}" |
||||
"${OPENCV_DNN_MODELS_URL}" |
||||
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${DNN_FACE_DETECTOR_MODEL_COMMIT}/" |
||||
DESTINATION_DIR ${DNN_FACE_DETECTOR_MODEL_DOWNLOAD_DIR} |
||||
ID DNN_FACE_DETECTOR |
||||
RELATIVE_URL |
||||
STATUS res) |
||||
endif() |
||||
|
||||
ocv_include_directories("${OpenCV_SOURCE_DIR}/include") |
||||
ocv_include_modules_recurse(${OPENCV_DNN_SAMPLES_REQUIRED_DEPS}) |
||||
|
||||
# --------------------------------------------- |
||||
# Define executable targets |
||||
# --------------------------------------------- |
||||
MACRO(OPENCV_DEFINE_DNN_EXAMPLE name srcs) |
||||
set(sample_kind example_dnn) |
||||
set(sample_subfolder "dnn") |
||||
|
||||
set(the_target "${sample_kind}_${name}") |
||||
add_executable(${the_target} ${srcs}) |
||||
ocv_target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_DNN_SAMPLES_REQUIRED_DEPS}) |
||||
|
||||
set_target_properties(${the_target} PROPERTIES |
||||
OUTPUT_NAME "${sample_kind}-${name}" |
||||
PROJECT_LABEL "(${sample_KIND}) ${name}") |
||||
|
||||
if(ENABLE_SOLUTION_FOLDERS) |
||||
set_target_properties(${the_target} PROPERTIES FOLDER "samples/${sample_subfolder}") |
||||
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}/${sample_subfolder}" COMPONENT samples) |
||||
endif() |
||||
ENDMACRO() |
||||
|
||||
file(GLOB_RECURSE dnn_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) |
||||
|
||||
foreach(sample_filename ${dnn_samples}) |
||||
get_filename_component(sample ${sample_filename} NAME_WE) |
||||
OPENCV_DEFINE_DNN_EXAMPLE(${sample} ${sample_filename}) |
||||
endforeach() |
||||
if(NOT BUILD_EXAMPLES OR NOT OCV_DEPENDENCIES_FOUND) |
||||
return() |
||||
endif() |
||||
|
||||
if(INSTALL_C_EXAMPLES AND NOT WIN32) |
||||
file(GLOB C_SAMPLES *.c *.cpp *.jpg *.png *.data makefile.* build_all.sh *.dsp *.cmd ) |
||||
install(FILES ${C_SAMPLES} |
||||
DESTINATION ${OPENCV_SAMPLES_SRC_INSTALL_PATH}/dnn |
||||
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ COMPONENT samples) |
||||
# Model branch name: dnn_samples_face_detector_20170830 |
||||
set(DNN_FACE_DETECTOR_MODEL_COMMIT "b2bfc75f6aea5b1f834ff0f0b865a7c18ff1459f") |
||||
set(DNN_FACE_DETECTOR_MODEL_HASH "afbb6037fd180e8d2acb3b58ca737b9e") |
||||
set(DNN_FACE_DETECTOR_MODEL_NAME "res10_300x300_ssd_iter_140000.caffemodel") |
||||
set(DNN_FACE_DETECTOR_MODEL_DOWNLOAD_DIR "${CMAKE_CURRENT_LIST_DIR}/face_detector") |
||||
if(COMMAND ocv_download) |
||||
ocv_download(FILENAME ${DNN_FACE_DETECTOR_MODEL_NAME} |
||||
HASH ${DNN_FACE_DETECTOR_MODEL_HASH} |
||||
URL |
||||
"$ENV{OPENCV_DNN_MODELS_URL}" |
||||
"${OPENCV_DNN_MODELS_URL}" |
||||
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${DNN_FACE_DETECTOR_MODEL_COMMIT}/" |
||||
DESTINATION_DIR ${DNN_FACE_DETECTOR_MODEL_DOWNLOAD_DIR} |
||||
ID DNN_FACE_DETECTOR |
||||
RELATIVE_URL |
||||
STATUS res) |
||||
endif() |
||||
project(dnn_samples) |
||||
ocv_include_modules_recurse(${OPENCV_DNN_SAMPLES_REQUIRED_DEPS}) |
||||
file(GLOB_RECURSE dnn_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) |
||||
foreach(sample_filename ${dnn_samples}) |
||||
ocv_define_sample(tgt ${sample_filename} dnn) |
||||
ocv_target_link_libraries(${tgt} ${OPENCV_LINKER_LIBS} ${OPENCV_DNN_SAMPLES_REQUIRED_DEPS}) |
||||
endforeach() |
||||
|
@ -1,97 +1,60 @@ |
||||
SET(OPENCV_CUDA_SAMPLES_REQUIRED_DEPS opencv_core opencv_flann opencv_imgproc opencv_imgcodecs opencv_videoio opencv_highgui |
||||
opencv_ml opencv_video opencv_objdetect opencv_features2d |
||||
opencv_calib3d opencv_superres |
||||
opencv_cudaarithm opencv_cudafilters opencv_cudawarping opencv_cudaimgproc |
||||
opencv_cudafeatures2d opencv_cudaoptflow opencv_cudabgsegm |
||||
opencv_cudastereo opencv_cudalegacy opencv_cudaobjdetect) |
||||
|
||||
ocv_install_example_src(gpu *.cpp *.hpp CMakeLists.txt) |
||||
|
||||
set(OPENCV_CUDA_SAMPLES_REQUIRED_DEPS |
||||
opencv_core |
||||
opencv_flann |
||||
opencv_imgproc |
||||
opencv_imgcodecs |
||||
opencv_videoio |
||||
opencv_highgui |
||||
opencv_ml |
||||
opencv_video |
||||
opencv_objdetect |
||||
opencv_features2d |
||||
opencv_calib3d |
||||
opencv_superres |
||||
opencv_cudaarithm |
||||
opencv_cudafilters |
||||
opencv_cudawarping |
||||
opencv_cudaimgproc |
||||
opencv_cudafeatures2d |
||||
opencv_cudaoptflow |
||||
opencv_cudabgsegm |
||||
opencv_cudastereo |
||||
opencv_cudalegacy |
||||
opencv_cudaobjdetect) |
||||
ocv_check_dependencies(${OPENCV_CUDA_SAMPLES_REQUIRED_DEPS}) |
||||
|
||||
if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) |
||||
set(project "gpu") |
||||
string(TOUPPER "${project}" project_upper) |
||||
|
||||
project("${project}_samples") |
||||
|
||||
ocv_include_modules_recurse(${OPENCV_CUDA_SAMPLES_REQUIRED_DEPS}) |
||||
if(NOT BUILD_EXAMPLES OR NOT OCV_DEPENDENCIES_FOUND) |
||||
return() |
||||
endif() |
||||
|
||||
project(gpu_samples) |
||||
ocv_include_modules_recurse(${OPENCV_CUDA_SAMPLES_REQUIRED_DEPS}) |
||||
if(HAVE_opencv_xfeatures2d) |
||||
ocv_include_modules_recurse(opencv_xfeatures2d) |
||||
endif() |
||||
if(HAVE_opencv_cudacodec) |
||||
ocv_include_modules_recurse(opencv_cudacodec) |
||||
endif() |
||||
if(HAVE_CUDA) |
||||
ocv_include_directories(${CUDA_INCLUDE_DIRS}) |
||||
endif() |
||||
if(CMAKE_COMPILER_IS_GNUCXX AND NOT ENABLE_NOISY_WARNINGS) |
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function") |
||||
endif() |
||||
file(GLOB all_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) |
||||
if(NOT HAVE_OPENGL) |
||||
ocv_list_filterout(all_samples "opengl") |
||||
endif() |
||||
foreach(sample_filename ${all_samples}) |
||||
ocv_define_sample(tgt ${sample_filename} gpu) |
||||
ocv_target_link_libraries(${tgt} ${OPENCV_LINKER_LIBS} ${OPENCV_CUDA_SAMPLES_REQUIRED_DEPS}) |
||||
if(HAVE_opencv_xfeatures2d) |
||||
ocv_include_modules_recurse(opencv_xfeatures2d) |
||||
ocv_target_link_libraries(${tgt} opencv_xfeatures2d) |
||||
endif() |
||||
|
||||
if(HAVE_opencv_cudacodec) |
||||
ocv_include_modules_recurse(opencv_cudacodec) |
||||
endif() |
||||
|
||||
if(HAVE_CUDA) |
||||
ocv_include_directories(${CUDA_INCLUDE_DIRS}) |
||||
ocv_target_link_libraries(${tgt} opencv_cudacodec) |
||||
endif() |
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX AND NOT ENABLE_NOISY_WARNINGS) |
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function") |
||||
endif() |
||||
|
||||
# --------------------------------------------- |
||||
# Define executable targets |
||||
# --------------------------------------------- |
||||
MACRO(OPENCV_DEFINE_CUDA_EXAMPLE name srcs) |
||||
set(the_target "example_${project}_${name}") |
||||
add_executable(${the_target} ${srcs}) |
||||
|
||||
ocv_target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_CUDA_SAMPLES_REQUIRED_DEPS}) |
||||
|
||||
if(HAVE_CUDA AND NOT ANDROID) |
||||
ocv_target_link_libraries(${the_target} ${CUDA_CUDA_LIBRARY}) |
||||
endif() |
||||
|
||||
if(HAVE_opencv_xfeatures2d) |
||||
ocv_target_link_libraries(${the_target} opencv_xfeatures2d) |
||||
endif() |
||||
if(HAVE_opencv_cudacodec) |
||||
ocv_target_link_libraries(${the_target} opencv_cudacodec) |
||||
endif() |
||||
|
||||
if(HAVE_opencv_ocl) |
||||
ocv_target_link_libraries(${the_target} opencv_ocl) |
||||
endif() |
||||
|
||||
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 samples) |
||||
endif() |
||||
ENDMACRO() |
||||
|
||||
file(GLOB all_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) |
||||
|
||||
if(NOT HAVE_OPENGL) |
||||
list(REMOVE_ITEM all_samples "opengl.cpp") |
||||
endif() |
||||
|
||||
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_CUDA_EXAMPLE(${sample} ${sample_srcs}) |
||||
endforeach() |
||||
|
||||
include("performance/CMakeLists.txt") |
||||
endif() |
||||
|
||||
if(INSTALL_C_EXAMPLES AND NOT WIN32) |
||||
file(GLOB install_list *.c *.cpp *.jpg *.png *.data makefile.* build_all.sh *.dsp *.cmd ) |
||||
if(NOT HAVE_OPENGL) |
||||
list(REMOVE_ITEM install_list "opengl.cpp") |
||||
endif() |
||||
install(FILES ${install_list} |
||||
DESTINATION ${OPENCV_SAMPLES_SRC_INSTALL_PATH}/gpu |
||||
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ COMPONENT samples) |
||||
endif() |
||||
endforeach() |
||||
include("performance/CMakeLists.txt" OPTIONAL) |
||||
|
@ -1,72 +1,38 @@ |
||||
# cmake 3.1 needed for find_package(OpenCL) |
||||
ocv_install_example_src(opencl *.cpp *.hpp CMakeLists.txt) |
||||
|
||||
# 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) |
||||
|
||||
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 QUIET) |
||||
if(NOT OpenCL_FOUND) |
||||
message(STATUS "OpenCL samples are skipped: OpenCL SDK is required") |
||||
return() |
||||
endif() |
||||
|
||||
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) |
||||
if(NOT BUILD_EXAMPLES OR NOT OCV_DEPENDENCIES_FOUND) |
||||
return() |
||||
endif() |
||||
|
||||
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() |
||||
find_package(OpenCL 1.2 QUIET) |
||||
if(NOT OpenCL_FOUND) |
||||
message(STATUS "OpenCL samples are skipped: OpenCL SDK is required") |
||||
return() |
||||
endif() |
||||
|
||||
project(opencl_samples) |
||||
ocv_include_modules_recurse(${OPENCV_OPENCL_SAMPLES_REQUIRED_DEPS}) |
||||
ocv_include_directories(${OpenCL_INCLUDE_DIR}) |
||||
file(GLOB all_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) |
||||
foreach(sample_filename ${all_samples}) |
||||
ocv_define_sample(tgt ${sample_filename} opencl) |
||||
ocv_target_link_libraries(${tgt} |
||||
${OPENCV_LINKER_LIBS} |
||||
${OPENCV_OPENCL_SAMPLES_REQUIRED_DEPS} |
||||
${OpenCL_LIBRARY}) |
||||
endforeach() |
||||
|
@ -1,37 +1,25 @@ |
||||
cmake_minimum_required(VERSION 2.8.9) |
||||
ocv_install_example_src(cpp *.cpp *.hpp CMakeLists.txt) |
||||
|
||||
set(OPENCV_OPENVX_SAMPLE_REQUIRED_DEPS opencv_core opencv_imgproc opencv_imgcodecs opencv_videoio opencv_highgui) |
||||
cmake_minimum_required(VERSION 2.8.9) |
||||
|
||||
set(OPENCV_OPENVX_SAMPLE_REQUIRED_DEPS |
||||
opencv_core |
||||
opencv_imgproc |
||||
opencv_imgcodecs |
||||
opencv_videoio |
||||
opencv_highgui) |
||||
ocv_check_dependencies(${OPENCV_OPENVX_SAMPLE_REQUIRED_DEPS}) |
||||
|
||||
if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) |
||||
set(group "openvx") |
||||
set(name_wrapped "interop") |
||||
set(name_orig "interop_orig") |
||||
set(name_video "interop_video") |
||||
|
||||
project("${group}_sample") |
||||
|
||||
ocv_include_modules_recurse(${OPENCV_OPENVX_SAMPLE_REQUIRED_DEPS}) |
||||
|
||||
add_definitions(-DIVX_USE_OPENCV) |
||||
add_definitions(-DIVX_HIDE_INFO_WARNINGS) |
||||
|
||||
file(GLOB srcs_wrapped wrappers.cpp *.hpp) |
||||
file(GLOB srcs_orig no_wrappers.cpp *.hpp) |
||||
file(GLOB srcs_video wrappers_video.cpp *.hpp) |
||||
|
||||
MACRO(OPENVX_DEFINE_SAMPLE name srcs) |
||||
set(target "example_${group}_${name}") |
||||
add_executable(${target} ${srcs}) |
||||
ocv_target_link_libraries(${target} ${OPENCV_LINKER_LIBS} ${OPENCV_OPENVX_SAMPLE_REQUIRED_DEPS} ${OPENVX_LIBRARIES}) |
||||
if(ENABLE_SOLUTION_FOLDERS) |
||||
set_target_properties(${target} PROPERTIES FOLDER "samples//${group}") |
||||
endif() |
||||
ENDMACRO() |
||||
|
||||
OPENVX_DEFINE_SAMPLE(${name_wrapped} ${srcs_wrapped}) |
||||
OPENVX_DEFINE_SAMPLE(${name_orig} ${srcs_orig}) |
||||
OPENVX_DEFINE_SAMPLE(${name_video} ${srcs_video}) |
||||
|
||||
if(NOT BUILD_EXAMPLES OR NOT OCV_DEPENDENCIES_FOUND) |
||||
return() |
||||
endif() |
||||
|
||||
project(openvx_samples) |
||||
ocv_include_modules_recurse(${OPENCV_OPENVX_SAMPLE_REQUIRED_DEPS}) |
||||
add_definitions(-DIVX_USE_OPENCV) |
||||
add_definitions(-DIVX_HIDE_INFO_WARNINGS) |
||||
file(GLOB_RECURSE cpp_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) |
||||
foreach(sample_filename ${cpp_samples}) |
||||
ocv_define_sample(tgt ${sample_filename} openvx) |
||||
ocv_target_link_libraries(${tgt} ${OPENCV_LINKER_LIBS} ${OPENCV_OPENVX_SAMPLE_REQUIRED_DEPS}) |
||||
endforeach() |
||||
|
@ -1,52 +1,26 @@ |
||||
SET(OPENCV_TAPI_SAMPLES_REQUIRED_DEPS opencv_core opencv_imgproc opencv_video opencv_imgcodecs opencv_videoio opencv_highgui opencv_objdetect opencv_features2d opencv_calib3d opencv_flann) |
||||
|
||||
ocv_install_example_src(tapi *.cpp *.hpp CMakeLists.txt) |
||||
|
||||
set(OPENCV_TAPI_SAMPLES_REQUIRED_DEPS |
||||
opencv_core |
||||
opencv_imgproc |
||||
opencv_video |
||||
opencv_imgcodecs |
||||
opencv_videoio |
||||
opencv_highgui |
||||
opencv_objdetect |
||||
opencv_features2d |
||||
opencv_calib3d |
||||
opencv_flann) |
||||
ocv_check_dependencies(${OPENCV_TAPI_SAMPLES_REQUIRED_DEPS}) |
||||
|
||||
if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) |
||||
set(project "tapi") |
||||
string(TOUPPER "${project}" project_upper) |
||||
|
||||
project("${project}_samples") |
||||
|
||||
ocv_include_modules_recurse(${OPENCV_TAPI_SAMPLES_REQUIRED_DEPS}) |
||||
|
||||
# --------------------------------------------- |
||||
# Define executable targets |
||||
# --------------------------------------------- |
||||
MACRO(OPENCV_DEFINE_TAPI_EXAMPLE name srcs) |
||||
set(the_target "example_${project}_${name}") |
||||
add_executable(${the_target} ${srcs}) |
||||
|
||||
ocv_target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_TAPI_SAMPLES_REQUIRED_DEPS}) |
||||
|
||||
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 samples) |
||||
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_TAPI_EXAMPLE(${sample} ${sample_srcs}) |
||||
endforeach() |
||||
if(NOT BUILD_EXAMPLES OR NOT OCV_DEPENDENCIES_FOUND) |
||||
return() |
||||
endif() |
||||
|
||||
if(INSTALL_C_EXAMPLES AND NOT WIN32) |
||||
file(GLOB install_list *.c *.cpp *.jpg *.png *.data makefile.* build_all.sh *.dsp *.cmd ) |
||||
install(FILES ${install_list} |
||||
DESTINATION ${OPENCV_SAMPLES_SRC_INSTALL_PATH}/tapi |
||||
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ COMPONENT samples) |
||||
endif() |
||||
project(tapi_samples) |
||||
ocv_include_modules_recurse(${OPENCV_TAPI_SAMPLES_REQUIRED_DEPS}) |
||||
file(GLOB all_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) |
||||
foreach(sample_filename ${all_samples}) |
||||
ocv_define_sample(tgt ${sample_filename} tapi) |
||||
ocv_target_link_libraries(${tgt} ${OPENCV_LINKER_LIBS} ${OPENCV_TAPI_SAMPLES_REQUIRED_DEPS}) |
||||
endforeach() |
||||
|
@ -1,38 +1,21 @@ |
||||
SET(OPENCV_VA_INTEL_SAMPLES_REQUIRED_DEPS opencv_core opencv_imgproc opencv_imgcodecs opencv_videoio opencv_highgui) |
||||
|
||||
ocv_install_example_src(opencl *.cpp *.inc CMakeLists.txt) |
||||
|
||||
set(OPENCV_VA_INTEL_SAMPLES_REQUIRED_DEPS |
||||
opencv_core |
||||
opencv_imgproc |
||||
opencv_imgcodecs |
||||
opencv_videoio |
||||
opencv_highgui) |
||||
ocv_check_dependencies(${OPENCV_VA_INTEL_SAMPLES_REQUIRED_DEPS}) |
||||
|
||||
if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) |
||||
set(project "va_intel") |
||||
string(TOUPPER "${project}" project_upper) |
||||
|
||||
project("${project}_samples") |
||||
|
||||
ocv_include_modules_recurse(${OPENCV_VA_INTEL_SAMPLES_REQUIRED_DEPS}) |
||||
|
||||
# --------------------------------------------- |
||||
# Define executable targets |
||||
# --------------------------------------------- |
||||
MACRO(OPENCV_DEFINE_VA_INTEL_EXAMPLE name srcs) |
||||
set(the_target "example_${project}_${name}") |
||||
add_executable(${the_target} ${srcs}) |
||||
|
||||
ocv_target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_VA_INTEL_SAMPLES_REQUIRED_DEPS} ${VA_LIBRARIES} ${VA_INTEL_LIBRARIES}) |
||||
|
||||
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() |
||||
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_VA_INTEL_EXAMPLE(${sample} ${sample_srcs}) |
||||
endforeach() |
||||
if(NOT BUILD_EXAMPLES OR NOT OCV_DEPENDENCIES_FOUND) |
||||
return() |
||||
endif() |
||||
|
||||
project(va_intel_samples) |
||||
ocv_include_modules_recurse(${OPENCV_VA_INTEL_SAMPLES_REQUIRED_DEPS}) |
||||
file(GLOB all_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) |
||||
foreach(sample_filename ${all_samples}) |
||||
ocv_define_sample(tgt ${sample_filename} va_intel) |
||||
ocv_target_link_libraries(${tgt} ${OPENCV_LINKER_LIBS} ${OPENCV_VA_INTEL_SAMPLES_REQUIRED_DEPS}) |
||||
endforeach() |
||||
|
Loading…
Reference in new issue