Merge pull request #16122 from alalek:cmake_update_cpu_compiler_detection
[platform/upstream/opencv.git] / cmake / OpenCVDetectMediaSDK.cmake
1 set(HAVE_MFX 0)
2
3 if (UNIX)
4     set(root "$ENV{MFX_HOME}")
5 elseif(WIN32)
6     set(root "$ENV{INTELMEDIASDKROOT}")
7 endif()
8
9 # TODO: ICC? MINGW? ARM? IOS?
10 if(WIN32)
11     if(X86_64)
12         set(arch "x64")
13     else()
14         set(arch "win32")
15     endif()
16 elseif(UNIX)
17     set(arch "lin_x64")
18 else()
19     # ???
20 endif()
21
22 find_path(MFX_INCLUDE mfxdefs.h PATHS "${root}/include" NO_DEFAULT_PATH)
23 message(STATUS "MFX_INCLUDE: ${MFX_INCLUDE} (${root}/include)")
24 find_library(MFX_LIBRARY NAMES mfx PATHS "${root}/lib/${arch}" NO_DEFAULT_PATH)
25 if(MSVC)
26     if(MSVC14)
27         find_library(MFX_LIBRARY NAMES libmfx_vs2015.lib PATHS "${root}/lib/${arch}" NO_DEFAULT_PATH)
28     else()
29         find_library(MFX_LIBRARY NAMES libmfx.lib PATHS "${root}/lib/${arch}" NO_DEFAULT_PATH)
30     endif()
31 endif()
32
33 if(NOT MFX_INCLUDE OR NOT MFX_LIBRARY)
34     return()
35 endif()
36
37 set(deps)
38
39 if (UNIX)
40     find_library(MFX_VA_LIBRARY va)
41     find_library(MFX_VA_DRM_LIBRARY va-drm)
42     if (NOT MFX_VA_LIBRARY OR NOT MFX_VA_DRM_LIBRARY)
43         return()
44     endif()
45     add_library(mfx-va UNKNOWN IMPORTED)
46     set_target_properties(mfx-va PROPERTIES IMPORTED_LOCATION "${MFX_VA_LIBRARY}")
47     add_library(mfx-va-drm UNKNOWN IMPORTED)
48     set_target_properties(mfx-va-drm PROPERTIES IMPORTED_LOCATION "${MFX_VA_DRM_LIBRARY}")
49     list(APPEND deps mfx-va mfx-va-drm "-Wl,--exclude-libs=libmfx")
50 endif()
51
52 add_library(mfx UNKNOWN IMPORTED)
53 set_target_properties(mfx PROPERTIES
54   IMPORTED_LOCATION "${MFX_LIBRARY}"
55   INTERFACE_INCLUDE_DIRECTORIES "${MFX_INCLUDE}"
56   INTERFACE_LINK_LIBRARIES "${deps}"
57 )
58
59 set(HAVE_MFX 1)