opencv/samples/directx/CMakeLists.txt
Biswapriyo Nath 6cf0910842
Merge pull request #22462 from Biswa96:fix-directx-check
* cmake: Fix DirectX detection in mingw

The pragma comment directive is valid for MSVC only. So, the DirectX detection
fails in mingw. The failure is fixed by adding the required linking library
(here d3d11) in the try_compile() function in OpenCVDetectDirectX.cmake file.
Also add a message if the first DirectX check fails.

* gapi: Fix compilation with mingw

These changes remove MSVC specific pragma directive. The compilation fails at
linking time due to absence of proper linking library. The required libraries
are added in corresponding CMakeLists.txt file.

* samples: Fix compilation with mingw

These changes remove MSVC specific pragma directive. The compilation fails at
linking time due to absence of proper linking library. The required libraries
are added in corresponding CMakeLists.txt file.
2022-10-03 08:37:36 +03:00

35 lines
1.2 KiB
CMake

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(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} PRIVATE ${OPENCV_LINKER_LIBS} ${OPENCV_DIRECTX_SAMPLES_REQUIRED_DEPS})
ocv_target_link_libraries(${tgt} PRIVATE "gdi32")
if(sample_filename STREQUAL "d3d9_interop.cpp")
ocv_target_link_libraries(${tgt} PRIVATE d3d9)
endif()
if(sample_filename STREQUAL "d3d9ex_interop.cpp")
ocv_target_link_libraries(${tgt} PRIVATE d3d9)
endif()
if(sample_filename STREQUAL "d3d10_interop.cpp")
ocv_target_link_libraries(${tgt} PRIVATE d3d10)
endif()
if(sample_filename STREQUAL "d3d11_interop.cpp")
ocv_target_link_libraries(${tgt} PRIVATE d3d11)
endif()
endforeach()