summaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindMMAL.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/FindMMAL.cmake')
-rw-r--r--cmake/modules/FindMMAL.cmake55
1 files changed, 55 insertions, 0 deletions
diff --git a/cmake/modules/FindMMAL.cmake b/cmake/modules/FindMMAL.cmake
new file mode 100644
index 0000000..0b5f556
--- /dev/null
+++ b/cmake/modules/FindMMAL.cmake
@@ -0,0 +1,55 @@
1# - Try to find MMAL
2# Once done this will define
3#
4# MMAL_FOUND - system has MMAL
5# MMAL_INCLUDE_DIRS - the MMAL include directory
6# MMAL_LIBRARIES - The MMAL libraries
7
8if(PKG_CONFIG_FOUND)
9 pkg_check_modules(PC_MMAL mmal QUIET)
10endif()
11
12
13find_path(MMAL_INCLUDE_DIR NAMES interface/mmal/mmal.h PATHS ${PC_MMAL_INCLUDEDIR})
14find_library(MMAL_LIBRARY NAMES mmal libmmal PATHS ${PC_MMAL_LIBDIR})
15find_library(MMALCORE_LIBRARY NAMES mmal_core libmmal_core PATHS ${PC_MMAL_LIBDIR})
16find_library(MMALUTIL_LIBRARY NAMES mmal_util libmmal_util PATHS ${PC_MMAL_LIBDIR})
17find_library(MMALCLIENT_LIBRARY NAMES mmal_vc_client libmmal_vc_client PATHS ${PC_MMAL_LIBDIR})
18find_library(MMALCOMPONENT_LIBRARY NAMES mmal_components libmmal_components PATHS ${PC_MMAL_LIBDIR})
19find_library(BCM_LIBRARY NAMES bcm_host libbcm_host PATHS ${PC_MMAL_LIBDIR})
20find_library(VCHIQ_LIBRARY NAMES vchiq_arm libvchiq_arm PATHS ${PC_MMAL_LIBDIR})
21find_library(VCHOSTIF_LIBRARY NAMES vchostif libvchostif PATHS ${PC_MMAL_LIBDIR})
22find_library(VCILCS_LIBRARY NAMES vcilcs libvcilcs PATHS ${PC_MMAL_LIBDIR})
23find_library(VCOS_LIBRARY NAMES vcos libvcos PATHS ${PC_MMAL_LIBDIR})
24find_library(VCSM_LIBRARY NAMES vcsm libvcsm PATHS ${PC_MMAL_LIBDIR})
25find_library(CONTAINER_LIBRARY NAMES containers libcontainers PATHS ${PC_MMAL_LIBDIR})
26
27
28include(FindPackageHandleStandardArgs)
29find_package_handle_standard_args(MMAL REQUIRED_VARS MMAL_INCLUDE_DIR
30 MMAL_LIBRARY MMALCORE_LIBRARY MMALUTIL_LIBRARY
31 MMALCLIENT_LIBRARY MMALCOMPONENT_LIBRARY BCM_LIBRARY
32 VCHIQ_LIBRARY VCOS_LIBRARY VCSM_LIBRARY VCHOSTIF_LIBRARY
33 VCILCS_LIBRARY CONTAINER_LIBRARY)
34
35
36if(MMAL_FOUND)
37 set(MMAL_INCLUDE_DIRS ${MMAL_INCLUDE_DIR})
38 set(MMAL_LIBRARIES ${MMAL_LIBRARY} ${MMALCORE_LIBRARY} ${MMALUTIL_LIBRARY}
39 ${MMALCLIENT_LIBRARY} ${MMALCOMPONENT_LIBRARY}
40 ${BCM_LIBRARY} ${VCHIQ_LIBRARY} ${VCOS_LIBRARY} ${VCSM_LIBRARY}
41 ${VCHOSTIF_LIBRARY} ${VCILCS_LIBRARY} ${CONTAINER_LIBRARY}
42 CACHE STRING "mmal libraries" FORCE)
43 list(APPEND MMAL_DEFINITIONS -DHAVE_MMAL=1 -DHAS_MMAL=1)
44
45 if(NOT TARGET MMAL::MMAL)
46 add_library(MMAL::MMAL UNKNOWN IMPORTED)
47 set_target_properties(MMAL::MMAL PROPERTIES
48 IMPORTED_LOCATION "${MMAL_LIBRARIES}"
49 INTERFACE_INCLUDE_DIRECTORIES "${MMAL_INCLUDE_DIR}")
50 endif()
51endif()
52
53mark_as_advanced(MMAL_INCLUDE_DIRS MMAL_LIBRARIES MMAL_DEFINITIONS
54 MMAL_LIBRARY MMALCORE_LIBRARY MMALUTIL_LIBRARY MMALCLIENT_LIBRARY MMALCOMPONENT_LIBRARY BCM_LIBRARY
55 VCHIQ_LIBRARY VCOS_LIBRARY VCSM_LIBRARY VCHOSTIF_LIBRARY VCILCS_LIBRARY CONTAINER_LIBRARY)