summaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindCEC.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/FindCEC.cmake')
-rw-r--r--cmake/modules/FindCEC.cmake68
1 files changed, 68 insertions, 0 deletions
diff --git a/cmake/modules/FindCEC.cmake b/cmake/modules/FindCEC.cmake
new file mode 100644
index 0000000..bd6fd1d
--- /dev/null
+++ b/cmake/modules/FindCEC.cmake
@@ -0,0 +1,68 @@
1#.rst:
2# FindCEC
3# -------
4# Finds the libCEC library
5#
6# This will will define the following variables::
7#
8# CEC_FOUND - system has libCEC
9# CEC_INCLUDE_DIRS - the libCEC include directory
10# CEC_LIBRARIES - the libCEC libraries
11# CEC_DEFINITIONS - the libCEC compile definitions
12#
13# and the following imported targets::
14#
15# CEC::CEC - The libCEC library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_CEC libcec QUIET)
19endif()
20
21find_path(CEC_INCLUDE_DIR NAMES libcec/cec.h libCEC/CEC.h
22 PATHS ${PC_CEC_INCLUDEDIR})
23
24if(PC_CEC_VERSION)
25 set(CEC_VERSION ${PC_CEC_VERSION})
26elseif(CEC_INCLUDE_DIR AND EXISTS "${CEC_INCLUDE_DIR}/libcec/version.h")
27 file(STRINGS "${CEC_INCLUDE_DIR}/libcec/version.h" cec_version_str REGEX "^[\t ]+LIBCEC_VERSION_TO_UINT\\(.*\\)")
28 string(REGEX REPLACE "^[\t ]+LIBCEC_VERSION_TO_UINT\\(([0-9]+), ([0-9]+), ([0-9]+)\\)" "\\1.\\2.\\3" CEC_VERSION "${cec_version_str}")
29 unset(cec_version_str)
30endif()
31
32if(NOT CEC_FIND_VERSION)
33 set(CEC_FIND_VERSION 4.0.0)
34endif()
35
36include(FindPackageHandleStandardArgs)
37if(NOT WIN32)
38 find_library(CEC_LIBRARY NAMES cec
39 PATHS ${PC_CEC_LIBDIR})
40
41 find_package_handle_standard_args(CEC
42 REQUIRED_VARS CEC_LIBRARY CEC_INCLUDE_DIR
43 VERSION_VAR CEC_VERSION)
44else()
45 # Dynamically loaded DLL
46 find_package_handle_standard_args(CEC
47 REQUIRED_VARS CEC_INCLUDE_DIR
48 VERSION_VAR CEC_VERSION)
49endif()
50
51if(CEC_FOUND)
52 set(CEC_LIBRARIES ${CEC_LIBRARY})
53 set(CEC_INCLUDE_DIRS ${CEC_INCLUDE_DIR})
54 set(CEC_DEFINITIONS -DHAVE_LIBCEC=1)
55
56 if(NOT TARGET CEC::CEC)
57 add_library(CEC::CEC UNKNOWN IMPORTED)
58 if(CEC_LIBRARY)
59 set_target_properties(CEC::CEC PROPERTIES
60 IMPORTED_LOCATION "${CEC_LIBRARY}")
61 endif()
62 set_target_properties(CEC::CEC PROPERTIES
63 INTERFACE_INCLUDE_DIRECTORIES "${CEC_INCLUDE_DIR}"
64 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBCEC=1)
65 endif()
66endif()
67
68mark_as_advanced(CEC_INCLUDE_DIR CEC_LIBRARY)