diff options
Diffstat (limited to 'cmake/modules/FindMMAL.cmake')
| -rw-r--r-- | cmake/modules/FindMMAL.cmake | 55 |
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 | |||
| 8 | if(PKG_CONFIG_FOUND) | ||
| 9 | pkg_check_modules(PC_MMAL mmal QUIET) | ||
| 10 | endif() | ||
| 11 | |||
| 12 | |||
| 13 | find_path(MMAL_INCLUDE_DIR NAMES interface/mmal/mmal.h PATHS ${PC_MMAL_INCLUDEDIR}) | ||
| 14 | find_library(MMAL_LIBRARY NAMES mmal libmmal PATHS ${PC_MMAL_LIBDIR}) | ||
| 15 | find_library(MMALCORE_LIBRARY NAMES mmal_core libmmal_core PATHS ${PC_MMAL_LIBDIR}) | ||
| 16 | find_library(MMALUTIL_LIBRARY NAMES mmal_util libmmal_util PATHS ${PC_MMAL_LIBDIR}) | ||
| 17 | find_library(MMALCLIENT_LIBRARY NAMES mmal_vc_client libmmal_vc_client PATHS ${PC_MMAL_LIBDIR}) | ||
| 18 | find_library(MMALCOMPONENT_LIBRARY NAMES mmal_components libmmal_components PATHS ${PC_MMAL_LIBDIR}) | ||
| 19 | find_library(BCM_LIBRARY NAMES bcm_host libbcm_host PATHS ${PC_MMAL_LIBDIR}) | ||
| 20 | find_library(VCHIQ_LIBRARY NAMES vchiq_arm libvchiq_arm PATHS ${PC_MMAL_LIBDIR}) | ||
| 21 | find_library(VCHOSTIF_LIBRARY NAMES vchostif libvchostif PATHS ${PC_MMAL_LIBDIR}) | ||
| 22 | find_library(VCILCS_LIBRARY NAMES vcilcs libvcilcs PATHS ${PC_MMAL_LIBDIR}) | ||
| 23 | find_library(VCOS_LIBRARY NAMES vcos libvcos PATHS ${PC_MMAL_LIBDIR}) | ||
| 24 | find_library(VCSM_LIBRARY NAMES vcsm libvcsm PATHS ${PC_MMAL_LIBDIR}) | ||
| 25 | find_library(CONTAINER_LIBRARY NAMES containers libcontainers PATHS ${PC_MMAL_LIBDIR}) | ||
| 26 | |||
| 27 | |||
| 28 | include(FindPackageHandleStandardArgs) | ||
| 29 | find_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 | |||
| 36 | if(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() | ||
| 51 | endif() | ||
| 52 | |||
| 53 | mark_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) | ||
